summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--bin/pngo.c26
1 files changed, 6 insertions, 20 deletions
diff --git a/bin/pngo.c b/bin/pngo.c
index 34908f15..7ca2d949 100644
--- a/bin/pngo.c
+++ b/bin/pngo.c
@@ -70,10 +70,6 @@ struct PACKED Chunk {
     char type[4];
 };
 
-static bool ancillary(struct Chunk chunk) {
-    return chunk.type[0] & 0x20;
-}
-
 static const char *typeStr(struct Chunk chunk) {
     static char buf[5];
     memcpy(buf, chunk.type, 4);
@@ -113,6 +109,9 @@ static void writeCrc(void) {
 }
 
 static void skipChunk(struct Chunk chunk) {
+    if (!(chunk.type[0] & 0x20)) {
+        errx(EX_CONFIG, "%s: unsupported critical chunk %s", path, typeStr(chunk));
+    }
     uint8_t discard[chunk.size];
     readExpect(discard, sizeof(discard), "chunk data");
     readCrc();
@@ -263,16 +262,8 @@ static void readPalette(void) {
     struct Chunk chunk;
     for (;;) {
         chunk = readChunk();
-        if (0 == memcmp(chunk.type, "PLTE", 4)) {
-            break;
-        } else if (ancillary(chunk)) {
-            skipChunk(chunk);
-        } else {
-            errx(
-                EX_DATAERR, "%s: expected PLTE chunk, found %s",
-                path, typeStr(chunk)
-            );
-        }
+        if (0 == memcmp(chunk.type, "PLTE", 4)) break;
+        skipChunk(chunk);
     }
     if (chunk.size % 3) {
         errx(EX_DATAERR, "%s: PLTE size %u not divisible by 3", path, chunk.size);
@@ -322,13 +313,8 @@ static void readData(void) {
 
         } else if (0 == memcmp(chunk.type, "IEND", 4)) {
             errx(EX_DATAERR, "%s: missing IDAT chunk", path);
-        } else if (ancillary(chunk)) {
-            skipChunk(chunk);
         } else {
-            errx(
-                EX_CONFIG, "%s: unsupported critical chunk %s",
-                path, typeStr(chunk)
-            );
+            skipChunk(chunk);
         }
     }
 
-01-15Use flock(2) when loading and saving historyJune McEnroe 2019-01-15Add sans8x16.psfJune McEnroe The symbols are still really bad... 2019-01-14Add guides to psfedJune McEnroe 2019-01-14Check for NULL copy or undo buffers in psfedJune McEnroe 2019-01-14Add cash.7 READMEJune McEnroe 2019-01-14Document old=new argument of fc -sJune McEnroe 2019-01-14Allow replacing empty string with fc old=newJune McEnroe 2019-01-13Enable warnings in libeditJune McEnroe 2019-01-13Show full path in RPS1June McEnroe 2019-01-13Shorten $HOME to ~ in prompt expansionJune McEnroe 2019-01-13Document PSlitJune McEnroe 2019-01-13Document PS0June McEnroe 2019-01-13Set PS0 in cashJune McEnroe 2019-01-13Add PS0June McEnroe 2019-01-13Change default ENV from cashrc to env.shJune McEnroe 2019-01-13Use colours in cash promptsJune McEnroe 2019-01-12Set PSlit like NetBSD shJune McEnroe 2019-01-12Install gnupg2 from pkgsrc and symlink gpgJune McEnroe 2019-01-12Reference cash builtin man pages in cash.1 SEE ALSOJune McEnroe 2019-01-12Restore cash builtin man page datesJune McEnroe 2019-01-12Use local libeditJune McEnroe 2019-01-12Replace libedit MakefileJune McEnroe 2019-01-11Import /usr/src/lib/libedit from NetBSD 8.0June McEnroe 2019-01-11Add PSlit for prompt escapesJune McEnroe 2019-01-11Don't make depend automaticallyJune McEnroe