summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Completion/Core/_setup2
-rw-r--r--Src/Zle/complist.c5
3 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 16a967274..288238f58 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2000-06-28  Sven Wischnowsky  <wischnow@zsh.org>
 
+	* 12107: Completion/Core/_setup, Src/Zle/complist.c: fix for
+ 	list-colors handling
+	
 	* 12105: Completion/Core/_main_complete: reset _comp_mesg (saying
  	whether there were messages) appropriately
 	
diff --git a/Completion/Core/_setup b/Completion/Core/_setup
index 1278fa1ba..11b618c49 100644
--- a/Completion/Core/_setup
+++ b/Completion/Core/_setup
@@ -10,7 +10,7 @@ if zstyle -a ":completion:${curcontext}:$1" list-colors val; then
     _comp_colors=( "$val[@]" )
   else
     _comp_colors=( "$_comp_colors[@]"
-                   "(${2})${(@)^val:#\(*\)*}" "${(M@)val:#\(*\)*}" )
+                   "(${2})${(@)^val:#(|\(*\)*)}" "${(M@)val:#\(*\)*}" )
   fi
 
 # Here is the problem mentioned in _main_complete.
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c
index 9159326f3..30bc17f88 100644
--- a/Src/Zle/complist.c
+++ b/Src/Zle/complist.c
@@ -362,7 +362,10 @@ getcols(Listcols c)
     memset(c, 0, sizeof(*c));
     s = dupstring(s);
     while (*s)
-	s = getcoldef(c, s);
+	if (*s == ':')
+	    s++;
+	else
+	    s = getcoldef(c, s);
 
     /* Use default values for those that aren't set explicitly. */
     for (i = 0; i < NUM_COLS; i++) {