X-Git-Url: http://git.draconx.ca/gitweb/liblbx.git/blobdiff_plain/2f0e47fcf78aeae3bcd0e8126f2f33b98bd285e8..abebb179629944e7c956857be2f6d6705fb33309:/src/lbximg.c diff --git a/src/lbximg.c b/src/lbximg.c index c88fc4e..0fd3693 100644 --- a/src/lbximg.c +++ b/src/lbximg.c @@ -263,6 +263,7 @@ decode(struct lbx_image *img, FILE *palf, FILE *override, int fmt, char **argv) unsigned char *framebits; struct lbx_colour palette[256]; struct lbx_imginfo info; + int ret = EXIT_SUCCESS; int extracted = 0; unsigned int i; @@ -287,6 +288,7 @@ decode(struct lbx_image *img, FILE *palf, FILE *override, int fmt, char **argv) if (usepalette) { if (loadpalette(img, &info, palf, override, palette) == -1) { + ret = EXIT_FAILURE; goto err; } } @@ -302,6 +304,7 @@ decode(struct lbx_image *img, FILE *palf, FILE *override, int fmt, char **argv) data = lbx_img_getframe(img, i); if (!data) { tool_err(-1, "error in frame %u: %s", i, lbx_errmsg()); + ret = EXIT_FAILURE; continue; } @@ -316,14 +319,11 @@ decode(struct lbx_image *img, FILE *palf, FILE *override, int fmt, char **argv) if (!extracted) { tool_err(-1, "no frames extracted."); - goto err; + ret = EXIT_FAILURE; } - - free(framebits); - return EXIT_SUCCESS; err: free(framebits); - return EXIT_FAILURE; + return ret; } int main(int argc, char **argv)