Annotation of 43BSD/old/num.c, revision 1.1

1.1     ! root        1: static char *sccsid = "@(#)num.c       4.2 (Berkeley) 10/13/82";
        !             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:        }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.