version 1.15, 2006/04/07 05:10:02 |
version 1.16, 2007/11/09 20:04:03 |
|
|
argc -= optind; |
argc -= optind; |
argv += optind; |
argv += optind; |
|
|
/* If no flags are set, default is -d -u. */ |
/* If neither -d nor -u are set, default is -d -u. */ |
if (cflag) { |
if (!dflag && !uflag) |
if (dflag || uflag) |
|
usage(); |
|
} else if (!dflag && !uflag) |
|
dflag = uflag = 1; |
dflag = uflag = 1; |
|
|
switch(argc) { |
switch(argc) { |
|
|
void |
void |
show(FILE *ofp, char *str) |
show(FILE *ofp, char *str) |
{ |
{ |
|
if ((dflag && repeats) || (uflag && !repeats)) { |
if (cflag && *str) |
if (cflag) |
(void)fprintf(ofp, "%4d %s", repeats + 1, str); |
(void)fprintf(ofp, "%4d %s", repeats + 1, str); |
if ((dflag && repeats) || (uflag && !repeats)) |
else |
(void)fprintf(ofp, "%s", str); |
(void)fprintf(ofp, "%s", str); |
|
} |
} |
} |
|
|
char * |
char * |
skip(char *str) |
skip(char *str) |
{ |
{ |
int infield, nchars, nfields; |
int nchars, nfields; |
|
|
for (nfields = numfields, infield = 0; nfields && *str; ++str) |
for (nfields = numfields; nfields && *str; nfields--) { |
if (isspace(*str)) { |
while (isblank(*str)) |
if (infield) { |
str++; |
infield = 0; |
while (*str && !isblank(*str)) |
--nfields; |
str++; |
} |
} |
} else if (!infield) |
for (nchars = numchars; nchars-- && *str && *str != '\n'; ++str) |
infield = 1; |
|
for (nchars = numchars; nchars-- && *str; ++str) |
|
; |
; |
return (str); |
return (str); |
} |
} |
|
|
usage(void) |
usage(void) |
{ |
{ |
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 [-c | -d | -u] [-f fields] [-s chars] [input_file [output_file]]\n", |
__progname); |
__progname); |