diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-09-13 13:31:34 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-09-13 13:31:34 +0000 |
commit | 1f0ee9b324e04855678fccfdb243c76f33309d53 (patch) | |
tree | 5ee1256f2f8a3486d9e8f6ae9c4a72dc179f8c8b | |
parent | cc9e3f657f4ef3e701e7f7d5d3b1bd2a78cf49ef (diff) | |
download | zsh-1f0ee9b324e04855678fccfdb243c76f33309d53.tar.gz zsh-1f0ee9b324e04855678fccfdb243c76f33309d53.tar.xz zsh-1f0ee9b324e04855678fccfdb243c76f33309d53.zip |
zsh-workers/7801
-rw-r--r-- | Completion/Base/_arguments | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/Completion/Base/_arguments b/Completion/Base/_arguments index e0443930b..823d4c3a6 100644 --- a/Completion/Base/_arguments +++ b/Completion/Base/_arguments @@ -822,12 +822,17 @@ while true; do if [[ -n "$sopts" && -n "$PREFIX" && "$PREFIX" = [-+]${~soptseq}[$sopts] ]]; then if [[ "$PREFIX" = [-+]${~soptseq1} ]]; then - if [[ -n "$compconfig[describe_options]" && - "$compconfig[describe_options]" != *\!${cmd}* ]]; then - _display tmp odescr - else - tmp="( ${(j: :)${(@)${(@M)${=:-${(k)opts} ${(k)dopts} ${(k)odopts}}:#[-+]?(|=)}#?}%=} )" + local dpre="$PREFIX" dsuf="$SUFFIX" + + PREFIX='' + SUFFIX='' + if [[ -z "$compconfig[describe_options]" || + "$compconfig[describe_options]" = *\!${cmd}* ]] || + ! _display tmp odescr; then + tmp=( "${dpre[1]}${(@o)^${(@)${(@M)${=:-${(k)opts} ${(k)dopts} ${(k)odopts}}:#[-+]?(|=)}#?}%=}" ) fi + PREFIX="$dpre" + SUFFIX="$dsuf" compadd "$expl[@]" -Q -M 'r:|[_-]=* r:|=*' -y tmp - \ "${PREFIX}${(@k)^opts[(I)${PREFIX[1]}?]#?}" \ "${PREFIX}${(@k)^dopts[(I)${PREFIX[1]}?]#?}" \ |