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