summaryrefslogtreecommitdiff
path: root/ff2jpg.c
diff options
context:
space:
mode:
Diffstat (limited to 'ff2jpg.c')
-rw-r--r--ff2jpg.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/ff2jpg.c b/ff2jpg.c
index 3da35e2..6f88a23 100644
--- a/ff2jpg.c
+++ b/ff2jpg.c
@@ -80,8 +80,7 @@ main(int argc, char *argv[])
/* header */
if (fread(hdr, sizeof(*hdr), 4, stdin) != 4) {
- fprintf(stderr, "%s: fread: %s\n", argv0, strerror(errno));
- return 1;
+ goto readerr;
}
if (memcmp("farbfeld", hdr, sizeof("farbfeld") - 1)) {
fprintf(stderr, "%s: invalid magic value\n", argv0);
@@ -124,8 +123,7 @@ main(int argc, char *argv[])
/* write rows */
for (i = 0; i < height; ++i) {
if (fread(row, sizeof(uint16_t), rowlen, stdin) != rowlen) {
- fprintf(stderr, "%s: fread: %s\n", argv0, strerror(errno));
- return 1;
+ goto readerr;
}
for (j = 0, k = 0; j < rowlen; j += 4, k += 3) {
a = ntohs(row[j + 3]);
@@ -142,4 +140,12 @@ main(int argc, char *argv[])
jpeg_destroy_compress(&cinfo);
return 0;
+readerr:
+ if (ferror(stdin)) {
+ fprintf(stderr, "%s: fread: %s\n", argv0, strerror(errno));
+ } else {
+ fprintf(stderr, "%s: unexpected end of file\n", argv0);
+ }
+
+ return 1;
}