Fix RGBLINK assertion failure when -s and -c invalidly match (#2109)

This commit is contained in:
Rangi
2026-09-18 01:34:14 +02:00
committed by GitHub
parent f234796428
commit 8bf5957c83
4 changed files with 25 additions and 18 deletions
+21 -18
View File
@@ -671,24 +671,27 @@ int main(int argc, char *argv[]) {
autoOutPath(localOptions.autoPalettes, options.palettes, ".pal");
autoOutPath(localOptions.autoPalmap, options.palmap, ".palmap");
// Execute deferred pal spec parsing, now that all other params are known
switch (options.palSpecType) {
case Options::NO_SPEC:
case Options::EMBEDDED:
assume(!localOptions.palSpec);
break;
case Options::INLINE:
assume(localOptions.palSpec);
parseInlinePalSpec(localOptions.palSpec->c_str());
break;
case Options::EXTERNAL:
assume(localOptions.palSpec);
parseExternalPalSpec(localOptions.palSpec->c_str());
break;
case Options::DMG:
assume(localOptions.palSpec);
parseDmgPalSpec(localOptions.palSpec->c_str());
break;
// Execute deferred pal spec parsing, now that all other params are known.
// Do not parse pal specs if `options.nbColorsPerPal` is invalid.
if (options.nbColorsPerPal > 0 && options.nbColorsPerPal <= 4) {
switch (options.palSpecType) {
case Options::NO_SPEC:
case Options::EMBEDDED:
assume(!localOptions.palSpec);
break;
case Options::INLINE:
assume(localOptions.palSpec);
parseInlinePalSpec(localOptions.palSpec->c_str());
break;
case Options::EXTERNAL:
assume(localOptions.palSpec);
parseExternalPalSpec(localOptions.palSpec->c_str());
break;
case Options::DMG:
assume(localOptions.palSpec);
parseDmgPalSpec(localOptions.palSpec->c_str());
break;
}
}
verboseDo(VERB_CONFIG, verboseOutputConfig);
+3
View File
@@ -0,0 +1,3 @@
error: Palette size ('-s') must not exceed 4
error: 2bpp palettes can only contain 4 colors, not 5
Conversion aborted after 2 errors
+1
View File
@@ -0,0 +1 @@
-s 5 -c #111,#222,#333,#444,#555
Binary file not shown.

After

Width:  |  Height:  |  Size: 79 B