1*48291Sbostic /*-
2*48291Sbostic * %sccs.include.proprietary.c%
3*48291Sbostic */
4*48291Sbostic
512258Stut #ifndef lint
6*48291Sbostic static char sccsid[] = "@(#)annobib.c 4.2 (Berkeley) 04/18/91";
7*48291Sbostic #endif /* not lint */
812258Stut
912258Stut /*
1012258Stut * This program has been replaced by "refer -B" (bibliography mode),
1112258Stut * but is included here for backward compatiblity.
1212258Stut */
1312258Stut
1412258Stut #include <stdio.h>
1512258Stut
1612258Stut int noanno = 0; /* option to suppress .AP from %X field */
1712258Stut
main(argc,argv)1812258Stut main(argc, argv) /* format (annotated) bibliography for n/troff */
1912258Stut int argc;
2012258Stut char *argv[];
2112258Stut {
2212258Stut FILE *fp, *fopen();
2312258Stut
2412258Stut if (argv[1][0] == '-' && argv[1][1] == 'x')
2512258Stut {
2612258Stut noanno = 1;
2712258Stut argv++; argc--;
2812258Stut }
2912258Stut if (argc == 1)
3012258Stut {
3112258Stut annobib(stdin);
3212258Stut exit(0);
3312258Stut }
3412258Stut while (--argc > 0)
3512258Stut {
3612258Stut if ((fp = fopen(*++argv, "r")) == NULL)
3712258Stut {
3812258Stut perror(*argv);
3912258Stut exit(1);
4012258Stut }
4112258Stut annobib(fp);
4212258Stut fclose(fp);
4312258Stut }
4412258Stut exit(0);
4512258Stut }
4612258Stut
annobib(fp)4712258Stut annobib(fp) /* prepare bibliography for refer bare mode */
4812258Stut FILE *fp;
4912258Stut {
5012258Stut char line[BUFSIZ];
5112258Stut int begun, ended;
5212258Stut
5312258Stut begun = 0;
5412258Stut ended = 1;
5512258Stut while (fgets(line, BUFSIZ, fp))
5612258Stut {
5712258Stut if (line[0] == '%' && line[1] == 'X' && !noanno)
5812258Stut {
5912258Stut zap_x(line);
6012258Stut printf(".]\n.AP\n%s", line);
6112258Stut ended = 1;
6212258Stut begun = 0;
6312258Stut }
6412258Stut else if (line[0] == '%')
6512258Stut {
6612258Stut if (!begun)
6712258Stut {
6812258Stut puts(".[");
6912258Stut begun = 1;
7012258Stut ended = 0;
7112258Stut }
7212258Stut fputs(line, stdout);
7312258Stut }
7412258Stut else if (line[0] == '\n')
7512258Stut {
7612258Stut if (!ended)
7712258Stut {
7812258Stut puts(".]");
7912258Stut ended = 1;
8012258Stut begun = 0;
8112258Stut }
8212258Stut }
8312258Stut else
8412258Stut fputs(line, stdout);
8512258Stut }
8612258Stut if (!ended)
8712258Stut puts(".]");
8812258Stut }
8912258Stut
zap_x(line)9012258Stut zap_x(line) /* take %X annotation flag out of line */
9112258Stut char line[];
9212258Stut {
9312258Stut register int i, j;
9412258Stut
9512258Stut for (i = 3, j = 0; line[i] != NULL; i++, j++)
9612258Stut line[j] = line[i];
9712258Stut line[j] = NULL;
9812258Stut return;
9912258Stut }
100