Commit Diff


commit - 33d904b669e543d144ac195a28f32de6b6785117
commit + 27766d481f3a15b6ad16822034ca247c99c3e456
blob - efb9ffd1f8d90a860135b09baaed0d1e44a5f58d
blob + 3c547ec903b20ca8a885da9f9414990f23cef090
--- ChangeLog
+++ ChangeLog
@@ -1,5 +1,7 @@
 2021-06-22  Omar Polo  <op@omarpolo.com>
 
+	* 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;
 }