]> git.draconx.ca Git - liblbx.git/blobdiff - src/lbximg.c
tools: Add some smarter error printing routines.
[liblbx.git] / src / lbximg.c
index 581a33ac0b3153353caaff20d183ff2cc623e3e3..ff38c89b71f998f0dff387f5f2404e4ffb0783cf 100644 (file)
@@ -64,12 +64,12 @@ int parserange(unsigned frames, char *str, unsigned char *bits)
 
        start = strtoul(str, &endptr, 0);
        if (start >= frames) {
-               errmsg("frame %lu out of range.\n", start);
+               tool_err(-1, "frame %lu out of range.", start);
                return -1;
        }
 
        if (endptr == str) {
-               errmsg("invalid frame range: %s.\n", str);
+               tool_err(-1, "invalid frame range: %s.", str);
                return -1;
        }
 
@@ -80,7 +80,7 @@ int parserange(unsigned frames, char *str, unsigned char *bits)
        case '-':
                end = strtoul(endptr+1, &endptr, 0);
                if (end >= frames) {
-                       errmsg("frame %lu out of range.\n", end);
+                       tool_err(-1, "frame %lu out of range.", end);
                        return -1;
                }
 
@@ -88,12 +88,12 @@ int parserange(unsigned frames, char *str, unsigned char *bits)
                        end = frames - 1;
                break;
        default:
-               errmsg("invalid frame range: %s.\n", str);
+               tool_err(-1, "invalid frame range: %s.", str);
                return -1;
        }
 
        if (end < start) {
-               errmsg("invalid frame range: %s.\n", str);
+               tool_err(-1, "invalid frame range: %s.", str);
                return -1;
        }
 
@@ -134,26 +134,25 @@ int outpng(unsigned int frameno,
 
        row = malloc(4 * width);
        if (!row) {
-               errmsg("failed to allocate row buffer: %s\n", strerror(errno));
+               tool_err(0, "failed to allocate row buffer");
                return -1;
        }
 
        of = fopen(name, "wb");
        if (!of) {
-               errmsg("failed to open %s: %s.\n", name, strerror(errno));
-               free(row);
+               tool_err(0, "failed to open %s", name);
                return -1;
        }
 
        png = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
        if (!png) {
-               errmsg("failed to init libpng.\n", 0);
+               tool_err(-1, "failed to init libpng.");
                goto err;
        }
 
        info = png_create_info_struct(png);
        if (!info) {
-               errmsg("failed to init libpng.\n", 0);
+               tool_err(-1, "failed to init libpng.");
                png_destroy_write_struct(&png, NULL);
                goto err;
        }
@@ -234,19 +233,19 @@ static int loadoverride(FILE *f, struct lbx_colour palette[static 256])
        struct lbx_imginfo info;
 
        if (!overimg) {
-               errmsg("failed to open override image: %s\n", lbx_errmsg());
+               tool_err(-1, "failed to open override image: %s", lbx_errmsg());
                return -1;
        }
        lbx_img_getinfo(overimg, &info);
 
        if (!info.palettesz) {
-               errmsg("override image has no palette.\n", 0);
+               tool_err(-1, "override image has no palette.");
                lbx_img_close(overimg);
                return -1;
        }
 
        if (lbx_img_getpalette(overimg, palette) == -1) {
-               errmsg("error reading override palette: %s\n", lbx_errmsg());
+               tool_err(-1, "error reading override palette: %s", lbx_errmsg());
                lbx_img_close(overimg);
                return -1;
        }
@@ -272,7 +271,7 @@ static int loadpalette(struct lbx_image *img, struct lbx_imginfo *info,
 
        /* For sanity. */
        if (!palf && !info->palettesz && !override) {
-               errmsg("no palette available.\n", 0);
+               tool_err(-1, "no palette available.");
                return -1;
        }
 
@@ -283,13 +282,13 @@ static int loadpalette(struct lbx_image *img, struct lbx_imginfo *info,
 
        /* Read the external palette, if any. */
        if (palf && lbx_img_loadpalette(palf, &lbx_default_fops, palette) != 0) {
-               errmsg("error reading external palette: %s\n", lbx_errmsg());
+               tool_err(-1, "error reading external palette: %s", lbx_errmsg());
                return -1;
        }
 
        /* Read the embedded palette, if any. */
        if (info->palettesz && lbx_img_getpalette(img, palette) == -1) {
-               errmsg("error reading embedded palette: %s\n", lbx_errmsg());
+               tool_err(-1, "error reading embedded palette: %s", lbx_errmsg());
                return -1;
        }
 
@@ -340,7 +339,7 @@ int decode(struct lbx_image *img, FILE *palf, FILE *override, char **argv)
 
                data = lbx_img_getframe(img, i);
                if (!data) {
-                       errmsg("error in frame %u: %s\n", i, lbx_errmsg());
+                       tool_err(-1, "error in frame %u: %s", i, lbx_errmsg());
                        continue;
                }
 
@@ -352,7 +351,7 @@ int decode(struct lbx_image *img, FILE *palf, FILE *override, char **argv)
        }
 
        if (!extracted) {
-               errmsg("no frames extracted.\n", 0);
+               tool_err(-1, "no frames extracted.");
                goto err;
        }
 
@@ -410,7 +409,7 @@ int main(int argc, char **argv)
                case 'p':
                        palf = fopen(optarg, "rb");
                        if (!palf) {
-                               errmsg("failed to open %s: %m\n", optarg);
+                               tool_err(0, "failed to open %s", optarg);
                                return EXIT_FAILURE;
                        }
 
@@ -418,7 +417,7 @@ int main(int argc, char **argv)
                case 'O':
                        overf = fopen(optarg, "rb");
                        if (!overf) {
-                               errmsg("failed to open %s: %m\n", optarg);
+                               tool_err(0, "failed to open %s", optarg);
                                return EXIT_FAILURE;
                        }
                        break;
@@ -438,7 +437,7 @@ int main(int argc, char **argv)
        }
 
        if (mode == MODE_NONE) {
-               errmsg("you must specify a mode.\n", 0);
+               tool_err(-1, "you must specify a mode.");
                return EXIT_FAILURE;
        }
 
@@ -448,7 +447,7 @@ int main(int argc, char **argv)
                img = lbx_img_open(&stdin_handle, &lbx_pipe_fops, NULL);
 
        if (!img) {
-               errmsg("failed to open image: %s.\n", lbx_errmsg());
+               tool_err(-1, "failed to open image: %s.", lbx_errmsg());
                return EXIT_FAILURE;
        }