about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/Unix/Command/_cvs4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 25228940c..74e422037 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2003-07-03  Peter Stephenson  <pws@csr.com>
 
+	* 19696: Completion/Unix/Command/_cvs: quoting of characters
+	when completing existing CVS-managed files (in particular
+	spaces) was flakey.  The same problem probably exists for
+	completing modified files, but the code is indecipherable.
+
 	* 18769: Src/exec.c: parse error in autoloading file causes
 	return value zero and empty function definition.  Presumed
 	to be error introduced with wordcode.
diff --git a/Completion/Unix/Command/_cvs b/Completion/Unix/Command/_cvs
index c2ddb2e2c..8082b7336 100644
--- a/Completion/Unix/Command/_cvs
+++ b/Completion/Unix/Command/_cvs
@@ -912,8 +912,8 @@ _cvs_existing_entries () {
   linedir="$match[1]"
   realdir=${(e)~linedir}
   [[ -f "$realdir"CVS/Entries ]] &&
-  [[ -n ${pat::="${(@j:|:)${(@)${(@)${(@)${(@M)${(@f)"$(<"$realdir"CVS/Entries)"}:#/*}#/}%%/*}//(#m)[][*?()<|^~#\\]/\\$MATCH}}"} ]] &&
-  _wanted files expl file _path_files -g "$pat"
+  pat=(${(@)${(@)${(@M)${(@f)"$(<"$realdir"CVS/Entries)"}:#/*}#/}%%/*})
+  (( ${#pat} )) && _wanted files expl file _path_files -a pat
 }
 
 (( $+functions[_cvs_modified_entries] )) ||