Annotation of researchv10no/cmd/refer/inv5.c, revision 1.1

1.1     ! root        1: # include "stdio.h"
        !             2: 
        !             3: recopy (ft, fb, fa, nhash)
        !             4:        FILE *ft, *fb, *fa;
        !             5: {
        !             6: /* copy fb (old hash items/pointers) to ft (new ones) */
        !             7: int n, i, iflong;
        !             8: long getl();
        !             9: int getw();
        !            10: int *hpt_s;
        !            11: int (*getfun)();
        !            12: long *hpt_l;
        !            13: long k, lp;
        !            14: if (fa==NULL)
        !            15:        {
        !            16:        err("No old pointers",0);
        !            17:        return;
        !            18:        }
        !            19: fread(&n, sizeof(n), 1, fa);
        !            20: fread(&iflong, sizeof(iflong), 1, fa);
        !            21: if (iflong)
        !            22:        {
        !            23:        hpt_l =  (long *) calloc(sizeof(*hpt_l), n+1);
        !            24:        n =fread(hpt_l, sizeof(*hpt_l), n, fa);
        !            25:        }
        !            26: else
        !            27:        {
        !            28:        hpt_s =  (int *) calloc(sizeof(*hpt_s), n+1);
        !            29:        n =fread(hpt_s, sizeof(*hpt_s), n, fa);
        !            30:        }
        !            31: if (n!= nhash)
        !            32:        fprintf(stderr, "Changing hash value to old %d\n",n);
        !            33: fclose(fa);
        !            34: if (iflong)
        !            35:        getfun = getl;
        !            36: else
        !            37:        getfun = getw;
        !            38: for(i=0; i<n; i++)
        !            39:        {
        !            40:        if (iflong)
        !            41:                lp = hpt_l[i];
        !            42:        else
        !            43:                lp = hpt_s[i];
        !            44:        fseek(fb, lp, 0);
        !            45:        while ( (k= (*getfun)(fb) ) != -1)
        !            46:                fprintf(ft, "%04d %06ld\n",i,k);
        !            47:        }
        !            48: fclose(fb);
        !            49: return(n);
        !            50: }

unix.superglobalmegacorp.com

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