xref: /csrg-svn/old/refer/hunt/hunt5.c (revision 32269)
112286Stut #ifndef lint
2*32269Sbostic static char *sccsid = "@(#)hunt5.c	4.3 (Berkeley) 09/28/87";
312286Stut #endif
412286Stut 
512286Stut #include <stdio.h>
612286Stut #include <sys/types.h>
712286Stut #include <sys/stat.h>
812286Stut 
912286Stut extern char *soutput, *tagout, usedir[];
1012286Stut 
1112286Stut result(master, nf, fc)
12*32269Sbostic unsigned *master;
1312286Stut FILE *fc;
1412286Stut {
1512286Stut 	int i, c;
1612286Stut 	char *s;
1712286Stut 	long lp;
1812286Stut 	extern int iflong;
1912286Stut 	char res[100];
20*32269Sbostic 	union ptr {
21*32269Sbostic 		unsigned *a;
22*32269Sbostic 		long *b;
23*32269Sbostic 	} umaster;
2412286Stut 
25*32269Sbostic 	if (iflong)
26*32269Sbostic 		umaster.b = (long *) master;
27*32269Sbostic 	else
28*32269Sbostic 		umaster.a = master;
2912286Stut 	for(i=0; i<nf; i++)
3012286Stut 	{
31*32269Sbostic 		lp = iflong ? umaster.b[i] : umaster.a[i];
3212286Stut 		fseek(fc,lp, 0);
3312286Stut 		fgets(res, 100, fc);
3412286Stut 		for(s=res; c = *s; s++)
3512286Stut 			if (c== ';')
3612286Stut 			{
3712286Stut 				*s=0;
3812286Stut 				break;
3912286Stut 			}
4012286Stut 		if (tagout !=0)
4112286Stut 		{
4212286Stut 			if (res[0]=='/' || usedir[0]==0)
4312286Stut 				sprintf(tagout, "%s", res);
4412286Stut 			else
4512286Stut 				sprintf(tagout, "%s/%s", usedir, res);
4612286Stut 			while (*tagout) tagout++;
4712286Stut 		}
4812286Stut 		else
4912286Stut 		{
5012286Stut 			if (res[0]!='/' || usedir[0]==0)
5112286Stut 				printf("%s/", usedir);
5212286Stut 			printf("%s\n", res);
5312286Stut 		}
5412286Stut 	}
5512286Stut }
5612286Stut 
5712286Stut long
5812286Stut gdate(f)
5912286Stut FILE *f;
6012286Stut {
6112286Stut 	struct stat sb;
6212286Stut 	fstat (f->_file, &sb);
6312286Stut 	return  (sb . st_mtime);
6412286Stut }
65