|
|
1.1 ! root 1: static char *sccsid = "@(#)num.c 4.1 (Berkeley) 10/1/80"; ! 2: #include "stdio.h" ! 3: #define formfeed 0xc ! 4: ! 5: /* ! 6: * number - a cat like program which prints a file with line ! 7: * numbers. Printing of numbers is suppressed on blank ! 8: * lines. ! 9: * ! 10: * Original Version by William Joy, June 1977 ! 11: * Updated October 1979 by M. Kirk McKusick ! 12: */ ! 13: main(ac, av) ! 14: int ac; ! 15: char *av[]; ! 16: { ! 17: register int argc = ac; ! 18: register char **argv = av; ! 19: register int lino; ! 20: register char *lineptr; ! 21: register FILE *STDOUT = stdout; ! 22: register FILE *STDIN = stdin; ! 23: char line[512]; ! 24: extern char _sibuf[], _sobuf[]; ! 25: ! 26: argv++; ! 27: argc--; ! 28: lino = 1; ! 29: setbuf(STDIN,_sibuf); ! 30: setbuf(STDOUT,_sobuf); ! 31: do ! 32: { ! 33: if (argc) ! 34: if (freopen(*argv++, "r", STDIN) == NULL) ! 35: { ! 36: perror(*--argv); ! 37: exit(1); ! 38: } ! 39: for(;;) ! 40: { ! 41: lineptr = line; ! 42: *lineptr = 0; ! 43: fscanf(STDIN,"%[^\n]",lineptr); ! 44: if (feof(STDIN)) ! 45: break; ! 46: if (*lineptr == formfeed) ! 47: putc(*lineptr++,STDOUT); ! 48: if (!*lineptr) ! 49: putc('\n',STDOUT); ! 50: else ! 51: fprintf(STDOUT,"%6d %s\n",lino,lineptr); ! 52: lino++; ! 53: getc(STDIN); ! 54: } ! 55: } ! 56: while (--argc > 0); ! 57: exit(); ! 58: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.