summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Bernard <miniupnp@free.fr>2020-03-07 16:09:54 +0100
committerThomas Bernard <miniupnp@free.fr>2020-04-26 22:15:08 +0200
commit46c8624972b98a50f9aabed681f56d50739d98d0 (patch)
tree7c082dfe97d0e7e10b8cc457394a19565e126f11
parentee6cf2f59d430e6d35389c755dee5487284a2d84 (diff)
downloadlibtiff-git-46c8624972b98a50f9aabed681f56d50739d98d0.tar.gz
raw2tiff: print usage to stdout when -h is used
see #17
-rw-r--r--tools/raw2tiff.c38
1 files 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: */