diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-09-02 09:42:05 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-09-02 09:42:05 +0000 |
commit | 586aaeb0861cce12a22af5bb3288c4e84b1c0bb4 (patch) | |
tree | d2ba4d41714cee418ceb22a50da63bbca6087cf7 /Completion/Core/_parameters | |
parent | b13200b2a367d513c445dcc35e7d35b71990bcc1 (diff) | |
download | zsh-586aaeb0861cce12a22af5bb3288c4e84b1c0bb4.tar.gz zsh-586aaeb0861cce12a22af5bb3288c4e84b1c0bb4.tar.xz zsh-586aaeb0861cce12a22af5bb3288c4e84b1c0bb4.zip |
zsh-workers/7628
Diffstat (limited to 'Completion/Core/_parameters')
-rw-r--r-- | Completion/Core/_parameters | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/Completion/Core/_parameters b/Completion/Core/_parameters index a6336424c..0fd6585a2 100644 --- a/Completion/Core/_parameters +++ b/Completion/Core/_parameters @@ -27,18 +27,21 @@ fi _description expl parameter -if zmodload -e parameter; then - setopt localoptions extendedglob - pars=( ${(k)parameters[(R)^*local*]} ) -else - pars=( ${${${(f)"$(typeset +)"}:#*local *}##* } ) -fi - if [[ -n "$slash" && -o autoparamslash ]]; then local i dirs nodirs ret=1 dirs=() nodirs=() + + if zmodload -e parameter; then + setopt localoptions extendedglob + nodirs=( ${(k)parameters[(R)undefined]} ) + pars=( ${(k)parameters[(R)^*(local|undefined)*]} ) + else + nodirs=( ${${(M)${(f)"$(typeset +)"}:#undefined *}##* } ) + pars=( ${${${(f)"$(typeset +)"}:#*(local|undefined) *}##* } ) + fi + for i in $pars; do if [[ -d "${(P)i}" ]]; then dirs=( $dirs $i ) @@ -57,6 +60,13 @@ if [[ -n "$slash" && -o autoparamslash ]]; then return ret else + if zmodload -e parameter; then + setopt localoptions extendedglob + pars=( ${(k)parameters[(R)^*local*]} ) + else + pars=( ${${${(f)"$(typeset +)"}:#*local *}##* } ) + fi + if [[ "$slash" = normal ]]; then compadd -S "$suf" -r ' [:' "$expl[@]" "$@" - $pars elif [[ "$slash" = brace ]]; then |