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