|
|
1.1 root 1: # include "stdio.h"
2: # include "assert.h"
3: # define unopen(fil) {if (fil!=NULL) {fclose(fil); fil=NULL;}}
4: extern long indexdate, gdate();
5: extern FILE *iopen();
6: runbib (s)
7: char *s;
8: {
9: /* make a file suitable for fgrep */
10: char tmp[200];
11: sprintf(tmp, "/usr/lib/refer/mkey %s >%s.ig", s,s);
12: system(tmp);
13: }
14: makefgrep(indexname)
15: char *indexname;
16: {
17: FILE *fa, *fb;
18: if (ckexist(indexname, ".ig"))
19: {
20: /* existing gfrep -type index */
21: # if D1
22: fprintf(stderr, "found fgrep\n");
23: # endif
24: fa = iopen(indexname, ".ig");
25: fb = iopen(indexname, "");
26: if (gdate(fb)>gdate(fa))
27: {
28: if (fa!=NULL)
29: fclose(fa);
30: runbib(indexname);
31: fa= iopen(indexname, ".ig");
32: }
33: indexdate = gdate(fa);
34: unopen(fa); unopen(fb);
35: }
36: else
37: if (ckexist(indexname, ""))
38: {
39: /* make fgrep */
40: # if D1
41: fprintf(stderr, "make fgrep\n");
42: # endif
43: runbib(indexname);
44: time(&indexdate);
45: unopen(fb);
46: }
47: else /* failure */
48: return(0);
49: return(1); /* success */
50: }
51: ckexist(s, t)
52: char *s, *t;
53: {
54: char fnam[100];
55: strcpy (fnam, s);
56: strcat (fnam, t);
57: return (access(fnam, 04) != -1);
58: }
59: FILE *
60: iopen (s, t)
61: char *s, *t;
62: {
63: char fnam[100];
64: FILE *f;
65: strcpy (fnam, s);
66: strcat (fnam, t);
67: f = fopen (fnam, "r");
68: if (f == NULL)
69: {
70: err("Missing expected file %s", fnam);
71: exit(1);
72: }
73: return(f);
74: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.