From 6e809d032ce713ab70b640d6ec29688d758076e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Mon, 25 Apr 2011 00:09:50 +0300 Subject: [PATCH] Remove = from COMP_WORDBREAKS when using _split_longopt(). Without this, it does not do anything useful in bash >= 4.0. --- bash_completion | 2 ++ completions/_mock | 2 +- completions/_yum | 2 +- completions/aspell | 2 +- completions/autoconf | 6 +++--- completions/automake | 4 ++-- completions/bluez | 4 ++-- completions/chkconfig | 2 +- completions/configure | 2 +- completions/coreutils | 6 +++--- completions/cpio | 2 +- completions/dpkg | 2 +- completions/heimdal | 2 +- completions/iconv | 2 +- completions/iptables | 2 +- completions/mailman | 22 +++++++++++----------- completions/make | 2 +- completions/mc | 2 +- completions/mdadm | 2 +- completions/mkinitrd | 2 +- completions/mysqladmin | 2 +- completions/net-tools | 4 ++-- completions/open-iscsi | 2 +- completions/pkg-config | 2 +- completions/postgresql | 6 +++--- completions/quota-tools | 14 +++++++------- completions/reportbug | 2 +- completions/rpm | 12 ++++++++---- completions/rtcwake | 2 +- completions/samba | 10 +++++----- completions/shadow | 18 +++++++++--------- completions/smartctl | 2 +- completions/sysbench | 5 +++-- completions/tar | 2 +- completions/wol | 2 +- completions/xz | 10 +++++----- 36 files changed, 87 insertions(+), 80 deletions(-) diff --git a/bash_completion b/bash_completion index f1def504..35423971 100644 --- a/bash_completion +++ b/bash_completion @@ -649,6 +649,8 @@ _filedir() # This function splits $cur=--foo=bar into $prev=--foo, $cur=bar, making it # easier to support both "--foo bar" and "--foo=bar" style completions. +# `=' should have been removed from COMP_WORDBREAKS when setting $cur for +# this to be useful. # Returns 0 if current option was split, 1 otherwise. # _split_longopt() diff --git a/completions/_mock b/completions/_mock index 171732f7..f082ac76 100644 --- a/completions/_mock +++ b/completions/_mock @@ -8,7 +8,7 @@ have mock || return _mock() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local plugins='tmpfs root_cache yum_cache bind_mount ccache' local cfgdir=/etc/mock count=0 i diff --git a/completions/_yum b/completions/_yum index ca561273..063b982a 100644 --- a/completions/_yum +++ b/completions/_yum @@ -38,7 +38,7 @@ _yum_plugins() _yum() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local special i for (( i=0; i < ${#words[@]}-1; i++ )); do diff --git a/completions/aspell b/completions/aspell index 17fadf32..ef3698cc 100644 --- a/completions/aspell +++ b/completions/aspell @@ -18,7 +18,7 @@ _aspell_dictionary() _aspell() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/autoconf b/completions/autoconf index 10d80cff..05d671a7 100644 --- a/completions/autoconf +++ b/completions/autoconf @@ -4,7 +4,7 @@ have autoconf && _autoconf() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -44,7 +44,7 @@ have autoreconf || have autoheader && _autoreconf() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -85,7 +85,7 @@ have autoscan || have autoupdate && _autoscan() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/automake b/completions/automake index 19a49f3a..0f93ea54 100644 --- a/completions/automake +++ b/completions/automake @@ -4,7 +4,7 @@ have automake && _automake() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -40,7 +40,7 @@ have aclocal && _aclocal() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/bluez b/completions/bluez index 82f66dfe..c97644af 100644 --- a/completions/bluez +++ b/completions/bluez @@ -32,7 +32,7 @@ _bluetooth_packet_types() _hcitool() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -114,7 +114,7 @@ complete -F _hcitool hcitool _sdptool() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/chkconfig b/completions/chkconfig index 941890ab..37941d47 100644 --- a/completions/chkconfig +++ b/completions/chkconfig @@ -5,7 +5,7 @@ have chkconfig || return _chkconfig() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/configure b/completions/configure index a8afb1ca..bca67770 100644 --- a/completions/configure +++ b/completions/configure @@ -5,7 +5,7 @@ _configure() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/coreutils b/completions/coreutils index 97fe96ac..ef38bc4b 100644 --- a/completions/coreutils +++ b/completions/coreutils @@ -7,7 +7,7 @@ _chown() { local cur prev words cword # Don't treat user:group as separate words. - _init_completion -n : || return + _init_completion -n := || return local split=false _split_longopt && split=true @@ -56,7 +56,7 @@ have chgrp && _chgrp() { local cur prev words cword - _init_completion || return + _init_completion -n = || return cur=${cur//\\\\/} @@ -116,7 +116,7 @@ have mktemp && _mktemp() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/cpio b/completions/cpio index 71743b0d..a2511ea5 100644 --- a/completions/cpio +++ b/completions/cpio @@ -10,7 +10,7 @@ _cpio_format() _cpio() { local cur prev words cword - _init_completion -n : || return + _init_completion -n := || return local split=false _split_longopt && split=true diff --git a/completions/dpkg b/completions/dpkg index 7dd8b0bf..68daa54b 100644 --- a/completions/dpkg +++ b/completions/dpkg @@ -21,7 +21,7 @@ _comp_dpkg_installed_packages() _dpkg() { local cur prev words cword - _init_completion || return + _init_completion -n = || return _expand || return 0 diff --git a/completions/heimdal b/completions/heimdal index e909d8c2..2cea5e0e 100644 --- a/completions/heimdal +++ b/completions/heimdal @@ -24,7 +24,7 @@ _heimdal_encodings() _ktutil() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local command options split=false diff --git a/completions/iconv b/completions/iconv index 8d85b3a1..c0216afd 100644 --- a/completions/iconv +++ b/completions/iconv @@ -5,7 +5,7 @@ have iconv || return _iconv() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/iptables b/completions/iptables index d7172009..8cd82c1d 100644 --- a/completions/iptables +++ b/completions/iptables @@ -5,7 +5,7 @@ have iptables || return _iptables() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local table chain='s/^Chain \([^ ]\{1,\}\).*$/\1/p' diff --git a/completions/mailman b/completions/mailman index 457ac336..944748d6 100644 --- a/completions/mailman +++ b/completions/mailman @@ -24,7 +24,7 @@ have add_members && _add_members() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -57,7 +57,7 @@ have remove_members && _remove_members() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -85,7 +85,7 @@ have find_member && _find_member() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -111,7 +111,7 @@ have clone_member && _clone_member() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -137,7 +137,7 @@ have sync_members && _sync_members() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -215,7 +215,7 @@ have list_members && _list_members() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -252,7 +252,7 @@ have change_pw && _change_pw() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -324,7 +324,7 @@ have config_list && _config_list() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -354,7 +354,7 @@ have arch && have mailmanctl && _arch() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -413,7 +413,7 @@ have inject && _inject() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -510,7 +510,7 @@ have qrunner && _qrunner() { local cur prev words cword - _init_completion || return + _init_completion -n = || return _split_longopt && return 0 diff --git a/completions/make b/completions/make index e06aa989..c598a029 100644 --- a/completions/make +++ b/completions/make @@ -5,7 +5,7 @@ have make || have gmake || have gnumake || have pmake || return _make() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local file makef makef_dir="." makef_inc i split=false diff --git a/completions/mc b/completions/mc index e7b57624..3426742a 100644 --- a/completions/mc +++ b/completions/mc @@ -5,7 +5,7 @@ have mc || return _mc() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/mdadm b/completions/mdadm index 22324682..3660aed8 100644 --- a/completions/mdadm +++ b/completions/mdadm @@ -73,7 +73,7 @@ _mdadm_update_flag() _mdadm() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/mkinitrd b/completions/mkinitrd index d5cc025a..5827fc06 100644 --- a/completions/mkinitrd +++ b/completions/mkinitrd @@ -5,7 +5,7 @@ have mkinitrd || return _mkinitrd() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/mysqladmin b/completions/mysqladmin index 1e861172..cebe9f0c 100644 --- a/completions/mysqladmin +++ b/completions/mysqladmin @@ -5,7 +5,7 @@ have mysqladmin || return _mysqladmin() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/net-tools b/completions/net-tools index 9cdb4650..bb9337ce 100644 --- a/completions/net-tools +++ b/completions/net-tools @@ -4,7 +4,7 @@ have mii-tool && _mii_tool() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -37,7 +37,7 @@ have mii-diag && _mii_diag() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/open-iscsi b/completions/open-iscsi index 0d01ca10..8f913546 100644 --- a/completions/open-iscsi +++ b/completions/open-iscsi @@ -5,7 +5,7 @@ have iscsiadm || return _iscsiadm() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/pkg-config b/completions/pkg-config index 4d21af4f..ff665c29 100644 --- a/completions/pkg-config +++ b/completions/pkg-config @@ -5,7 +5,7 @@ have pkg-config || return _pkg_config() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/postgresql b/completions/postgresql index 239c92fe..bbb3ce03 100644 --- a/completions/postgresql +++ b/completions/postgresql @@ -23,7 +23,7 @@ _pg_users() _createdb() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -64,7 +64,7 @@ complete -F _createdb -o default createdb _dropdb() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -100,7 +100,7 @@ complete -F _dropdb -o default dropdb _psql() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/quota-tools b/completions/quota-tools index bc06607a..5aa4039d 100644 --- a/completions/quota-tools +++ b/completions/quota-tools @@ -34,7 +34,7 @@ _filesystems() _quota() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -62,7 +62,7 @@ complete -F _quota -o default quota _setquota() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -100,7 +100,7 @@ complete -F _setquota -o default setquota _edquota() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -131,7 +131,7 @@ complete -F _edquota -o default edquota _quotacheck() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -159,7 +159,7 @@ complete -F _quotacheck -o default quotacheck _repquota() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -187,7 +187,7 @@ complete -F _repquota -o default repquota _quotaon() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -213,7 +213,7 @@ complete -F _quotaon -o default quotaon _quotaoff() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/reportbug b/completions/reportbug index 223bcf33..c9d750f6 100644 --- a/completions/reportbug +++ b/completions/reportbug @@ -88,7 +88,7 @@ have querybts && _querybts() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/rpm b/completions/rpm index 354e3e81..9c32f957 100644 --- a/completions/rpm +++ b/completions/rpm @@ -40,7 +40,7 @@ _rpm_macros() _rpm() { local cur prev words cword - _init_completion || return + _init_completion -n = || return if [ $cword -eq 1 ]; then # first parameter on line @@ -57,10 +57,12 @@ _rpm() -- "$cur" ) ) ;; esac - - return 0 + return 0 fi + local split=false + _split_longopt && split=true + case $prev in --dbpath|--excludepath|--prefix|--relocate|--root) _filedir -d @@ -114,6 +116,8 @@ _rpm() ;; esac + $split && return 0 + # options common to all modes local opts="--define --eval --macros --nodigest --nosignature --rcfile \ --quiet --pipe --verbose" @@ -230,7 +234,7 @@ complete -F _rpm rpm _rpmbuild() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/rtcwake b/completions/rtcwake index 7cfb49bd..24cd9c11 100644 --- a/completions/rtcwake +++ b/completions/rtcwake @@ -5,7 +5,7 @@ have rtcwake || return _rtcwake() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/samba b/completions/samba index a08b9ee3..30cb3751 100644 --- a/completions/samba +++ b/completions/samba @@ -31,7 +31,7 @@ _samba_debuglevel() _smbclient() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -96,7 +96,7 @@ complete -F _smbclient smbclient _smbget() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -127,7 +127,7 @@ complete -F _smbget smbget _smbcacls() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -159,7 +159,7 @@ complete -F _smbcacls smbcacls _smbcquotas() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -250,7 +250,7 @@ complete -F _smbtar smbtar _smbtree() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/shadow b/completions/shadow index 82bdf52a..31ed80d9 100644 --- a/completions/shadow +++ b/completions/shadow @@ -4,7 +4,7 @@ have useradd && _useradd() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -54,7 +54,7 @@ have usermod && _usermod() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -117,7 +117,7 @@ have chage && _chage() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -167,7 +167,7 @@ have chpasswd && _chpasswd() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -197,7 +197,7 @@ have newusers && _newusers() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -244,7 +244,7 @@ have groupadd && _groupadd() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -272,7 +272,7 @@ have groupmod && _groupmod() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -399,7 +399,7 @@ have faillog && _faillog() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true @@ -428,7 +428,7 @@ have lastlog && _lastlog() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/smartctl b/completions/smartctl index 2b93a150..e48b3b7f 100644 --- a/completions/smartctl +++ b/completions/smartctl @@ -106,7 +106,7 @@ _smartctl_drivedb() _smartctl() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local split=false _split_longopt && split=true diff --git a/completions/sysbench b/completions/sysbench index 06aa5750..12fed765 100644 --- a/completions/sysbench +++ b/completions/sysbench @@ -7,8 +7,6 @@ _sysbench() local cur prev words cword _init_completion -n = || return - # long options need the "=" (whitespace split doesn't work), but we split - # internally to make processing easier local split=false _split_longopt && split=true @@ -121,6 +119,9 @@ _sysbench() fi done + # Long options need the "=" (whitespace split doesn't work), so we + # include it in completions that require a value. + local opts="--num-threads= --max-requests= --max-time= --thread-stack-size= --init-rng= --debug= --validate= --help --version" diff --git a/completions/tar b/completions/tar index b802133c..36f057f5 100644 --- a/completions/tar +++ b/completions/tar @@ -5,7 +5,7 @@ have tar || return _tar() { local cur prev words cword - _init_completion || return + _init_completion -n = || return local ext regex tar untar diff --git a/completions/wol b/completions/wol index ce8e6295..107cba55 100644 --- a/completions/wol +++ b/completions/wol @@ -5,7 +5,7 @@ have wol || return _wol() { local cur prev words cword - _init_completion -n : || return + _init_completion -n := || return local split=false _split_longopt && split=true diff --git a/completions/xz b/completions/xz index 96e1a0a8..28d0e48e 100644 --- a/completions/xz +++ b/completions/xz @@ -4,7 +4,10 @@ have xz || have pxz && _xz() { local cur prev words cword - _init_completion || return + _init_completion -n = || return + + local split=false + _split_longopt && split=true if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--compress --decompress --test --list \ @@ -16,9 +19,6 @@ _xz() return 0 fi - local split=false - _split_longopt && split=true - local xspec="*.@(xz|lzma|txz|tlz)" case $prev in @@ -64,7 +64,7 @@ have xzdec && _xzdec() { local cur prev words cword - _init_completion || return + _init_completion -n = || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--memory --quiet --help --version' \