version 1.28, 2021/11/01 23:20:35 |
version 1.29, 2021/11/17 23:09:38 |
|
|
char *prevline, *t1, *t2, *thisline; |
char *prevline, *t1, *t2, *thisline; |
FILE *ifp = NULL, *ofp = NULL; |
FILE *ifp = NULL, *ofp = NULL; |
size_t prevsize, thissize, tmpsize; |
size_t prevsize, thissize, tmpsize; |
|
ssize_t len; |
int ch; |
int ch; |
|
|
setlocale(LC_CTYPE, ""); |
setlocale(LC_CTYPE, ""); |
|
|
|
|
prevsize = 0; |
prevsize = 0; |
prevline = NULL; |
prevline = NULL; |
if (getline(&prevline, &prevsize, ifp) == -1) { |
if ((len = getline(&prevline, &prevsize, ifp)) == -1) { |
free(prevline); |
free(prevline); |
if (ferror(ifp)) |
if (ferror(ifp)) |
err(1, "getline"); |
err(1, "getline"); |
exit(0); |
exit(0); |
} |
} |
|
if (prevline[len - 1] == '\n') |
|
prevline[len - 1] = '\0'; |
|
|
thissize = 0; |
thissize = 0; |
thisline = NULL; |
thisline = NULL; |
while (getline(&thisline, &thissize, ifp) != -1) { |
while ((len = getline(&thisline, &thissize, ifp)) != -1) { |
|
if (thisline[len - 1] == '\n') |
|
thisline[len - 1] = '\0'; |
|
|
/* If requested get the chosen fields + character offsets. */ |
/* If requested get the chosen fields + character offsets. */ |
if (numfields || numchars) { |
if (numfields || numchars) { |
t1 = skip(thisline); |
t1 = skip(thisline); |
|
|
{ |
{ |
if ((dflag && repeats) || (uflag && !repeats)) { |
if ((dflag && repeats) || (uflag && !repeats)) { |
if (cflag) |
if (cflag) |
(void)fprintf(ofp, "%4d %s", repeats + 1, str); |
fprintf(ofp, "%4d %s\n", repeats + 1, str); |
else |
else |
(void)fprintf(ofp, "%s", str); |
fprintf(ofp, "%s\n", str); |
} |
} |
} |
} |
|
|