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