summary refs log tree commit diff
path: root/Completion/Base/Utility
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2002-05-21 07:44:57 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2002-05-21 07:44:57 +0000
commitba168b43dab3102891839a997ef6a2878c2738e5 (patch)
tree4fa5751215184678f99cc4af3ab9de8226ded79c /Completion/Base/Utility
parentd4ec8d06bf619eccd92ed8ca0f388ab9ea2e4189 (diff)
downloadzsh-ba168b43dab3102891839a997ef6a2878c2738e5.tar.gz
zsh-ba168b43dab3102891839a997ef6a2878c2738e5.tar.xz
zsh-ba168b43dab3102891839a997ef6a2878c2738e5.zip
fix removal of automatically added specs (from the -- option) for which a user-defined one is present (17191)
Diffstat (limited to 'Completion/Base/Utility')
-rw-r--r--Completion/Base/Utility/_arguments4
1 files changed, 2 insertions, 2 deletions
diff --git a/Completion/Base/Utility/_arguments b/Completion/Base/Utility/_arguments
index 0cfc60b54..b60e76342 100644
--- a/Completion/Base/Utility/_arguments
+++ b/Completion/Base/Utility/_arguments
@@ -74,11 +74,11 @@ if (( long )); then
     # Remove options also described by user-defined specs.
 
     tmp=()
-    for opt in "${(@)lopts:#--}"; do
+    for opt in "${(@)${(@)lopts:#--}%%\=*}"; do
 
       # Using (( ... )) gives a parse error.
 
-      let "$tmpargv[(I)(|\([^\)]#\))(|\*)${opt}(|[-+=])(|\[*\])(|:*)]" ||
+      let "$tmpargv[(I)(|\([^\)]#\))(|\*)${opt}(|[-+]|=(|-))(|\[*\])(|:*)]" ||
           tmp=( "$tmp[@]" "$opt" )
     done
     lopts=( "$tmp[@]" )