about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Completion/Base/Utility/_arguments6
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d01e7d93b..f98c24969 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-16  Peter Stephenson  <pws@csr.com>
+
+	* 23182: Completion/Base/Utility/_arguments: handle
+	./configure --help output "--with-foo[=BAR]" by
+	using "=-" specifier.
+
 2007-02-14  Clint Adams  <clint@zsh.org>
 
 	* 23178: David Riebenbauer: Completion/Debian/Command/_make-kpkg:
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