xref: /csrg-svn/old/refer/NOTUSED/annobib.c (revision 48291)
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