about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2007-02-16 15:02:03 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2007-02-16 15:02:03 +0000
commit9d43d061e186b91a3b3374ea983a56aa699211a5 (patch)
tree02875b93d7d0c3b7d5390abef940df01337c686c /Completion
parent1f4fa4c02df2cdced081008c8d91c442b040dbc8 (diff)
downloadzsh-9d43d061e186b91a3b3374ea983a56aa699211a5.tar.gz
zsh-9d43d061e186b91a3b3374ea983a56aa699211a5.tar.xz
zsh-9d43d061e186b91a3b3374ea983a56aa699211a5.zip
23182: _arguments problem with --with-foo[=BAR] specifiers
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Base/Utility/_arguments6
1 files changed, 5 insertions, 1 deletions
diff --git a/Completion/Base/Utility/_arguments b/Completion/Base/Utility/_arguments
index dacc19890..d1aafd79a 100644
--- a/Completion/Base/Utility/_arguments
+++ b/Completion/Base/Utility/_arguments
@@ -217,7 +217,11 @@ if (( long )); then
 	  else
 	    odescr=
 	  fi
-	  opt2=${${opt%%\[\=*}//[^a-zA-Z0-9-]}=${dir}${odescr}
+	  if [[ $opt = (#b)(*)\[\=* ]]; then
+	    opt2=${${match[1]}//[^a-zA-Z0-9-]}=-${dir}${odescr}
+	  else
+	    opt2=${${opt}//[^a-zA-Z0-9-]}=${dir}${odescr}
+	  fi
 	  if [[ "$descr" = :\=* ]]; then
 	    cache+=( "${opt2}::${(L)${opt%\]}#*\=}: " )
 	  elif [[ "$descr" = ::* ]]; then