about summary refs log tree commit diff
path: root/Completion/Base
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Base')
-rw-r--r--Completion/Base/_arguments10
1 files changed, 5 insertions, 5 deletions
diff --git a/Completion/Base/_arguments b/Completion/Base/_arguments
index df01ba6a4..216d3ae02 100644
--- a/Completion/Base/_arguments
+++ b/Completion/Base/_arguments
@@ -848,10 +848,10 @@ while true; do
         compadd "$expl[@]" -Q -M 'r:|[_-]=* r:|=*' - "${PREFIX}" && ret=0
       fi
     else
-      tmp1=( "${(k)opts[@]}" "${(@k)odopts[(I)*[^=]]}" )
-      tmp1=( "${(@M)odescr:#(${(kj:|:)~tmp1}):*}" )
+      tmp1=( "${(@k)opts}" "${(@k)odopts[(I)*[^=]]}" )
+      tmp1=( "${(@M)odescr:#(${(j:|:)~tmp1}):*}" )
       tmp2=( "${(@M)odescr:#(${(kj:|:)~dopts}):*}" )
-      tmp3=( "${(@M)odescr:#(${(kj:|:)~odopts[(I)*=]}):*}" )
+      tmp3=( "${(@M)odescr:#(${(kj:|:)~odopts[(I)*=]%=}):*}" )
       _describe -o -c "$cmd" option \
         tmp1 -Q -M 'r:|[_-]=* r:|=*' -- \
         tmp2 -QS '' -M 'r:|[_-]=* r:|=*' -- \
@@ -860,8 +860,8 @@ while true; do
   fi
 
   if [[ nm -eq compstate[nmatches] && 
-        ( -z "$single" ||
-          ( $#_args_cache_long -ne 0 && "$PREFIX" = --*=* ) ) ]]; then
+        ( ( -z "$single" && "$PREFIX" = [-+]*\=* ) ||
+          ( $#_args_cache_long -ne 0 && "$PREFIX" = --*\=* ) ) ]]; then
     tmp=( "${(@Mk)odopts:#[^:]#\=}" )
     prefix="${PREFIX#*\=}"
     suffix="$SUFFIX"