From 46c8624972b98a50f9aabed681f56d50739d98d0 Mon Sep 17 00:00:00 2001 From: Thomas Bernard Date: Sat, 7 Mar 2020 16:09:54 +0100 Subject: [PATCH] raw2tiff: print usage to stdout when -h is used see #17 --- tools/raw2tiff.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/tools/raw2tiff.c b/tools/raw2tiff.c index f00142cf..8bbdc045 100644 --- a/tools/raw2tiff.c +++ b/tools/raw2tiff.c @@ -59,6 +59,13 @@ #include "tiffiop.h" #include "tiffio.h" +#ifndef EXIT_SUCCESS +#define EXIT_SUCCESS 0 +#endif +#ifndef EXIT_FAILURE +#define EXIT_FAILURE 1 +#endif + #ifndef HAVE_GETOPT extern int getopt(int argc, char * const argv[], const char *optstring); #endif @@ -81,7 +88,7 @@ static void swapBytesInScanline(void *, uint32, TIFFDataType); static int guessSize(int, TIFFDataType, _TIFF_off_t, uint32, int, uint32 *, uint32 *); static double correlation(void *, void *, uint32, TIFFDataType); -static void usage(void); +static void usage(int); static int processCompressOptions(char*); int @@ -114,7 +121,7 @@ main(int argc, char* argv[]) switch (c) { case 'c': /* compression scheme */ if (!processCompressOptions(optarg)) - usage(); + usage(EXIT_FAILURE); break; case 'r': /* rows/strip */ rowsperstrip = atoi(optarg); @@ -193,24 +200,24 @@ main(int argc, char* argv[]) outfilename = optarg; break; case 'h': - usage(); + usage(EXIT_SUCCESS); default: break; } } if (argc - optind < 2) - usage(); + usage(EXIT_FAILURE); fd = open(argv[optind], O_RDONLY|O_BINARY, 0); if (fd < 0) { fprintf(stderr, "%s: %s: Cannot open input file.\n", argv[0], argv[optind]); - return (-1); + return (EXIT_FAILURE); } if (guessSize(fd, dtype, hdr_size, nbands, swab, &width, &length) < 0) - return 1; + return EXIT_FAILURE; if (outfilename == NULL) outfilename = argv[optind+1]; @@ -218,7 +225,7 @@ main(int argc, char* argv[]) if (out == NULL) { fprintf(stderr, "%s: %s: Cannot open file for output.\n", argv[0], outfilename); - return (-1); + return (EXIT_FAILURE); } TIFFSetField(out, TIFFTAG_IMAGEWIDTH, width); TIFFSetField(out, TIFFTAG_IMAGELENGTH, length); @@ -336,7 +343,7 @@ main(int argc, char* argv[]) if (buf1) _TIFFfree(buf1); TIFFClose(out); - return (0); + return (EXIT_SUCCESS); } static void @@ -598,7 +605,7 @@ processCompressOptions(char* opt) else if (cp[1] == 'r' ) jpegcolormode = JPEGCOLORMODE_RAW; else - usage(); + usage(EXIT_FAILURE); cp = strchr(cp+1,':'); } @@ -617,7 +624,7 @@ processCompressOptions(char* opt) return (1); } -static char* stuff[] = { +static const char* stuff[] = { "raw2tiff --- tool for converting raw byte sequences in TIFF images", "usage: raw2tiff [options] input.raw output.tif", "where options are:", @@ -678,16 +685,15 @@ NULL }; static void -usage(void) +usage(int code) { - char buf[BUFSIZ]; int i; + FILE * out = (code == EXIT_SUCCESS) ? stdout : stderr; - setbuf(stderr, buf); - fprintf(stderr, "%s\n\n", TIFFGetVersion()); + fprintf(out, "%s\n\n", TIFFGetVersion()); for (i = 0; stuff[i] != NULL; i++) - fprintf(stderr, "%s\n", stuff[i]); - exit(-1); + fprintf(out, "%s\n", stuff[i]); + exit(code); } /* vim: set ts=8 sts=8 sw=8 noet: */