--- tw.color.c +++ tw.color.c 2010-12-10 16:07:59.000000000 +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 */ }; enum FileType { @@ -177,7 +178,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; @@ -240,13 +241,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; } @@ -301,12 +303,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) { - color = &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) { + color = &extensions[j].color; break; } }