|
|
1.1 ! root 1: #ifndef lint ! 2: static char *sccsid = "@(#)inv5.c 4.1 (Berkeley) 5/6/83"; ! 3: #endif ! 4: ! 5: #include <stdio.h> ! 6: ! 7: recopy (ft, fb, fa, nhash) ! 8: FILE *ft, *fb, *fa; ! 9: { ! 10: /* copy fb (old hash items/pointers) to ft (new ones) */ ! 11: int n, i, iflong; ! 12: long getl(); ! 13: int getw(); ! 14: int *hpt_s; ! 15: int (*getfun)(); ! 16: long *hpt_l; ! 17: long k, lp; ! 18: if (fa==NULL) ! 19: { ! 20: err("No old pointers",0); ! 21: return; ! 22: } ! 23: fread(&n, sizeof(n), 1, fa); ! 24: fread(&iflong, sizeof(iflong), 1, fa); ! 25: if (iflong) ! 26: { ! 27: hpt_l = calloc(sizeof(*hpt_l), n+1); ! 28: n =fread(hpt_l, sizeof(*hpt_l), n, fa); ! 29: } ! 30: else ! 31: { ! 32: hpt_s = calloc(sizeof(*hpt_s), n+1); ! 33: n =fread(hpt_s, sizeof(*hpt_s), n, fa); ! 34: } ! 35: if (n!= nhash) ! 36: fprintf(stderr, "Changing hash value to old %d\n",n); ! 37: fclose(fa); ! 38: if (iflong) ! 39: getfun = getl; ! 40: else ! 41: getfun = getw; ! 42: for(i=0; i<n; i++) ! 43: { ! 44: if (iflong) ! 45: lp = hpt_l[i]; ! 46: else ! 47: lp = hpt_s[i]; ! 48: fseek(fb, lp, 0); ! 49: while ( (k= (*getfun)(fb) ) != -1) ! 50: fprintf(ft, "%04d %06ld\n",i,k); ! 51: } ! 52: fclose(fb); ! 53: return(n); ! 54: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.