From 08fba2113aa067858f8f637f250992712f236d6b Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Thu, 4 May 2023 07:58:04 +0900 Subject: [PATCH] refactor: use _comp_compgen_split for `-W '$(...)'` --- bash_completion | 39 ++++++++++++++++----------------- completions/_look | 2 +- completions/_umount | 3 +-- completions/_umount.linux | 3 +-- completions/_xm | 6 ++--- completions/_yum | 9 ++++---- completions/apt-cache | 5 ++++- completions/avahi-browse | 2 +- completions/bind | 2 +- completions/bts | 3 ++- completions/ccze | 5 ++--- completions/checksec | 14 ++++-------- completions/cowsay | 3 +-- completions/cpan2dist | 5 ++--- completions/cryptsetup | 2 +- completions/cvs | 4 ++-- completions/dict | 11 +++++----- completions/ebtables | 31 +++++++++++++------------- completions/fbgs | 9 ++++---- completions/fbi | 9 ++++---- completions/fio | 2 +- completions/gdb | 9 ++++---- completions/genisoimage | 4 ++-- completions/getconf | 11 +++++----- completions/gm | 4 ++-- completions/gpg | 2 +- completions/gpg2 | 2 +- completions/htop | 2 +- completions/htpasswd | 3 +-- completions/iconv | 4 ++-- completions/ifstat | 9 ++++---- completions/invoke-rc.d | 6 ++--- completions/iptables | 31 ++++++++++++++------------ completions/kldunload | 2 +- completions/koji | 13 +++++------ completions/lftp | 2 +- completions/links | 2 +- completions/list_lists | 2 +- completions/locale-gen | 6 ++--- completions/lspci | 3 +-- completions/mcrypt | 7 +++--- completions/mplayer | 7 +++--- completions/msynctool | 9 +++----- completions/munin-run | 3 +-- completions/munindoc | 3 +-- completions/ncftp | 4 ++-- completions/pdftotext | 4 ++-- completions/perl | 16 ++++++-------- completions/perlcritic | 3 +-- completions/pgrep | 10 ++++----- completions/pine | 3 +-- completions/pkg-config | 6 ++--- completions/pngfix | 5 ++--- completions/pydoc | 4 ++-- completions/qdbus | 7 +++--- completions/reportbug | 25 ++++++++++----------- completions/rpm | 2 +- completions/scrub | 5 ++--- completions/smbclient | 2 +- completions/ssh | 8 +++---- completions/strings | 13 ++++------- completions/synclient | 4 ++-- completions/update-alternatives | 2 +- completions/valgrind | 10 +++++---- completions/xdg-settings | 3 +-- completions/xfreerdp | 20 ++++++++--------- completions/ypmatch | 7 ++---- 67 files changed, 223 insertions(+), 255 deletions(-) diff --git a/bash_completion b/bash_completion index c8e31039c2c..a8b7eb24d21 100644 --- a/bash_completion +++ b/bash_completion @@ -1183,7 +1183,7 @@ _comp_variable_assignments() _terms ;; LANG | LC_*) - _comp_compgen -- -W '$(locale -a 2>/dev/null)' + _comp_compgen_split -- "$(locale -a 2>/dev/null)" ;; LANGUAGE) _comp_delimited : -W '$(locale -a 2>/dev/null)' @@ -1576,7 +1576,7 @@ _ip_addresses() # TODO:API: rename per conventions _kernel_versions() { - _comp_compgen -- -W '$(command ls /lib/modules)' + _comp_compgen_split -- "$(command ls /lib/modules)" } # This function completes on all available network interfaces @@ -1694,26 +1694,26 @@ if [[ $OSTYPE == *@(solaris|aix)* ]]; then # This function completes on process IDs. _pids() { - _comp_compgen -- -W '$(command ps -efo pid | command sed 1d)' + _comp_compgen_split -- "$(command ps -efo pid | command sed 1d)" } _pgids() { - _comp_compgen -- -W '$(command ps -efo pgid | command sed 1d)' + _comp_compgen_split -- "$(command ps -efo pgid | command sed 1d)" } _pnames() { - _comp_compgen -- -X '' -W '$(command ps -efo comm | \ - command sed -e 1d -e "s:.*/::" -e "s/^-//" | sort -u)' + _comp_compgen_split -X '' -- "$(command ps -efo comm | + command sed -e 1d -e 's:.*/::' -e 's/^-//' | sort -u)" } else _pids() { - _comp_compgen -- -W '$(command ps ax -o pid=)' + _comp_compgen_split -- "$(command ps ax -o pid=)" } _pgids() { - _comp_compgen -- -W '$(command ps ax -o pgid=)' + _comp_compgen_split -- "$(command ps ax -o pgid=)" } # @param $1 if -s, don't try to avoid truncated command names _pnames() @@ -1772,12 +1772,12 @@ fi _uids() { if type getent &>/dev/null; then - _comp_compgen -- -W '$(getent passwd | cut -d: -f3)' + _comp_compgen_split -- "$(getent passwd | cut -d: -f3)" elif type perl &>/dev/null; then - _comp_compgen -- -W '$(perl -e '"'"'while (($uid) = (getpwent)[2]) { print $uid . "\n" }'"'"')' + _comp_compgen_split -- "$(perl -e 'while (($uid) = (getpwent)[2]) { print $uid . "\n" }')" else # make do with /etc/passwd - _comp_compgen -- -W '$(cut -d: -f3 /etc/passwd)' + _comp_compgen_split -- "$(cut -d: -f3 /etc/passwd)" fi } @@ -1787,12 +1787,12 @@ _uids() _gids() { if type getent &>/dev/null; then - _comp_compgen -- -W '$(getent group | cut -d: -f3)' + _comp_compgen_split -- "$(getent group | cut -d: -f3)" elif type perl &>/dev/null; then - _comp_compgen -- -W '$(perl -e '"'"'while (($gid) = (getgrent)[2]) { print $gid . "\n" }'"'"')' + _comp_compgen_split -- "$(perl -e 'while (($gid) = (getgrent)[2]) { print $gid . "\n" }')" else # make do with /etc/group - _comp_compgen -- -W '$(cut -d: -f3 /etc/group)' + _comp_compgen_split -- "$(cut -d: -f3 /etc/group)" fi } @@ -1862,9 +1862,9 @@ _service() else local sysvdirs _comp_sysvdirs - _comp_compgen -l -- -W '$(command sed -e "y/|/ /" \ - -ne "s/^.*\(U\|msg_u\)sage.*{\(.*\)}.*$/\2/p" \ - "${sysvdirs[0]}/${prev##*/}" 2>/dev/null) start stop' + _comp_compgen_split -l -- "$(command sed -e 'y/|/ /' \ + -ne 's/^.*\(U\|msg_u\)sage.*{\(.*\)}.*$/\2/p' \ + "${sysvdirs[0]}/${prev##*/}" 2>/dev/null) start stop" fi } && complete -F _service service @@ -1980,9 +1980,8 @@ _allowed_groups() # @since 2.12 _comp_selinux_users() { - _comp_compgen -a -- -W '$( - semanage user -nl 2>/dev/null | awk "{ print \$1 }" - )' + _comp_compgen -a split -- "$(semanage user -nl 2>/dev/null | + awk '{ print $1 }')" } # This function completes on valid shells diff --git a/completions/_look b/completions/_look index 6141e7a9986..20613ff6d6d 100644 --- a/completions/_look +++ b/completions/_look @@ -9,7 +9,7 @@ _comp_cmd_look() _comp_initialize -- "$@" || return if ((cword == 1)); then - COMPREPLY=($(compgen -W '$(look "$cur" 2>/dev/null)' -- "$cur")) + _comp_compgen_split -- "$(look "$cur" 2>/dev/null)" fi } && complete -F _comp_cmd_look -o default look diff --git a/completions/_umount b/completions/_umount index c6d959a9bc2..5a453a8bac1 100644 --- a/completions/_umount +++ b/completions/_umount @@ -16,8 +16,7 @@ _comp_cmd_umount() local cur prev words cword comp_args _comp_initialize -- "$@" || return - local IFS=$'\n' - COMPREPLY=($(compgen -W '$(mount | cut -d" " -f 3)' -- "$cur")) + _comp_compgen_split -l -- "$(mount | cut -d" " -f 3)" } && complete -F _comp_cmd_umount -o dirnames umount diff --git a/completions/_umount.linux b/completions/_umount.linux index bb259752848..294d7608481 100644 --- a/completions/_umount.linux +++ b/completions/_umount.linux @@ -130,8 +130,7 @@ _comp_cmd_umount() # unmounting usb devices with pretty names. _comp_cmd_umount__linux_fstab /dev/null)' \ - -- "$cur")) + _comp_compgen -a split -- "$( + command ls /etc/xen 2>/dev/null + )" ;; new) case $prev in diff --git a/completions/_yum b/completions/_yum index 2100e682678..805764920ae 100644 --- a/completions/_yum +++ b/completions/_yum @@ -105,17 +105,16 @@ _comp_cmd_yum() _comp_compgen_filedir -d ;; --enablerepo) - COMPREPLY=($(compgen -W '$(_yum_repolist disabled)' -- "$cur")) + _comp_compgen_split -- "$(_yum_repolist disabled)" ;; --disablerepo) - COMPREPLY=($(compgen -W '$(_yum_repolist enabled)' -- "$cur")) + _comp_compgen_split -- "$(_yum_repolist enabled)" ;; --disableexcludes) - COMPREPLY=($(compgen -W '$(_yum_repolist all) all main' \ - -- "$cur")) + _comp_compgen_split -- "$(_yum_repolist all) all main" ;; --enableplugin | --disableplugin) - COMPREPLY=($(compgen -W '$(_yum_plugins)' -- "$cur")) + _comp_compgen_split -- "$(_yum_plugins)" ;; --color) _comp_compgen -- -W 'always auto never' diff --git a/completions/apt-cache b/completions/apt-cache index ee23143e2ea..b83443b885b 100644 --- a/completions/apt-cache +++ b/completions/apt-cache @@ -36,7 +36,10 @@ _comp_cmd_apt_cache__sources() # @since 2.12 _comp_xfunc_apt_cache_src_packages() { - compgen -W '$(_comp_cmd_apt_cache__sources apt-cache "$cur")' -- "$cur" + local ret + _comp_compgen -v ret split -- \ + "$(_comp_cmd_apt_cache__sources apt-cache "$cur")" && + printf '%s\n' "${ret[@]}" } _comp_deprecate_func 2.12 _apt_cache_packages _comp_xfunc_apt_cache_packages diff --git a/completions/avahi-browse b/completions/avahi-browse index 08d24819c96..8e4ece76f7c 100644 --- a/completions/avahi-browse +++ b/completions/avahi-browse @@ -34,7 +34,7 @@ _comp_cmd_avahi_browse() ;; esac done - COMPREPLY=($(compgen -W '$("$1" --dump-db --no-db-lookup)' -- "$cur")) + _comp_compgen_split -- "$("$1" --dump-db --no-db-lookup)" } && complete -F _comp_cmd_avahi_browse avahi-browse avahi-browse-domains diff --git a/completions/bind b/completions/bind index 4a48ac90733..12d2343dd9e 100644 --- a/completions/bind +++ b/completions/bind @@ -19,7 +19,7 @@ _comp_cmd_bind() return ;; -*[qu]) - COMPREPLY=($(compgen -W '$("$1" -l)' -- "$cur")) + _comp_compgen_split -- "$("$1" -l)" return ;; esac diff --git a/completions/bts b/completions/bts index 41197c341e5..65e85045abe 100644 --- a/completions/bts +++ b/completions/bts @@ -18,7 +18,8 @@ _comp_cmd_bts__cached_bugs() _comp_cmd_bts__src_packages_with_prefix() { local ppn=${cur:4} # partial package name, after stripping "src:" - _comp_compgen -ac "$ppn" -- -P "src:" -W '$(_comp_xfunc apt-cache sources "$ppn")' + _comp_compgen -ac "$ppn" split -P "src:" -- \ + "$(_comp_xfunc apt-cache sources "$ppn")" } _comp_cmd_bts() diff --git a/completions/ccze b/completions/ccze index c3b372f1e49..31602b09eca 100644 --- a/completions/ccze +++ b/completions/ccze @@ -29,9 +29,8 @@ _comp_cmd_ccze() return ;; --plugin | -${noargopts}p) - COMPREPLY=($(compgen -W '$("$1" --list-plugins | command \ - sed -ne "s/^\([a-z0-9]\{1,\}\)[[:space:]]\{1,\}|.*/\1/p")' \ - -- "$cur")) + _comp_compgen_split -- "$("$1" --list-plugins | command \ + sed -ne 's/^\([a-z0-9]\{1,\}\)[[:space:]]\{1,\}|.*/\1/p')" return ;; esac diff --git a/completions/checksec b/completions/checksec index a87459cf658..98f78664a42 100644 --- a/completions/checksec +++ b/completions/checksec @@ -26,18 +26,12 @@ _comp_cmd_checksec() return ;; --format) - COMPREPLY=($(compgen -W '$("$1" --help 2>/dev/null | - command sed \ - -e "s/[{,}]/ /g" \ - -ne "s/^[[:space:]]*--format=//p" - )' -- "$cur")) + _comp_compgen_split -- "$("$1" --help 2>/dev/null | + command sed -ne 's/[{,}]/ /g;s/^[[:space:]]*--format=//p')" ;; --output) - COMPREPLY=($(compgen -W '$("$1" --help 2>/dev/null | - command sed \ - -e "s/[{,}]/ /g" \ - -ne "s/^[[:space:]]*--output=//p" - )' -- "$cur")) + _comp_compgen_split -- "$("$1" --help 2>/dev/null | + command sed -ne 's/[{,}]/ /g;s/^[[:space:]]*--output=//p')" ;; esac diff --git a/completions/cowsay b/completions/cowsay index 2a74a4e77e2..ea1468caf5b 100644 --- a/completions/cowsay +++ b/completions/cowsay @@ -7,8 +7,7 @@ _comp_cmd_cowsay() case $prev in -f) - COMPREPLY=($(compgen -W \ - '$(cowsay -l 2>/dev/null | tail -n +2)' -- "$cur")) + _comp_compgen_split -- "$(cowsay -l 2>/dev/null | tail -n +2)" return ;; esac diff --git a/completions/cpan2dist b/completions/cpan2dist index 20c0f5e4eff..046b6d3faaa 100644 --- a/completions/cpan2dist +++ b/completions/cpan2dist @@ -8,9 +8,8 @@ _comp_cmd_cpan2dist() case $prev in --format) # should remove ":" from COMP_WORDBREAKS, but doesn't work (?) - COMPREPLY=($(compgen -W '$(perl -MCPANPLUS::Dist -e \ - "print map { \"\$_\n\" } CPANPLUS::Dist->dist_types")' \ - -- "$cur")) + _comp_compgen_split -- "$(perl -MCPANPLUS::Dist -e \ + 'print map { "$_n" } CPANPLUS::Dist->dist_types')" return ;; --banlist | --ignorelist | --modulelist | --logfile) diff --git a/completions/cryptsetup b/completions/cryptsetup index 1169e7411b0..9604b08790d 100644 --- a/completions/cryptsetup +++ b/completions/cryptsetup @@ -2,7 +2,7 @@ _comp_cmd_cryptsetup__name() { - COMPREPLY=($(compgen -X control -W '$(command ls /dev/mapper)' -- "$cur")) + _comp_compgen_split -X control -- "$(command ls /dev/mapper)" } _comp_cmd_cryptsetup__device() diff --git a/completions/cvs b/completions/cvs index 2af6402e01e..aeda845bfcf 100644 --- a/completions/cvs +++ b/completions/cvs @@ -409,8 +409,8 @@ _comp_cmd_cvs() esac _comp_compgen_help -- --help-options - _comp_compgen -a -- -W '$(_cvs_commands) --help - --help-commands --help-options --version' + _comp_compgen -a split -- "$(_cvs_commands) --help + --help-commands --help-options --version" ;; esac diff --git a/completions/dict b/completions/dict index 424d77ad70b..edcaae94f52 100644 --- a/completions/dict +++ b/completions/dict @@ -42,11 +42,11 @@ _comp_cmd_dict() # shellcheck disable=SC2254 case $prev in --database | -info | -${noargopts}[di]) - COMPREPLY=($(compgen -W '$(_dictdata -D)' -- "$cur")) + _comp_compgen_split -- "$(_dictdata -D)" return ;; --strategy | -${noargopts}s) - COMPREPLY=($(compgen -W '$(_dictdata -S)' -- "$cur")) + _comp_compgen_split -- "$(_dictdata -S)" return ;; esac @@ -57,10 +57,11 @@ _comp_cmd_dict() # it down with grep if $cur looks like something that's safe to embed # in a pattern instead. if [[ $cur == +([-A-Za-z0-9/.]) ]]; then - COMPREPLY=($(compgen -W \ - '$(command grep "^${cur//./\\.}" "$dictfile")' -- "$cur")) + _comp_compgen_split -- "$( + command grep "^${cur//./\\.}" "$dictfile" + )" else - COMPREPLY=($(compgen -W '$(cat "$dictfile")' -- "$cur")) + _comp_compgen_split -- "$(cat "$dictfile")" fi fi } && diff --git a/completions/ebtables b/completions/ebtables index 5e456957aab..24f3fe71fb6 100644 --- a/completions/ebtables +++ b/completions/ebtables @@ -16,30 +16,29 @@ _comp_cmd_ebtables() # shellcheck disable=SC2254 case $prev in -${noargopts}[AIDPFXLZ]) - COMPREPLY=($(compgen -W '`"$1" ${table:+-t "$table"} -L 2>/dev/null | \ - command sed -ne "$chain"`' -- "$cur")) + _comp_compgen_split -- "$( + "$1" ${table:+-t "$table"} -L 2>/dev/null | + command sed -ne "$chain" + )" ;; -${noargopts}t) _comp_compgen -- -W 'nat filter broute' ;; -${noargopts}j) if [[ $table == "filter" || ! $table ]]; then - COMPREPLY=($(compgen -W '$targets - $("$1" ${table:+-t "$table"} -L 2>/dev/null | \ - command sed -n -e "s/INPUT\|OUTPUT\|FORWARD//" \ - -e "$chain")' \ - -- "$cur")) + _comp_compgen -- -W '$targets' + _comp_compgen -a split -- "$("$1" ${table:+-t "$table"} -L \ + 2>/dev/null | command sed -n -e \ + "s/INPUT\|OUTPUT\|FORWARD//" -e "$chain")" elif [[ $table == "nat" ]]; then - COMPREPLY=($(compgen -W '$targets - $("$1" -t "$table" -L 2>/dev/null | \ - command sed -n -e "s/OUTPUT|PREROUTING|POSTROUTING//" \ - -e "$chain")' \ - -- "$cur")) + _comp_compgen -- -W '$targets' + _comp_compgen -a split -- "$("$1" -t "$table" -L 2>/dev/null | + command sed -n -e "s/OUTPUT|PREROUTING|POSTROUTING//" \ + -e "$chain")" elif [[ $table == "broute" ]]; then - COMPREPLY=($(compgen -W 'ACCEPT DROP - $("$1" -t "$table" -L 2>/dev/null | \ - command sed -n -e "s/BROUTING//" -e "$chain")' \ - -- "$cur")) + _comp_compgen -- -W 'ACCEPT DROP' + _comp_compgen -a split -- "$("$1" -t "$table" -L 2>/dev/null | + command sed -n -e "s/BROUTING//" -e "$chain")" fi ;; *) diff --git a/completions/fbgs b/completions/fbgs index 0c766ce0c10..66bcbbb1077 100644 --- a/completions/fbgs +++ b/completions/fbgs @@ -7,14 +7,13 @@ _comp_cmd_fbgs() case "$prev" in -f | --font) - local IFS=$'\n' - COMPREPLY=($(compgen -W '$(fc-list 2>/dev/null)' -- "$cur")) + _comp_compgen_split -l -- "$(fc-list 2>/dev/null)" return ;; -m | --mode) - COMPREPLY=($(compgen -W '$(command sed \ - -n "/^mode/{s/^mode \{1,\}\"\([^\"]\{1,\}\)\"/\1/g;p}" \ - /etc/fb.modes 2>/dev/null)' -- "$cur")) + _comp_compgen_split -- "$(command sed \ + -n '/^mode/{s/^mode \{1,\}"\([^"]\{1,\}\)"/\1/g;p}' \ + /etc/fb.modes 2>/dev/null)" return ;; -d | --device) diff --git a/completions/fbi b/completions/fbi index d4533146fdc..275395e41f6 100644 --- a/completions/fbi +++ b/completions/fbi @@ -15,14 +15,13 @@ _comp_cmd_fbi() return ;; -f | --font) - local IFS=$'\n' - COMPREPLY=($(compgen -W '$(fc-list 2>/dev/null)' -- "$cur")) + _comp_compgen_split -l -- "$(fc-list 2>/dev/null)" return ;; -m | --mode) - COMPREPLY=($(compgen -W '$(command sed \ - -n "/^mode/{s/^mode \{1,\}\"\([^\"]\{1,\}\)\"/\1/g;p}" \ - /etc/fb.modes 2>/dev/null)' -- "$cur")) + _comp_compgen_split -- "$(command sed \ + -n '/^mode/{s/^mode \{1,\}"\([^"]\{1,\}\)"/\1/g;p}' \ + /etc/fb.modes 2>/dev/null)" return ;; -d | --device) diff --git a/completions/fio b/completions/fio index a8684191aca..18647ea2150 100644 --- a/completions/fio +++ b/completions/fio @@ -32,7 +32,7 @@ _comp_cmd_fio() return ;; --crctest) - COMPREPLY=($(compgen -W '$("$1" --crctest=nonexistent 2>/dev/null)' -- "$cur")) + _comp_compgen_split -- "$("$1" --crctest=nonexistent 2>/dev/null)" return ;; --cmdhelp) diff --git a/completions/gdb b/completions/gdb index 9f4de458a28..7c1f9c9857c 100644 --- a/completions/gdb +++ b/completions/gdb @@ -29,10 +29,11 @@ _comp_cmd_gdb() local path_array=($( command sed -e 's/:\{2,\}/:/g' -e 's/^://' -e 's/:$//' <<<"$PATH" )) - IFS=$'\n' - COMPREPLY=($(compgen -d -W '$(find ${path_array[@]+"${path_array[@]}"} . \ - -mindepth 1 -maxdepth 1 -not -type d -executable \ - -printf "%f\\n" 2>/dev/null)' -- "$cur")) + _comp_compgen_split -o plusdirs -- "$( + find ${path_array[@]+"${path_array[@]}"} . -mindepth 1 \ + -maxdepth 1 -not -type d -executable -printf '%f\n' \ + 2>/dev/null + )" fi elif ((cword == 2)); then _comp_compgen_split -- "$(command ps axo comm,pid | diff --git a/completions/genisoimage b/completions/genisoimage index ba735721481..98ab3dc2d9a 100644 --- a/completions/genisoimage +++ b/completions/genisoimage @@ -12,8 +12,8 @@ _comp_cmd_mkisofs() return ;; -*-charset) - COMPREPLY=($(compgen -W '$(mkisofs -input-charset \ - help 2>&1 | tail -n +3)' -- "$cur")) + _comp_compgen_split -- "$(mkisofs -input-charset help 2>&1 | + tail -n +3)" return ;; -uid) diff --git a/completions/getconf b/completions/getconf index 4c410ac32ce..35b55a727ee 100644 --- a/completions/getconf +++ b/completions/getconf @@ -11,9 +11,9 @@ _comp_cmd_getconf() return ;; -v) - COMPREPLY=($(compgen -W \ - '$("$1" -a 2>/dev/null | awk "{ print \$1 }")' -- \ - "${cur:-POSIX_V}")) + _comp_compgen -c "${cur:-POSIX_V}" split -- "$( + "$1" -a 2>/dev/null | awk '{ print $1 }' + )" return ;; esac @@ -23,8 +23,9 @@ _comp_cmd_getconf() elif [[ $cur == -* ]]; then _comp_compgen -- -W '-a -v' else - COMPREPLY=($(compgen -W \ - '$("$1" -a 2>/dev/null | awk "{ print \$1 }")' -- "$cur")) + _comp_compgen_split -- "$( + "$1" -a 2>/dev/null | awk '{ print $1 }' + )" fi } && complete -F _comp_cmd_getconf getconf diff --git a/completions/gm b/completions/gm index 4eba56ae840..9671f9b9a0e 100644 --- a/completions/gm +++ b/completions/gm @@ -2,8 +2,8 @@ _comp_cmd_gm__commands() { - COMPREPLY+=($(compgen -W '$("$1" help | - awk "/^ +[^ ]+ +- / { print \$1 }")' -- "$cur")) + _comp_compgen -a split -- "$("$1" help | + awk '/^ +[^ ]+ +- / { print $1 }')" } _comp_cmd_gm() diff --git a/completions/gpg b/completions/gpg index d32b19fccd0..ca0d8e07f69 100644 --- a/completions/gpg +++ b/completions/gpg @@ -45,7 +45,7 @@ _comp_cmd_gpg() esac if [[ $cur == -* ]]; then - COMPREPLY=($(compgen -W '$("$1" --dump-options)' -- "$cur")) + _comp_compgen_split -- "$("$1" --dump-options)" fi } && complete -F _comp_cmd_gpg -o default gpg diff --git a/completions/gpg2 b/completions/gpg2 index 334fc5da19a..fc54ff96714 100644 --- a/completions/gpg2 +++ b/completions/gpg2 @@ -39,7 +39,7 @@ _comp_cmd_gpg2() esac if [[ $cur == -* ]]; then - COMPREPLY=($(compgen -W '$("$1" --dump-options)' -- "$cur")) + _comp_compgen_split -- "$("$1" --dump-options)" fi } && complete -F _comp_cmd_gpg2 -o default gpg2 diff --git a/completions/htop b/completions/htop index 3ebb217495a..6a0f79760c8 100644 --- a/completions/htop +++ b/completions/htop @@ -9,7 +9,7 @@ _comp_cmd_htop() # shellcheck disable=SC2254 case "$prev" in --sort-key | -${noargopts}s) - COMPREPLY=($(compgen -W '$("$1" -s help)' -- "$cur")) + _comp_compgen_split -- "$("$1" -s help)" return ;; --user | -${noargopts}u) diff --git a/completions/htpasswd b/completions/htpasswd index 739f9d6b45d..dafd1d96396 100644 --- a/completions/htpasswd +++ b/completions/htpasswd @@ -27,8 +27,7 @@ _comp_cmd_htpasswd() elif ((o == cword - 1)); then # Username (second non-option argument) - COMPREPLY=($(compgen -W \ - '$(cut -d: -f1 "${words[o]}" 2>/dev/null)' -- "$cur")) + _comp_compgen_split -- "$(cut -d: -f1 "${words[o]}" 2>/dev/null)" fi } && complete -F _comp_cmd_htpasswd htpasswd diff --git a/completions/iconv b/completions/iconv index 8e392e5235e..9cfab2d5208 100644 --- a/completions/iconv +++ b/completions/iconv @@ -14,8 +14,8 @@ _iconv_charsets() _comp_cmd_iconv__charsets() { - COMPREPLY+=($(compgen -X ... -W '$("$1" -l | \ - command sed -e "s@/*\$@@" -e "s/[,()]//g")' -- "$cur")) + _comp_compgen -a split -X ... -- "$("$1" -l | + command sed -e 's@/*$@@' -e 's/[,()]//g')" } _comp_cmd_iconv() diff --git a/completions/ifstat b/completions/ifstat index 93467b96360..d47759b67d6 100644 --- a/completions/ifstat +++ b/completions/ifstat @@ -23,8 +23,8 @@ _comp_cmd_ifstat() "$1" --help 2>&1 || : } | command grep -q -- '-d.*--scan'; then - COMPREPLY=($(compgen -W '$("$1" -v | command \ - sed -e "s/[,.]//g" -ne "s/^.*drivers://p")' -- "$cur")) + _comp_compgen_split -- "$("$1" -v | command sed -e 's/[,.]//g' \ + -ne 's/^.*drivers://p')" fi return ;; @@ -49,9 +49,8 @@ _comp_cmd_ifstat() ;; --extended | -${noargopts}x) # iproute2: parse xstat types - COMPREPLY=($(compgen -W '$("$1" -x nonexistent-xstat 2>&1 | - awk "found { print \$1 } /supported xstats:/ { found=1 }")' \ - -- "$cur")) + _comp_compgen_split -- "$("$1" -x nonexistent-xstat 2>&1 | + awk 'found { print $1 } /supported xstats:/ { found=1 }')" return ;; esac diff --git a/completions/invoke-rc.d b/completions/invoke-rc.d index 6119c5380cb..486fb487f78 100644 --- a/completions/invoke-rc.d +++ b/completions/invoke-rc.d @@ -28,9 +28,9 @@ _comp_cmd_invoke_rc_d() ((${#COMPREPLY[@]})) && _comp_compgen -- -W '"${COMPREPLY[@]}"' elif [[ -x $sysvdir/$prev ]]; then - COMPREPLY=($(compgen -W '`command sed -e "y/|/ /" \ - -ne "s/^.*Usage:[ ]*[^ ]*[ ]*{*\([^}\"]*\).*$/\1/p" \ - "$sysvdir/$prev"`' -- "$cur")) + _comp_compgen_split -- "$(command sed -e 'y/|/ /' \ + -ne 's/^.*Usage:[ ]*[^ ]*[ ]*{*\([^}"]*\).*$/\1/p' \ + "$sysvdir/$prev")" else COMPREPLY=() fi diff --git a/completions/iptables b/completions/iptables index 0948d8f355e..d0c0ec1e632 100644 --- a/completions/iptables +++ b/completions/iptables @@ -6,6 +6,7 @@ _comp_cmd_iptables() _comp_initialize -s -- "$@" || return local table="" chain='s/^Chain \([^ ]\{1,\}\).*$/\1/p' + local targets='ACCEPT DROP LOG ULOG REJECT' local IFS=$' \t\n' # for ${table:+-t "$table"} [[ ${words[*]} =~ [[:space:]]-(t|-table=?)[[:space:]]*([^[:space:]]+) ]] && @@ -13,28 +14,30 @@ _comp_cmd_iptables() case $prev in -*[AIDRPFXLZ]) - COMPREPLY=($(compgen -W '`"$1" ${table:+-t "$table"} -nL 2>/dev/null | \ - command sed -ne "s/^Chain \([^ ]\{1,\}\).*$/\1/p"`' -- "$cur")) + _comp_compgen_split -- "$( + "$1" ${table:+-t "$table"} -nL 2>/dev/null | + command sed -ne 's/^Chain \([^ ]\{1,\}\).*$/\1/p' + )" ;; -*t) _comp_compgen -- -W 'nat filter mangle' ;; -j) if [[ $table == "filter" || ! $table ]]; then - COMPREPLY=($(compgen -W 'ACCEPT DROP LOG ULOG REJECT - `"$1" ${table:+-t "$table"} -nL 2>/dev/null | command sed -ne "$chain" \ - -e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \ - "$cur")) + _comp_compgen -- -W '$targets' + _comp_compgen -a split -- "$("$1" ${table:+-t "$table"} -nL \ + 2>/dev/null | command sed -ne "$chain" \ + -e 's/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//')" elif [[ $table == "nat" ]]; then - COMPREPLY=($(compgen -W 'ACCEPT DROP LOG ULOG REJECT MIRROR SNAT - DNAT MASQUERADE `"$1" -t "$table" -nL 2>/dev/null | \ - command sed -ne "$chain" -e "s/OUTPUT|PREROUTING|POSTROUTING//"`' \ - -- "$cur")) + _comp_compgen -- -W '$targets MIRROR SNAT DNAT MASQUERADE' + _comp_compgen -a split -- "$("$1" -t "$table" -nL 2>/dev/null | + command sed -ne "$chain" \ + -e 's/OUTPUT|PREROUTING|POSTROUTING//')" elif [[ $table == "mangle" ]]; then - COMPREPLY=($(compgen -W 'ACCEPT DROP LOG ULOG REJECT MARK TOS - `"$1" -t "$table" -nL 2>/dev/null | command sed -ne "$chain" \ - -e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \ - "$cur")) + _comp_compgen -- -W '$targets MARK TOS' + _comp_compgen -a split -- "$("$1" -t "$table" -nL 2>/dev/null | + command sed -ne "$chain" \ + -e 's/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//')" fi ;; *) diff --git a/completions/kldunload b/completions/kldunload index aab56cac00f..3870720ba26 100644 --- a/completions/kldunload +++ b/completions/kldunload @@ -7,7 +7,7 @@ _comp_cmd_kldunload() local cur prev words cword comp_args _comp_initialize -- "$@" || return - COMPREPLY=($(compgen -W '$(kldstat)' -X '!*.ko' -- "$cur")) + _comp_compgen_split -X '!*.ko' -- "$(kldstat)" COMPREPLY=(${COMPREPLY[@]%.ko}) } && complete -F _comp_cmd_kldunload kldunload diff --git a/completions/koji b/completions/koji index aeb77f33687..3d3078e18b8 100644 --- a/completions/koji +++ b/completions/koji @@ -2,8 +2,7 @@ _comp_cmd_koji__search() { - COMPREPLY+=($(compgen -W \ - '$("$1" -q search "$2" "$cur*" 2>/dev/null)' -- "$cur")) + _comp_compgen -a split -- "$("$1" -q search "$2" "$cur*" 2>/dev/null)" } _comp_cmd_koji__build() @@ -23,13 +22,13 @@ _comp_cmd_koji__user() _comp_cmd_koji__tag() { - COMPREPLY+=($(compgen -W '$("$1" -q list-tags 2>/dev/null)' -- "$cur")) + _comp_compgen -a split -- "$("$1" -q list-tags 2>/dev/null)" } _comp_cmd_koji__target() { - COMPREPLY+=($(compgen -W '$("$1" -q list-targets 2>/dev/null | - awk "{ print \$1 }")' -- "$cur")) + _comp_compgen -a split -- "$("$1" -q list-targets 2>/dev/null | + awk '{ print $1 }')" } _comp_cmd_koji() @@ -238,8 +237,8 @@ _comp_cmd_koji() _comp_compgen_help [[ ${COMPREPLY-} == *= ]] && compopt -o nospace elif [[ ! $has_command ]]; then - COMPREPLY=($(compgen -W '$("$1" --help-commands 2>/dev/null | \ - awk "/^( +|\t)/ { print \$1 }")' -- "$cur")) + _comp_compgen_split -- "$("$1" --help-commands 2>/dev/null | + awk '/^( +|\t)/ { print $1 }')" fi } && complete -F _comp_cmd_koji koji arm-koji ppc-koji s390-koji sparc-koji diff --git a/completions/lftp b/completions/lftp index ee1ec941d12..7a8801e7487 100644 --- a/completions/lftp +++ b/completions/lftp @@ -22,7 +22,7 @@ _comp_cmd_lftp() return fi - COMPREPLY=($(compgen -W '$("$1" -c "bookmark list" 2>/dev/null)' -- "$cur")) + _comp_compgen_split -- "$("$1" -c "bookmark list" 2>/dev/null)" _known_hosts_real -- "$cur" } && complete -F _comp_cmd_lftp lftp diff --git a/completions/links b/completions/links index 0b399f8bd92..c9f9b466bdc 100644 --- a/completions/links +++ b/completions/links @@ -88,7 +88,7 @@ _comp_cmd_links() local dir for dir in .links .links2; do if [[ -r ~/$dir/links.his ]]; then - COMPREPLY+=($(compgen -W '$(cat ~/$dir/links.his)' -- "$cur")) + _comp_compgen -a split -- "$(cat ~/$dir/links.his)" _comp_ltrim_colon_completions "$cur" fi done diff --git a/completions/list_lists b/completions/list_lists index c8a82844de7..4062c6267f2 100644 --- a/completions/list_lists +++ b/completions/list_lists @@ -3,7 +3,7 @@ # @since 2.12 _comp_xfunc_list_lists_mailman_lists() { - COMPREPLY=($(compgen -W '$(list_lists -b 2>/dev/null)' -- "$cur")) + _comp_compgen_split -- "$(list_lists -b 2>/dev/null)" } _comp_deprecate_func 2.12 _mailman_lists _comp_xfunc_list_lists_mailman_lists diff --git a/completions/locale-gen b/completions/locale-gen index 7a7609cd0a9..60fa66df236 100644 --- a/completions/locale-gen +++ b/completions/locale-gen @@ -23,9 +23,9 @@ _comp_cmd_locale_gen() return fi - COMPREPLY=($(compgen -W \ - '$(awk "{ print \$1 }" /usr/share/i18n/SUPPORTED 2>/dev/null)' \ - -- "$cur")) + _comp_compgen_split -- "$( + awk '{ print $1 }' /usr/share/i18n/SUPPORTED 2>/dev/null + )" } && complete -F _comp_cmd_locale_gen locale-gen diff --git a/completions/lspci b/completions/lspci index 791a8faea37..16d61956f61 100644 --- a/completions/lspci +++ b/completions/lspci @@ -18,8 +18,7 @@ _comp_cmd_lspci() return ;; -*A) - COMPREPLY=($(compgen -W '$("$1" -A help | command grep -vF :)' \ - -- "$cur")) + _comp_compgen_split -- "$("$1" -A help | command grep -vF :)" return ;; -*H) diff --git a/completions/mcrypt b/completions/mcrypt index f4a953625a6..95451fde942 100644 --- a/completions/mcrypt +++ b/completions/mcrypt @@ -12,8 +12,7 @@ _comp_cmd_mcrypt() return ;; -o | --keymode) - COMPREPLY=($(compgen -W '$("$1" --list-keymodes 2>/dev/null )' \ - -- "$cur")) + _comp_compgen_split -- "$("$1" --list-keymodes 2>/dev/null)" return ;; -m | --mode) @@ -26,8 +25,8 @@ _comp_cmd_mcrypt() return ;; -h | --hash) - COMPREPLY=($(compgen -W '$("$1" --list-hash 2>/dev/null | \ - command sed -e 1d)' -- "$cur")) + _comp_compgen_split -- "$("$1" --list-hash 2>/dev/null | + command sed -e 1d)" return ;; -k | -s | --key | --keysize) diff --git a/completions/mplayer b/completions/mplayer index 1dd69d59839..6d787e956cb 100644 --- a/completions/mplayer +++ b/completions/mplayer @@ -35,8 +35,7 @@ _comp_cmd_mplayer() else _comp_compgen_filedir ttf fi - local IFS=$'\n' - COMPREPLY+=($(compgen -W '$(fc-list 2>/dev/null)' -- "$cur")) + _comp_compgen -a split -l -- "$(fc-list 2>/dev/null)" return ;; -sub | -sub-file) @@ -268,10 +267,10 @@ _comp_cmd_mplayer() case $cur in -*) - COMPREPLY=($(compgen -W '$("$cmd" -noconfig all -list-options 2>/dev/null | \ + _comp_compgen_split -- "$("$cmd" -noconfig all -list-options 2>/dev/null | command sed -ne "1,/^[[:space:]]*Name/d" \ -e "s/^[[:space:]]*/-/" -e "s/[[:space:]:].*//" \ - -e "/^-\(Total\|.*\*\)\{0,1\}$/!p")' -- "$cur")) + -e "/^-\(Total\|.*\*\)\{0,1\}$/!p")" ;; *) _comp_compgen_filedir '@(m?(j)p?(e)g|M?(J)P?(E)G|wm[av]|WM[AV]|avi|AVI|asf|ASF|vob|VOB|bin|BIN|dat|DAT|vcd|VCD|ps|PS|pes|PES|fl[iv]|FL[IV]|fxm|FXM|viv|VIV|rm?(j)|RM?(J)|ra?(m)|RA?(M)|yuv|YUV|mov|MOV|qt|QT|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|og[gmavx]|OG[GMAVX]|w?(a)v|W?(A)V|dump|DUMP|mk[av]|MK[AV]|aac|AAC|m2v|M2V|dv|DV|rmvb|RMVB|mid|MID|t[ps]|T[PS]|3g[p2]|3gpp?(2)|mpc|MPC|flac|FLAC|vro|VRO|divx|DIVX|aif?(f)|AIF?(F)|m2t?(s)|M2T?(S)|mts|MTS|vdr|VDR|xvid|XVID|ape|APE|gif|GIF|nut|NUT|bik|BIK|web[am]|WEB[AM]|amr|AMR|awb|AWB|iso|ISO|opus|OPUS|m[eo]d|M[EO]D|xm|XM|it|IT|s[t3]m|S[T3]M|mtm|MTM|w64|W64)?(.@(crdownload|part))' diff --git a/completions/msynctool b/completions/msynctool index 6b67af2ffac..76c58758556 100644 --- a/completions/msynctool +++ b/completions/msynctool @@ -12,21 +12,18 @@ _comp_cmd_msynctool() return ;; --addmember) - COMPREPLY=($(compgen -W '$("$1" --listplugins \ - | command sed -e 1d)' -- "$cur")) + _comp_compgen_split -- "$("$1" --listplugins | command sed -e 1d)" return ;; esac case $prev in --configure | --addgroup | --delgroup | --showgroup | --sync | --addmember) - COMPREPLY=($(compgen -W '$("$1" --listgroups \ - | command sed -e 1d)' -- "$cur")) + _comp_compgen_split -- "$("$1" --listgroups | command sed -e 1d)" return ;; --showformats | --filter-objtype | --slow-sync) - COMPREPLY=($(compgen -W '$("$1" --listobjects \ - | command sed -e 1d)' -- "$cur")) + _comp_compgen_split -- "$("$1" --listobjects | command sed -e 1d)" return ;; esac diff --git a/completions/munin-run b/completions/munin-run index f781bcf5a9e..c514a01d5de 100644 --- a/completions/munin-run +++ b/completions/munin-run @@ -19,8 +19,7 @@ _comp_cmd_munin_run() if [[ $cur == -* ]]; then _comp_compgen_help else - COMPREPLY=($(compgen -W \ - '$(command ls /etc/munin/plugins 2>/dev/null)' -- "$cur")) + _comp_compgen_split -- "$(command ls /etc/munin/plugins 2>/dev/null)" fi } && complete -F _comp_cmd_munin_run munin-run diff --git a/completions/munindoc b/completions/munindoc index f2024928eb4..4a1b4c668e4 100644 --- a/completions/munindoc +++ b/completions/munindoc @@ -5,8 +5,7 @@ _comp_cmd_munindoc() local cur prev words cword comp_args _comp_initialize -- "$@" || return - COMPREPLY=($(compgen -W \ - '$(command ls /usr/share/munin/plugins 2>/dev/null)' -- "$cur")) + _comp_compgen_split -- "$(command ls /usr/share/munin/plugins 2>/dev/null)" } && complete -F _comp_cmd_munindoc munindoc diff --git a/completions/ncftp b/completions/ncftp index 89e8c72d92e..60218c11847 100644 --- a/completions/ncftp +++ b/completions/ncftp @@ -17,8 +17,8 @@ _comp_cmd_ncftp() fi if [[ $cword -eq 1 && -f ~/.ncftp/bookmarks ]]; then - COMPREPLY=($(compgen -W '$(command sed -ne "s/^\([^,]\{1,\}\),.*$/\1/p" \ - ~/.ncftp/bookmarks)' -- "$cur")) + _comp_compgen_split -- "$(command sed -ne \ + 's/^\([^,]\{1,\}\),.*$/\1/p' ~/.ncftp/bookmarks)" fi } && diff --git a/completions/pdftotext b/completions/pdftotext index 34b4939bf1c..a99fd400e4f 100644 --- a/completions/pdftotext +++ b/completions/pdftotext @@ -11,8 +11,8 @@ _comp_cmd_pdftotext() return ;; -enc) - COMPREPLY=($(compgen -W '$("$1" -listenc 2>/dev/null | - command sed -e 1d)' -- "$cur")) + _comp_compgen_split -- "$("$1" -listenc 2>/dev/null | + command sed -e 1d)" return ;; -eol) diff --git a/completions/perl b/completions/perl index 7e03320642a..0938d736ae3 100644 --- a/completions/perl +++ b/completions/perl @@ -47,10 +47,10 @@ _comp_cmd_perl() if [[ $cur == :* ]]; then temp="${cur##+(:)}" prefix+=${cur%"$temp"} - local IFS=$'\n' - COMPREPLY=($(compgen -P "$prefix" -W \ - '$("$1" -MConfig -e "print join \"\\n\", - keys %Config::Config" 2>/dev/null)' -- "$temp")) + _comp_compgen -c "$temp" split -lP "$prefix" -- "$( + "$1" -MConfig -e 'print join "\n", + keys %Config::Config' 2>/dev/null + )" _comp_ltrim_colon_completions "$prefix$temp" fi return @@ -130,11 +130,9 @@ _comp_cmd_perldoc() if [[ $cur != @(*/|[.~])* ]]; then _comp_cmd_perl__helper "" perldocs if [[ $cur == p* ]]; then - COMPREPLY+=($(compgen -W \ - '$(PERLDOC_PAGER=cat "$1" -u perl | \ - command sed -ne "/perl.*Perl overview/,/perlwin32/p" | \ - awk "\$NF=2 && \$1 ~ /^perl/ { print \$1 }")' \ - -- "$cur")) + _comp_compgen -a split -- "$(PERLDOC_PAGER=cat "$1" -u perl | + command sed -ne '/perl.*Perl overview/,/perlwin32/p' | + awk '$NF=2 && $1 ~ /^perl/ { print $1 }')" fi fi _comp_compgen -a filedir 'p@([lm]|od)' diff --git a/completions/perlcritic b/completions/perlcritic index bd04255c000..03d0fc59612 100644 --- a/completions/perlcritic +++ b/completions/perlcritic @@ -19,8 +19,7 @@ _comp_cmd_perlcritic() return ;; --theme) - COMPREPLY=($(compgen -W '$("$1" --list-themes 2>/dev/null)' \ - -- "$cur")) + _comp_compgen_split -- "$("$1" --list-themes 2>/dev/null)" return ;; --profile-strictness) diff --git a/completions/pgrep b/completions/pgrep index 241c669f240..a2a68e9b987 100644 --- a/completions/pgrep +++ b/completions/pgrep @@ -36,12 +36,10 @@ _comp_cmd_pgrep() return ;; --nslist) - COMPREPLY=( - $(IFS=$' \t\n,' compgen -W '$("$1" --help 2>&1 | - command sed -ne \ - "s/^[[:space:]]*Available namespaces://p")' \ - -- "${cur##*,}")) - ((${#COMPREPLY[@]})) && + _comp_compgen -c "${cur##*,}" split -F $' \t\n,' -- "$( + "$1" --help 2>&1 | + command sed -ne 's/^[[:space:]]*Available namespaces://p' + )" && _comp_delimited , -W '"${COMPREPLY[@]}"' return ;; diff --git a/completions/pine b/completions/pine index 51a7373d42c..1d72dabe050 100644 --- a/completions/pine +++ b/completions/pine @@ -24,8 +24,7 @@ _comp_cmd_pine() if [[ $cur == -* ]]; then _comp_compgen_help -- -h else - COMPREPLY=($(compgen -W '$(awk "{print \$1}" ~/.addressbook \ - 2>/dev/null)' -- "$cur")) + _comp_compgen_split -- "$(awk '{print $1}' ~/.addressbook 2>/dev/null)" fi } && complete -F _comp_cmd_pine pine alpine diff --git a/completions/pkg-config b/completions/pkg-config index 3023388b602..2af804f5c68 100644 --- a/completions/pkg-config +++ b/completions/pkg-config @@ -15,9 +15,9 @@ _comp_cmd_pkg_config() local word for word in "${words[@]:1}"; do if [[ $word != -* ]]; then - COMPREPLY=($(compgen -W \ - '$("$1" "$word" --print-variables 2>/dev/null)' \ - -- "$cur")) + _comp_compgen_split -- "$( + "$1" "$word" --print-variables 2>/dev/null + )" break fi done diff --git a/completions/pngfix b/completions/pngfix index d638ccef0d5..d77d80b24a9 100644 --- a/completions/pngfix +++ b/completions/pngfix @@ -14,9 +14,8 @@ _comp_cmd_pngfix() return ;; --strip) - COMPREPLY=($(IFS='|' compgen -W '$("$1" --help 2>&1 | - command sed -ne "s/.*--strip=\[\([^]]*\)\].*/\1/p")' \ - -- "$cur")) + _comp_compgen_split -F '|' -- "$("$1" --help 2>&1 | + command sed -ne 's/.*--strip=\[\([^]]*\)\].*/\1/p')" return ;; esac diff --git a/completions/pydoc b/completions/pydoc index e7122a4488b..ce0fc60360e 100644 --- a/completions/pydoc +++ b/completions/pydoc @@ -31,8 +31,8 @@ _comp_cmd_pydoc() # Note that we don't do "pydoc modules" as it is known to hang on # some systems; _comp_xfunc_python_modules tends to work better and faster. - COMPREPLY+=($(compgen -W \ - '$("$1" keywords topics | command sed -e /^Here/d)' -- "$cur")) + _comp_compgen -a split -- "$("$1" keywords topics | + command sed -e '/^Here/d')" _comp_compgen -a filedir py } && diff --git a/completions/qdbus b/completions/qdbus index d53299a506b..0aa2c4f00fa 100644 --- a/completions/qdbus +++ b/completions/qdbus @@ -5,9 +5,10 @@ _comp_cmd_qdbus() local cur prev words cword comp_args _comp_initialize -- "$@" || return - [[ $cur ]] && unset -v "words[$((${#words[@]} - 1))]" - COMPREPLY=($(compgen -W '$(command "${words[@]}" 2>/dev/null | \ - command sed "s/(.*)//")' -- "$cur")) + _comp_compgen_split -- "$( + [[ $cur ]] && unset -v "words[$((${#words[@]} - 1))]" + command "${words[@]}" 2>/dev/null | command sed 's/(.*)//' + )" } && complete -F _comp_cmd_qdbus qdbus dcop diff --git a/completions/reportbug b/completions/reportbug index 98eb4e66dc0..a67b32f87c1 100644 --- a/completions/reportbug +++ b/completions/reportbug @@ -21,20 +21,19 @@ _comp_cmd_reportbug() return ;; --keyid | -${noargopts}K) - COMPREPLY=($(compgen -W '$(IFS=: ; \ - gpg --list-keys --with-colons 2>/dev/null \ - | while read -ra row ; do - [[ "${row[0]}" == [ps]ub && ${row[11]} == *s* ]] && \ - printf "%s\n" "${row[4]}" - done)' -- "$cur")) + _comp_compgen_split -- "$( + IFS=: + gpg --list-keys --with-colons 2>/dev/null | + while read -ra row; do + [[ ${row[0]} == [ps]ub && ${row[11]} == *s* ]] && + printf '%s\n' "${row[4]}" + done + )" return ;; --tag | --ui | --interface | --type | --bts | --severity | --mode | -${noargopts}[TutBS]) - COMPREPLY=($( - compgen -W \ - '$("$1" "$prev" help 2>&1 | sed -ne "/^[[:space:]]/p")' \ - -- "$cur" - )) + _comp_compgen_split -- "$("$1" "$prev" help 2>&1 | + sed -ne '/^[[:space:]]/p')" return ;; --editor | --mua | --mbox-reader-cmd | -${noargopts}e) @@ -43,8 +42,8 @@ _comp_cmd_reportbug() return ;; --from-buildd) - COMPREPLY=($(compgen -S "_" -W '$(apt-cache dumpavail | \ - command grep "^Source: $cur" | sort -u | cut -f2 -d" ")')) + _comp_compgen_split -S "_" -- "$(apt-cache dumpavail | + command grep "^Source: $cur" | sort -u | cut -f2 -d' ')" return ;; --smtphost) diff --git a/completions/rpm b/completions/rpm index 580968d1049..79732bed718 100644 --- a/completions/rpm +++ b/completions/rpm @@ -18,7 +18,7 @@ _comp_cmd_rpm__installed_packages() /var/log/rpmpkgs)" elif type rpmqpack &>/dev/null; then # SUSE's rpmqpack is faster than rpm -qa - COMPREPLY=($(compgen -W '$(rpmqpack)' -- "$cur")) + _comp_compgen_split -- "$(rpmqpack)" else COMPREPLY=($("${1:-rpm}" -qa --nodigest --nosignature \ --queryformat='%{NAME} ' "$cur*" 2>/dev/null)) diff --git a/completions/scrub b/completions/scrub index 1622bad89cf..3906742cf81 100644 --- a/completions/scrub +++ b/completions/scrub @@ -13,9 +13,8 @@ _comp_cmd_scrub() return ;; --pattern | -${noargopts}p) - COMPREPLY=($(compgen -W '$("$1" --help 2>&1 | - awk "/^Available/{flag=1;next}/^ /&&flag{print \$1}")' \ - -- "$cur")) + _comp_compgen_split -- "$("$1" --help 2>&1 | + awk '/^Available/{flag=1;next}/^ /&&flag{print $1}')" return ;; --freespace | -${noargopts}X) diff --git a/completions/smbclient b/completions/smbclient index 8bbfa9bd0ae..bd2deebb576 100644 --- a/completions/smbclient +++ b/completions/smbclient @@ -8,7 +8,7 @@ _comp_cmd_smbclient__resolve_order() _comp_cmd_smbclient__domains() { if [[ ${BASH_COMPLETION_CMD_SMBTREE_SCAN-${COMP_SAMBA_SCAN-}} ]]; then - COMPREPLY=($(compgen -W '$(smbtree -N -D)' -- "$cur")) + _comp_compgen_split -- "$(smbtree -N -D)" fi } diff --git a/completions/ssh b/completions/ssh index 6f10346643c..2000c4d379d 100644 --- a/completions/ssh +++ b/completions/ssh @@ -145,7 +145,7 @@ _comp_cmd_ssh__suboption() _comp_compgen_filedir ;; casignaturealgorithms) - COMPREPLY=($(compgen -W '$(_comp_cmd_ssh__query "$1" sig)' -- "$cur")) + _comp_compgen_split -- "$(_comp_cmd_ssh__query "$1" sig)" ;; cipher) _comp_compgen -- -W 'blowfish des 3des' @@ -167,10 +167,10 @@ _comp_cmd_ssh__suboption() cs{0..7} ef lowdelay throughput reliability' ;; hostbasedkeytypes | hostkeyalgorithms) - COMPREPLY=($(compgen -W '$(_comp_cmd_ssh__query "$1" key)' -- "$cur")) + _comp_compgen_split -- "$(_comp_cmd_ssh__query "$1" key)" ;; kexalgorithms) - COMPREPLY=($(compgen -W '$(_comp_cmd_ssh__query "$1" kex)' -- "$cur")) + _comp_compgen_split -- "$(_comp_cmd_ssh__query "$1" kex)" ;; loglevel) _comp_compgen -- -W 'QUIET FATAL ERROR INFO VERBOSE DEBUG{,1,2,3}' @@ -199,7 +199,7 @@ _comp_cmd_ssh__suboption() _comp_compgen -- -c ;; pubkeyacceptedalgorithms | pubkeyacceptedkeytypes) - COMPREPLY=($(compgen -W '$(_comp_cmd_ssh__query "$1" key)' -- "$cur")) + _comp_compgen_split -- "$(_comp_cmd_ssh__query "$1" key)" ;; requesttty) _comp_compgen -- -W 'no yes force auto' diff --git a/completions/strings b/completions/strings index 453215e6aec..45f0e6064c3 100644 --- a/completions/strings +++ b/completions/strings @@ -17,18 +17,13 @@ _comp_cmd_strings() return ;; --target | -${noargopts}T) - COMPREPLY=($(compgen -W '$(LC_ALL=C "$1" --help 2>/dev/null | \ - command sed -ne "s/: supported targets: \(.*\)/\1/p")' \ - -- "$cur")) + _comp_compgen_split -- "$(LC_ALL=C "$1" --help 2>/dev/null | + command sed -ne 's/: supported targets: \(.*\)/\1/p')" return ;; --encoding | -${noargopts}e) - COMPREPLY=($( - IFS=, compgen -W \ - '$(LC_ALL=C "$1" --help 2>/dev/null | \ - command sed -ne "s/.*--encoding={\([^}]*\)}.*/\1/p")' \ - -- "$cur" - )) + _comp_compgen_split -F , -- "$(LC_ALL=C "$1" --help 2>/dev/null | + command sed -ne 's/.*--encoding={\([^}]*\)}.*/\1/p')" return ;; esac diff --git a/completions/synclient b/completions/synclient index 1452d345ca6..609677df24f 100644 --- a/completions/synclient +++ b/completions/synclient @@ -14,8 +14,8 @@ _comp_cmd_synclient() if [[ $cur == -* ]]; then _comp_compgen_usage elif [[ $cur != *=?* ]]; then - COMPREPLY=($(compgen -S = -W '$("$1" -l 2>/dev/null | \ - awk "/^[ \t]/ { print \$1 }")' -- "$cur")) + _comp_compgen_split -S = -- "$("$1" -l 2>/dev/null | + awk '/^[ \t]/ { print $1 }')" compopt -o nospace fi } && diff --git a/completions/update-alternatives b/completions/update-alternatives index e480572f378..07e549779dd 100644 --- a/completions/update-alternatives +++ b/completions/update-alternatives @@ -13,7 +13,7 @@ _comp_cmd_update_alternatives__installed() break fi done - COMPREPLY=($(compgen -W '$(command ls "$admindir")' -- "$cur")) + _comp_compgen_split -- "$(command ls "$admindir")" } _comp_cmd_update_alternatives() diff --git a/completions/valgrind b/completions/valgrind index 7fafaacfe61..068a0fe6f45 100644 --- a/completions/valgrind +++ b/completions/valgrind @@ -30,12 +30,14 @@ _comp_cmd_valgrind() # we want to grab memcheck. local -a files _comp_expand_glob files '/usr{,/local}/lib{,64,exec}{/*-linux-gnu,}/valgrind/*' - ((${#files[@]})) && - COMPREPLY=($(compgen -W '$( + if ((${#files[@]})); then + _comp_compgen_split -- "$( for f in "${files[@]}"; do [[ $f != *.so && -x $f && $f =~ ^.*/(.*)-[^-]+-[^-]+ ]] && - printf "%s\n" "${BASH_REMATCH[1]}" - done)' -- "$cur")) + printf '%s\n' "${BASH_REMATCH[1]}" + done + )" + fi return ;; --sim-hints) diff --git a/completions/xdg-settings b/completions/xdg-settings index f368fb263d2..2e8f41b2292 100644 --- a/completions/xdg-settings +++ b/completions/xdg-settings @@ -21,8 +21,7 @@ _comp_cmd_xdg_settings() if ((args == 1)); then _comp_compgen -- -W "get check set" elif ((args == 2)); then - COMPREPLY=($(compgen -W \ - '$("$1" --list | awk "!/^Known/ { print \$1 }")' -- "$cur")) + _comp_compgen_split -- "$("$1" --list | awk '!/^Known/ { print $1 }')" fi } && complete -F _comp_cmd_xdg_settings xdg-settings diff --git a/completions/xfreerdp b/completions/xfreerdp index 95f3fae86b5..71b276e52ee 100644 --- a/completions/xfreerdp +++ b/completions/xfreerdp @@ -7,8 +7,8 @@ _comp_cmd_xfreerdp() case $prev in -k) - COMPREPLY=($(compgen -W '$("$1" --kbd-list | - awk "/^0x/ { print \$1 }")' -- "$cur")) + _comp_compgen_split -- "$("$1" --kbd-list | + awk '/^0x/ { print $1 }')" return ;; -a) @@ -30,8 +30,8 @@ _comp_cmd_xfreerdp() case $cur in /kbd:*) - COMPREPLY=($(compgen -W '$("$1" /kbd-list | - awk "/^0x/ { print \$1 }")' -- "${cur#/kbd:}")) + _comp_compgen -c "${cur#/kbd:}" split -- "$("$1" /kbd-list | + awk '/^0x/ { print $1 }')" return ;; /bpp:*) @@ -45,17 +45,17 @@ _comp_cmd_xfreerdp() if [[ $cur == /* ]]; then _comp_compgen_filedir rdp - COMPREPLY+=($(compgen -W '$("$1" --help | - awk "\$1 ~ /^\\// && \$1 !~ /^.(flag\$|option:)/ { sub(\":.*\",\":\",\$1); print \$1 }")' \ - -- "$cur")) + _comp_compgen -a split -- "$( + "$1" --help | awk '$1 ~ /^\// && $1 !~ /^.(flag$|option:)/ { + sub(":.*",":",$1); print $1 }' + )" [[ ${COMPREPLY-} == *: ]] && compopt -o nospace elif [[ $cur == [+-]* ]]; then local char=${cur:0:1} local help="$("$1" --help)" if [[ $help == */help* ]]; then # new/slash syntax - COMPREPLY=($(compgen -W '$(awk " - \$1 ~ /^[+-]/ && \$1 !~ /^.toggle\$/ { sub(\"^.\",\"$char\",\$1); print \$1 } - " <<<"$help")' -- "$cur")) + _comp_compgen_split -- "$(awk '$1 ~ /^[+-]/ && $1 !~ /^.toggle$/ { + sub("^.","'"$char"'",$1); print $1 }' <<<"$help")" else # old/dash syntax _comp_compgen -R help - <<<"$help" ((${#COMPREPLY[@]})) && diff --git a/completions/ypmatch b/completions/ypmatch index 13d266e5421..db5a233e0c4 100644 --- a/completions/ypmatch +++ b/completions/ypmatch @@ -12,13 +12,10 @@ _comp_cmd_ypmatch() if [[ $cmd == ypmatch && $cword -eq 1 && ${#words[@]} -eq 3 ]]; then map=${words[2]} - COMPREPLY=($(compgen -W '$(ypcat "$map" 2>/dev/null | \ - cut -d':' -f 1)' -- "$cur")) + _comp_compgen_split -- "$(ypcat "$map" 2>/dev/null | cut -d':' -f 1)" else [[ $cmd == ypmatch && $cword -ne 2 ]] && return - COMPREPLY=($(compgen -W \ - '$(printf "%s\n" $(ypcat -x 2>/dev/null | \ - cut -d"\"" -f 2))' -- "$cur")) + _comp_compgen_split -- "$(ypcat -x 2>/dev/null | cut -d'"' -f 2)" fi } && complete -F _comp_cmd_ypmatch ypmatch ypcat