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;
}
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;
}
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;
}
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;
}
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;
}
/* For sanity. */
if (!palf && !info->palettesz && !override) {
- errmsg("no palette available.\n", 0);
+ tool_err(-1, "no palette available.");
return -1;
}
/* 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;
}
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;
}
}
if (!extracted) {
- errmsg("no frames extracted.\n", 0);
+ tool_err(-1, "no frames extracted.");
goto err;
}
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;
}
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;
}
if (mode == MODE_NONE) {
- errmsg("you must specify a mode.\n", 0);
+ tool_err(-1, "you must specify a mode.");
return EXIT_FAILURE;
}
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;
}