File tcsh-6.18.03-colorls.dif of Package tcsh

---
 tw.color.c |   25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

--- tw.color.c
+++ tw.color.c	2016-11-25 08:02:01.645250915 +0000
@@ -89,6 +89,7 @@ static Variable variables[] = {
     VAR(NOS, "hl", "44;37"),    /* Reg file extra hard links, obsolete? */
     VAR(NOS, "mh", "44;37"),    /* Reg file extra hard links */
     VAR(NOS, "ca", "30;41"),    /* File with capability */
+    VAR(NOS, "cl", ""),		/* CLRTOEOL */
 };
 
 #define nvariables (sizeof(variables)/sizeof(variables[0]))
@@ -325,7 +326,7 @@ parseLS_COLORS(const Char *value)
     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;
 
@@ -382,13 +383,10 @@ parseLS_COLORS(const Char *value)
 			if ((Char)variables[i].variable[0] == (v[0] & CHAR) &&
 			    (Char)variables[i].variable[1] == (v[1] & CHAR))
 			    break;
-		    if (i < nvariables) {
-			v += 3;
+		    v += 3;
+		    if (i < nvariables)
 			getstring(&c, &v, &variables[i].color, ':');
-			continue;
-		    }
-		    else
-			stderror(ERR_BADCOLORVAR, v[0], v[1]);
+		    continue;
 		}
 		break;
 	    }
@@ -447,12 +445,13 @@ print_color(const Char *fname, size_t le
 		break;
 	    }
 	if (i == nvariables) {
-	    for (i = 0; i < nextensions; i++)
-		if (len >= extensions[i].extension.len
-		    && strncmp(last - extensions[i].extension.len,
-			       extensions[i].extension.s,
-			       extensions[i].extension.len) == 0) {
-		  colorp = &extensions[i].color;
+	    int j;
+	    for (j = 0; j < nextensions; j++)
+		if (len >= extensions[j].extension.len
+		    && strncmp(last - extensions[j].extension.len,
+			       extensions[j].extension.s,
+			       extensions[j].extension.len) == 0) {
+		  colorp = &extensions[j].color;
 		break;
 	    }
 	}