commit 27766d481f3a15b6ad16822034ca247c99c3e456 from: Omar Polo date: Tue Jun 22 17:43:26 2021 UTC support 256 colors! Allow `colorN' and `colourN' (where 0 <= N < 256) as color specifier. commit - 33d904b669e543d144ac195a28f32de6b6785117 commit + 27766d481f3a15b6ad16822034ca247c99c3e456 blob - efb9ffd1f8d90a860135b09baaed0d1e44a5f58d blob + 3c547ec903b20ca8a885da9f9414990f23cef090 --- ChangeLog +++ ChangeLog @@ -1,5 +1,7 @@ 2021-06-22 Omar Polo + * parse.y (colorname): support 256 colors + * defaults.c (config_setcolor): allow changing the colors/attributes of the tabline * parse.y (attrname): allow changing the attributes blob - 8f755a300b948aa4e33ef0cdf037bde6696a22a6 blob + 7765898b8e268892fecf2b6068d06d3990da70ef --- parse.y +++ parse.y @@ -334,12 +334,30 @@ colorname(const char *name) { "white", COLOR_WHITE }, { NULL, 0 }, }; + const char *errstr; + int n; + + if (has_prefix(name, "colo")) { + /* people are strange */ + if (has_prefix(name, "color")) + name += 5; + else if (has_prefix(name, "colour")) + name += 6; + else + goto err; + n = strtonum(name, 0, 256, &errstr); + if (errstr != NULL) + yyerror("color number is %s: %s", errstr, name); + return n; + } + for (i = colors; i->name != NULL; ++i) { if (!strcmp(i->name, name)) return i->val; } +err: yyerror("unknown color name \"%s\"", name); return -1; }