File tcsh-6.18.03-colorls.dif of Package tcsh

---
 tests/ls-F.at |   36 ++++++++++++++++++------------------
 tw.color.c    |   10 ++++------
 2 files changed, 22 insertions(+), 24 deletions(-)

--- tests/ls-F.at
+++ tests/ls-F.at	2023-04-13 12:51:33.133052023 +0000
@@ -358,9 +358,9 @@ dnl
 dnl Fail: environment LS_COLORS=YY:XX=0 exits with unknown 'XX'.
 dnl (Unknown 'YY' is ignored.)
 dnl
-AT_CHECK([LS_COLORS=YY:XX=0 tcsh -f -c 'set color;cd DIR && ls-F'], [1], [], [dnl
-Unknown LS_COLORS color variable 'XX'.
-])
+dnl AT_CHECK([LS_COLORS=YY:XX=0 tcsh -f -c 'set color;cd DIR && ls-F'], [1], [], [dnl
+dnl Unknown LS_COLORS color variable 'XX'.
+dnl ])
 
 dnl
 dnl setenv LS_COLORS "YY:XX=0" warns for unknown 'XX='. (Unknown 'YY' is ignored').
@@ -368,11 +368,11 @@ dnl listflags=A, listlinks
 dnl
 dnl As per ls-F-color-default.out.
 dnl
-TCSH_LS_F([${tests_dir}/ls-F-color-default.out],
-    [],
-    [setenv LS_COLORS "YY:XX=0"; set color listflags=A listlinks], [dnl
-Unknown LS_COLORS color variable 'XX'.
-])
+dnl TCSH_LS_F([${tests_dir}/ls-F-color-default.out],
+dnl     [],
+dnl     [setenv LS_COLORS "YY:XX=0"; set color listflags=A listlinks], [dnl
+dnl Unknown LS_COLORS color variable 'XX'.
+dnl ])
 
 dnl
 dnl Check setenv LS_COLORS that all variables before an unknown variable are used.
@@ -383,11 +383,11 @@ dnl listflags=A, listlinks
 dnl
 dnl As per ls-F-LS_COLORS-all.out.
 dnl
-TCSH_LS_F([${tests_dir}/ls-F-LS_COLORS-all.out],
-    [],
-    [setenv LS_COLORS "TCSH_TEXT_LS_COLORS:YY:XX=0"; set color listflags=A listlinks], [dnl
-Unknown LS_COLORS color variable 'XX'.
-])
+dnl TCSH_LS_F([${tests_dir}/ls-F-LS_COLORS-all.out],
+dnl     [],
+dnl     [setenv LS_COLORS "TCSH_TEXT_LS_COLORS:YY:XX=0"; set color listflags=A listlinks], [dnl
+dnl Unknown LS_COLORS color variable 'XX'.
+dnl ])
 
 dnl
 dnl LS_COLORS as TCSH_TEXT_LS_COLORS, override with setenv LSCOLORS,
@@ -407,11 +407,11 @@ dnl override with LSCOLORS=Aa,
 dnl then unsetenv LSCOLORS to reapply faulty LS_COLORS without warning.
 dnl and results in default colors.
 dnl
-TCSH_LS_F([${tests_dir}/ls-F-color-default.out],
-    [],
-    [setenv LS_COLORS XX=0; setenv LSCOLORS Aa; unsetenv LSCOLORS || echo FAIL; set color listflags=A listlinks], [dnl
-Unknown LS_COLORS color variable 'XX'.
-])
+dnl TCSH_LS_F([${tests_dir}/ls-F-color-default.out],
+dnl     [],
+dnl     [setenv LS_COLORS XX=0; setenv LSCOLORS Aa; unsetenv LSCOLORS || echo FAIL; set color listflags=A listlinks], [dnl
+dnl Unknown LS_COLORS color variable 'XX'.
+dnl ])
 
 m4_popdef([TCSH_TEXT_LS_COLORS])
 
--- tw.color.c
+++ tw.color.c	2023-04-13 12:33:48.052952714 +0000
@@ -56,7 +56,7 @@ typedef struct {
 typedef enum {
     Vdi, Vln, Vor, Vpi, Vso, Vdo, Vbd, Vcd,
     Vex, Vfi, Vno, Vmi, Vlc, Vrc, Vec, Vsu,
-    Vsg, Vtw, Vow, Vst, Vrs, Vhl, Vmh, Vca,
+    Vsg, Vtw, Vow, Vst, Vrs, Vhl, Vmh, Vca, Vcl,
 } VARINDEX;
 
 typedef struct {
@@ -100,6 +100,7 @@ static Variable variables[] = {
     VAR(Vhl, CV_NONE,	"hl", ""),	/* Obsolete, use mh */
     VAR(Vmh, CV_HARD,	"mh", ""),	/* Regular file with multiple hard links */
     VAR(Vca, CV_NONE,	"ca", ""),	/* File with capability. Not implemented. */
+    VAR(Vcl, CV_NONE,	"cl", ""),	/* CLRTOEOL */
 };
 
 #define nvariables (sizeof(variables)/sizeof(variables[0]))
@@ -369,7 +370,7 @@ parseLS_COLORS(const Char *value, int si
     size_t  i, len;
     const Char	 *v;		/* pointer in value */
     char   *c;			/* pointer in colors */
-    Extension *volatile e;	/* pointer in extensions */
+    static Extension *volatile e;	/* pointer in extensions */
     jmp_buf_t osetexit;
     size_t omark;
 
@@ -426,17 +427,14 @@ parseLS_COLORS(const Char *value, int si
 			if ((Char)variables[i].variable[0] == (v[0] & CHAR) &&
 			    (Char)variables[i].variable[1] == (v[1] & CHAR))
 			    break;
+		    v += 3;
 		    if (i < nvariables) {
-			v += 3;
 			getstring(&c, &v, &variables[i].color, ':');
 			if (i == Vln)
 			    color_as_referent = Str_equal_literal(
 				&variables[Vln].color, "target");
 			continue;
 		    }
-		    else
-			stderror(ERR_BADCOLORVAR | (silent ? ERR_SILENT : 0),
-			    "LS_COLORS", v[0], v[1]);
 		}
 		break;
 	    }
openSUSE Build Service is sponsored by