static char *sccsid = "@(#)num.c 4.2 (Berkeley) 10/13/82"; #include #define formfeed 0xc /* * number - a cat like program which prints a file with line * numbers. Printing of numbers is suppressed on blank * lines. * * Original Version by William Joy, June 1977 * Updated October 1979 by M. Kirk McKusick */ main(ac, av) int ac; char *av[]; { register int argc = ac; register char **argv = av; register int lino; register char *lineptr; register FILE *STDOUT = stdout; register FILE *STDIN = stdin; char line[512]; extern char _sibuf[], _sobuf[]; argv++; argc--; lino = 1; setbuf(STDIN,_sibuf); setbuf(STDOUT,_sobuf); do { if (argc) if (freopen(*argv++, "r", STDIN) == NULL) { perror(*--argv); exit(1); } for(;;) { lineptr = line; *lineptr = 0; fscanf(STDIN,"%[^\n]",lineptr); if (feof(STDIN)) break; if (*lineptr == formfeed) putc(*lineptr++,STDOUT); if (!*lineptr) putc('\n',STDOUT); else fprintf(STDOUT,"%6d %s\n",lino,lineptr); lino++; getc(STDIN); } } while (--argc > 0); exit(); }