shithub: rgbds

Download patch

ref: 913c3dd7117bfe7a2d1cb57b47b34cfc8dcbb98b
parent: 32242e0ff274c2f9645623bdd8fe66af5baea1db
author: ISSOtm <eldredhabert0@gmail.com>
date: Tue Apr 12 19:47:32 EDT 2022

Accept both colons and semicolons in inline pal spec

--- a/man/rgbgfx.1
+++ b/man/rgbgfx.1
@@ -122,12 +122,12 @@
 .Ql # ,
 it is treated as an inline palette specification.
 It should contain a comma-separated list of hexadecimal colors, each beginning with a hash.
-Colors in are accepted in the following formats:
-.Ql #rgb ,
-.Ql #rrggbb ,
-and
-.Ql #rrggbbaa .
-Palettes must be separated by a semicolon (they may require quoting to avoid special handling by the shell), and spaces are allowed around semicolons and commas; trailing commas and semicolons are allowed.
+Colors in are accepted either as
+.Ql #rgb
+or
+.Ql #rrggbb
+format.
+Palettes must be separated by a colon or semicolon (the latter may require quoting to avoid special handling by the shell), and spaces are allowed around colons, semicolons and commas; trailing commas and semicolons are allowed.
 See
 .Sx EXAMPLES
 for an example of an inline palette specification.
--- a/src/gfx/pal_spec.cpp
+++ b/src/gfx/pal_spec.cpp
@@ -128,7 +128,7 @@
 			skipWhitespace(arg, n);
 			if (n == arg.length()) {
 				break;
-			} else if (arg[n] != ';') {
+			} else if (arg[n] != ';' && arg[n] != ':') {
 				if (nbColors == 4) {
 					parseError(n, 1, "Each palette can only contain up to 4 colors");
 					return;
@@ -137,6 +137,7 @@
 			}
 			[[fallthrough]];
 
+		case ':':
 		case ';':
 			++n;
 			skipWhitespace(arg, n);
@@ -265,7 +266,6 @@
 		readLine(file, line);
 		n = 0;
 
-		// TODO: parse R G B
 		uint8_t r = parseDec(line, n);
 		skipWhitespace(line, n);
 		if (n == line.length()) {