From: Nick Bowler Date: Wed, 10 Feb 2010 04:29:40 +0000 (-0500) Subject: lbximg: Use the new lbximg_fopen interface. X-Git-Url: https://git.draconx.ca/gitweb/liblbx.git/commitdiff_plain/fe4729faa4ecf8f0d0800fd8d578ed9c81eda350 lbximg: Use the new lbximg_fopen interface. --- diff --git a/src/lbximg.c b/src/lbximg.c index 1173538..c4075b0 100644 --- a/src/lbximg.c +++ b/src/lbximg.c @@ -370,9 +370,9 @@ err: int main(int argc, char **argv) { int mode = MODE_NONE, opt, rc = EXIT_FAILURE; - struct lbx_pipe_state state = { .f = stdin }; + struct lbx_pipe_state stdin_handle = { .f = stdin }; FILE *palf = NULL, *overf = NULL; - const char *name = "stdin"; + const char *file = NULL; LBX_IMG *img; static const char *sopts = "idvf:p:O:V"; @@ -406,13 +406,7 @@ int main(int argc, char **argv) verbose = 1; break; case 'f': - name = strrchr(optarg, '/'); - name = name ? name+1 : optarg; - - if (!freopen(optarg, "rb", state.f)) { - errmsg("failed to open %s: %m\n", optarg); - return EXIT_FAILURE; - } + file = optarg; break; case 'p': palf = fopen(optarg, "rb"); @@ -449,10 +443,10 @@ int main(int argc, char **argv) return EXIT_FAILURE; } - if (fseek(state.f, 0, SEEK_CUR) == 0) - img = lbximg_open(state.f, &lbx_default_fops, NULL); + if (file) + img = lbximg_fopen(file); else - img = lbximg_open(&state, &lbx_pipe_fops, NULL); + img = lbximg_open(&stdin_handle, &lbx_pipe_fops, NULL); if (!img) { errmsg("failed to open image: %s.\n", lbx_strerror()); @@ -461,10 +455,13 @@ int main(int argc, char **argv) if (verbose || mode == MODE_IDENT) { struct lbx_imginfo info; - lbximg_getinfo(img, &info); + if (!file) + file = "stdin"; + + lbximg_getinfo(img, &info); printf("%s is %ux%u LBX image, %u frame(s)%s%s\n", - name, info.width, info.height, info.nframes, + file, info.width, info.height, info.nframes, info.palettesz ? ", embedded palette" : "", info.chunk ? ", chunked" : "", info.looping ? ", loops" : "");