#include #include void ll(FILE *f, char *name); int rdline(FILE *f); int main(argc, argv) int argc; char **argv; { FILE *f; char *pname; pname = *argv; if (argc < 2) { ll(stdin, ""); exit(0); } while (--argc) { if (**++argv == '-') f = stdin; else if ((f = fopen(*argv, "r")) == NULL) { fprintf(stderr, "%s: cannot open %s\n", pname, *argv); continue; } ll(f, *argv); fclose(f); } exit(0); } void ll(f, name) FILE *f; char *name; { register int min, max, len; if ((min = max = rdline(f)) == EOF) { printf(" (empty)\t%s\n", name); return; } while ((len = rdline(f)) != EOF) { if (len < min) min = len; if (len > max) max = len; } printf("%6d\t%6d\t%s\n", min, max, name); return; } int rdline(f) FILE *f; { register int len; register char c; int dummy; len = 0; while ((dummy = getc(f)) != EOF) { if ((c = dummy) == '\n') return len; if (c == '\t') len = (len|07) + 1; else if (c == '\b') len--; else len++; } return EOF; }