--- ray/src/px/pflip.c 2006/08/08 18:04:41 2.9 +++ ray/src/px/pflip.c 2019/07/19 17:37:56 2.12 @@ -1,14 +1,11 @@ #ifndef lint -static const char RCSid[] = "$Id: pflip.c,v 2.9 2006/08/08 18:04:41 greg Exp $"; +static const char RCSid[] = "$Id: pflip.c,v 2.12 2019/07/19 17:37:56 greg Exp $"; #endif /* * flip picture file horizontally and/or vertically */ -#include -#include -#include - +#include "rtio.h" #include "platform.h" #include "color.h" #include "resolu.h" @@ -55,7 +52,7 @@ main( char *argv[] ) { - static char picfmt[LPICFMT+1] = PICFMT; + static char picfmt[MAXFMTLEN] = PICFMT; int i, rval; SET_DEFAULT_BINARY(); SET_FILE_BINARY(stdout); @@ -70,12 +67,16 @@ main( correctorder++; else break; + if (i < argc-2) + goto userr; + if (!fhoriz && !fvert) + fprintf(stderr, "%s: warning - no operation\n", argv[0]); if (i >= argc || argv[i][0] == '-') { - fprintf(stderr, "Usage: %s [-h][-v][-c] infile [outfile]\n", - progname); - exit(1); - } - if ((fin = fopen(argv[i], "r")) == NULL) { + if (fvert) + goto userr; + SET_FILE_BINARY(stdin); + fin = stdin; + } else if ((fin = fopen(argv[i], "r")) == NULL) { fprintf(stderr, "%s: cannot open\n", argv[i]); exit(1); } @@ -106,6 +107,10 @@ main( scanfile(); flip(); /* flip the image */ exit(0); +userr: + fprintf(stderr, "Usage: %s [-h][-v][-c] infile [outfile]\n", + progname); + exit(1); }