diff options
author | Oliver Kiddle <opk@users.sourceforge.net> | 2000-08-10 21:22:25 +0000 |
---|---|---|
committer | Oliver Kiddle <opk@users.sourceforge.net> | 2000-08-10 21:22:25 +0000 |
commit | 5851a32681f5fbdbc55987cb117f891e3745f13c (patch) | |
tree | 1dfb2778e27187407068f0846f139b3f827a7391 /Completion/Builtins/_vars | |
parent | 5b04efd73cba5e3ebf0e919e68ba7f2baae4734e (diff) | |
download | zsh-5851a32681f5fbdbc55987cb117f891e3745f13c.tar.gz zsh-5851a32681f5fbdbc55987cb117f891e3745f13c.tar.xz zsh-5851a32681f5fbdbc55987cb117f891e3745f13c.zip |
add -g option to _parameters to restrict type of parameters completed (12583)
Diffstat (limited to 'Completion/Builtins/_vars')
-rw-r--r-- | Completion/Builtins/_vars | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/Completion/Builtins/_vars b/Completion/Builtins/_vars index a46b99de0..501e37b4f 100644 --- a/Completion/Builtins/_vars +++ b/Completion/Builtins/_vars @@ -1,8 +1,9 @@ #compdef getopts unset vared # This will handle completion of keys of associative arrays, e.g. at -# `vared foo[<TAB>'. However, in this version the [ must be added -# by hand. +# `vared foo[<TAB>'. + +local ret=1 if [[ $PREFIX = *\[* ]]; then local var=${PREFIX%%\[*} @@ -11,7 +12,7 @@ if [[ $PREFIX = *\[* ]]; then compset -p $(( ${#var} + 1 )) if ! compset -S \]; then - addclose=(-S ']') + addclose=(-S "${${QIPREFIX:+]}:-\]}") fi if [[ ${(tP)var} = assoc* ]]; then local expl @@ -20,5 +21,13 @@ if [[ $PREFIX = *\[* ]]; then compadd $addclose -k "$var" fi else - _parameters "$@" + _parameters -g '^a*' "$@" && ret=0 + + if compset -S '\[*'; then + set - -S "" "$@" + else + set - -qS"${${QIPREFIX:+[}:-\[}" "$@" + fi + _parameters -g 'a*' "$@" && ret=0 + return ret fi |