summaryrefslogtreecommitdiffstats
path: root/Completion/Base/_arguments
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-09-13 13:31:34 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-09-13 13:31:34 +0000
commit1f0ee9b324e04855678fccfdb243c76f33309d53 (patch)
tree5ee1256f2f8a3486d9e8f6ae9c4a72dc179f8c8b /Completion/Base/_arguments
parentzsh-workers/7800 (diff)
downloadzsh-1f0ee9b324e04855678fccfdb243c76f33309d53.tar
zsh-1f0ee9b324e04855678fccfdb243c76f33309d53.tar.gz
zsh-1f0ee9b324e04855678fccfdb243c76f33309d53.tar.bz2
zsh-1f0ee9b324e04855678fccfdb243c76f33309d53.tar.lz
zsh-1f0ee9b324e04855678fccfdb243c76f33309d53.tar.xz
zsh-1f0ee9b324e04855678fccfdb243c76f33309d53.tar.zst
zsh-1f0ee9b324e04855678fccfdb243c76f33309d53.zip
zsh-workers/7801
Diffstat (limited to 'Completion/Base/_arguments')
-rw-r--r--Completion/Base/_arguments15
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]}?]#?}" \