about summary refs log tree commit diff
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
parentcc9e3f657f4ef3e701e7f7d5d3b1bd2a78cf49ef (diff)
downloadzsh-1f0ee9b324e04855678fccfdb243c76f33309d53.tar.gz
zsh-1f0ee9b324e04855678fccfdb243c76f33309d53.tar.xz
zsh-1f0ee9b324e04855678fccfdb243c76f33309d53.zip
zsh-workers/7801
-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]}?]#?}" \