[libpng] Committed new contrib/libtests/makepng.c that was overlooked
in a recent patch.
diff --git a/contrib/libtests/makepng.c b/contrib/libtests/makepng.c
index e4b01f0..1c96ab5 100644
--- a/contrib/libtests/makepng.c
+++ b/contrib/libtests/makepng.c
@@ -68,6 +68,7 @@
*/
#define _ISOC99_SOURCE /* for strtoull */
+#include <stddef.h> /* for offsetof */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
@@ -1071,15 +1072,24 @@
const char *arg = *++argv;
if (strcmp(arg, "--sRGB") == 0)
+ {
gamma = PNG_DEFAULT_sRGB;
+ continue;
+ }
- else if (strcmp(arg, "--linear") == 0)
+ if (strcmp(arg, "--linear") == 0)
+ {
gamma = PNG_FP_1;
+ continue;
+ }
- else if (strcmp(arg, "--1.8") == 0)
+ if (strcmp(arg, "--1.8") == 0)
+ {
gamma = PNG_GAMMA_MAC_18;
+ continue;
+ }
- else if (argc >= 3 && strcmp(arg, "--insert") == 0)
+ if (argc >= 3 && strcmp(arg, "--insert") == 0)
{
png_const_charp what = *++argv;
png_charp param = *++argv;
@@ -1094,36 +1104,57 @@
*insert_ptr = new_insert;
insert_ptr = &new_insert->next;
}
+
+ continue;
}
- else if (arg[0] == '-')
+ if (arg[0] == '-')
{
fprintf(stderr, "makepng: %s: invalid option\n", arg);
exit(1);
}
- else if (strcmp(arg, "palette") == 0)
- color_type = PNG_COLOR_TYPE_PALETTE;
-
- else if (strncmp(arg, "gray", 4) == 0)
+ if (strcmp(arg, "palette") == 0)
{
- color_type = PNG_COLOR_TYPE_GRAY;
- if (strcmp(arg+4, "a") == 0 ||
+ color_type = PNG_COLOR_TYPE_PALETTE;
+ continue;
+ }
+
+ if (strncmp(arg, "gray", 4) == 0)
+ {
+ if (arg[5] == 0)
+ {
+ color_type = PNG_COLOR_TYPE_GRAY;
+ continue;
+ }
+
+ else if (strcmp(arg+4, "a") == 0 ||
strcmp(arg+4, "alpha") == 0 ||
strcmp(arg+4, "-alpha") == 0)
+ {
color_type = PNG_COLOR_TYPE_GRAY_ALPHA;
+ continue;
+ }
}
- else if (strncmp(arg, "rgb", 3) == 0)
+ if (strncmp(arg, "rgb", 3) == 0)
{
- color_type = PNG_COLOR_TYPE_RGB;
- if (strcmp(arg+3, "a") == 0 ||
+ if (arg[4] == 0)
+ {
+ color_type = PNG_COLOR_TYPE_RGB;
+ continue;
+ }
+
+ else if (strcmp(arg+3, "a") == 0 ||
strcmp(arg+3, "alpha") == 0 ||
strcmp(arg+3, "-alpha") == 0)
+ {
color_type = PNG_COLOR_TYPE_RGB_ALPHA;
+ continue;
+ }
}
- else if (color_type == 8)
+ if (color_type == 8)
{
color_type = atoi(arg);
if (color_type < 0 || color_type > 6 || color_type == 1 ||
@@ -1132,9 +1163,11 @@
fprintf(stderr, "makepng: %s: not a valid color type\n", arg);
exit(1);
}
+
+ continue;
}
- else if (bit_depth == 32)
+ if (bit_depth == 32)
{
bit_depth = atoi(arg);
if (bit_depth <= 0 || bit_depth > 16 ||
@@ -1143,9 +1176,11 @@
fprintf(stderr, "makepng: %s: not a valid bit depth\n", arg);
exit(1);
}
+
+ continue;
}
- else if (argc == 1) /* It's the file name */
+ if (argc == 1) /* It's the file name */
{
fp = fopen(arg, "wb");
if (fp == NULL)
@@ -1153,13 +1188,12 @@
fprintf(stderr, "%s: %s: could not open\n", arg, strerror(errno));
exit(1);
}
+
+ continue;
}
- else
- {
- fprintf(stderr, "makepng: %s: unknown argument\n", arg);
- exit(1);
- }
+ fprintf(stderr, "makepng: %s: unknown argument\n", arg);
+ exit(1);
} /* argument while loop */
if (color_type == 8 || bit_depth == 32)