Annotation of 42BSD/usr.bin/refer/annobib.c, revision 1.1

1.1     ! root        1: #ifndef lint
        !             2: static char *sccsid = "@(#)annobib.c   4.1 (Berkeley) 5/6/83";
        !             3: #endif
        !             4: 
        !             5: /*
        !             6:  * This program has been replaced by "refer -B" (bibliography mode),
        !             7:  * but is included here for backward compatiblity.
        !             8:  */
        !             9: 
        !            10: #include <stdio.h>
        !            11: 
        !            12: int noanno = 0;                /* option to suppress .AP from %X field */
        !            13: 
        !            14: main(argc, argv)       /* format (annotated) bibliography for n/troff */
        !            15: int argc;
        !            16: char *argv[];
        !            17: {
        !            18:        FILE *fp, *fopen();
        !            19: 
        !            20:        if (argv[1][0] == '-' && argv[1][1] == 'x')
        !            21:        {
        !            22:                noanno = 1;
        !            23:                argv++; argc--;
        !            24:        }
        !            25:        if (argc == 1)
        !            26:        {
        !            27:                annobib(stdin);
        !            28:                exit(0);
        !            29:        }
        !            30:        while (--argc > 0)
        !            31:        {
        !            32:                if ((fp = fopen(*++argv, "r")) == NULL)
        !            33:                {
        !            34:                        perror(*argv);
        !            35:                        exit(1);
        !            36:                }
        !            37:                annobib(fp);
        !            38:                fclose(fp);
        !            39:        }
        !            40:        exit(0);
        !            41: }
        !            42: 
        !            43: annobib(fp)            /* prepare bibliography for refer bare mode */
        !            44: FILE *fp;
        !            45: {
        !            46:        char line[BUFSIZ];
        !            47:        int begun, ended;
        !            48: 
        !            49:        begun = 0;
        !            50:        ended = 1;
        !            51:        while (fgets(line, BUFSIZ, fp))
        !            52:        {
        !            53:                if (line[0] == '%' && line[1] == 'X' && !noanno)
        !            54:                {
        !            55:                        zap_x(line);
        !            56:                        printf(".]\n.AP\n%s", line);
        !            57:                        ended = 1;
        !            58:                        begun = 0;
        !            59:                }
        !            60:                else if (line[0] == '%')
        !            61:                {
        !            62:                        if (!begun)
        !            63:                        {
        !            64:                                puts(".[");
        !            65:                                begun = 1;
        !            66:                                ended = 0;
        !            67:                        }
        !            68:                        fputs(line, stdout);
        !            69:                }
        !            70:                else if (line[0] == '\n')
        !            71:                {
        !            72:                        if (!ended)
        !            73:                        {
        !            74:                                puts(".]");
        !            75:                                ended = 1;
        !            76:                                begun = 0;
        !            77:                        }
        !            78:                }
        !            79:                else
        !            80:                        fputs(line, stdout);
        !            81:        }
        !            82:        if (!ended)
        !            83:                puts(".]");
        !            84: }
        !            85: 
        !            86: zap_x(line)            /* take %X annotation flag out of line */
        !            87: char line[];
        !            88: {
        !            89:        register int i, j;
        !            90: 
        !            91:        for (i = 3, j = 0; line[i] != NULL; i++, j++)
        !            92:                line[j] = line[i];
        !            93:        line[j] = NULL;
        !            94:        return;
        !            95: }

unix.superglobalmegacorp.com

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