version 1.24, 2015/12/19 10:21:01 |
version 1.25, 2017/12/21 10:05:59 |
|
|
|
|
#define MAXLINELEN (8 * 1024) |
#define MAXLINELEN (8 * 1024) |
|
|
int cflag, dflag, uflag; |
int cflag, dflag, iflag, uflag; |
int numchars, numfields, repeats; |
int numchars, numfields, repeats; |
|
|
FILE *file(char *, char *); |
FILE *file(char *, char *); |
|
|
err(1, "pledge"); |
err(1, "pledge"); |
|
|
obsolete(argv); |
obsolete(argv); |
while ((ch = getopt(argc, argv, "cdf:s:u")) != -1) { |
while ((ch = getopt(argc, argv, "cdf:is:u")) != -1) { |
const char *errstr; |
const char *errstr; |
|
|
switch (ch) { |
switch (ch) { |
|
|
errx(1, "field skip value is %s: %s", |
errx(1, "field skip value is %s: %s", |
errstr, optarg); |
errstr, optarg); |
break; |
break; |
|
case 'i': |
|
iflag = 1; |
|
break; |
case 's': |
case 's': |
numchars = (int)strtonum(optarg, 0, INT_MAX, |
numchars = (int)strtonum(optarg, 0, INT_MAX, |
&errstr); |
&errstr); |
|
|
} |
} |
|
|
/* If different, print; set previous to new value. */ |
/* If different, print; set previous to new value. */ |
if (strcmp(t1, t2)) { |
if ((!iflag && strcmp(t1, t2)) || strcasecmp(t1, t2)) { |
show(ofp, prevline); |
show(ofp, prevline); |
t1 = prevline; |
t1 = prevline; |
prevline = thisline; |
prevline = thisline; |
|
|
extern char *__progname; |
extern char *__progname; |
|
|
(void)fprintf(stderr, |
(void)fprintf(stderr, |
"usage: %s [-c] [-d | -u] [-f fields] [-s chars] [input_file [output_file]]\n", |
"usage: %s [-ci] [-d | -u] [-f fields] [-s chars] [input_file [output_file]]\n", |
__progname); |
__progname); |
exit(1); |
exit(1); |
} |
} |