Annotation of 43BSD/usr.bin/refer/hunt8.c, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.