|
|
1.1 ! root 1: # include "refer..c" ! 2: # define NRS 500 ! 3: int newr[NRS]; ! 4: chkdup ( tag ) ! 5: char *tag; ! 6: { ! 7: int i; ! 8: for(i=1; i<=refnum; i++) ! 9: { ! 10: if (strcmp(reftable[i], tag)==0) ! 11: return(i); ! 12: } ! 13: reftable[refnum+1] = rtp; ! 14: if (refnum>=NRFTBL) ! 15: err("too many references (%d) for table", refnum); ! 16: strcpy (rtp, tag); ! 17: while (*rtp++); ! 18: if (rtp > reftext + NRFTXT) ! 19: err("reftext too big (%d)", rtp-reftext); ! 20: return(0); ! 21: } ! 22: dumpold() ! 23: { ! 24: FILE *fi; ! 25: int c, g1 = 0, nr = 1; ! 26: if (!endpush) return; ! 27: fclose(fo); ! 28: # ifdef D1 ! 29: fprintf(stderr, "closing %o\n",fo); ! 30: # endif ! 31: fo=NULL; ! 32: # if D1 ! 33: fprintf(stderr, "dumpold for %s ftemp is %o stdout %o\n", tfile, ftemp, stdout); ! 34: # endif ! 35: if (sort) ! 36: { ! 37: char comm[100]; ! 38: sprintf(comm, "sort -fd %s -o %s", tfile, tfile); ! 39: system(comm); ! 40: } ! 41: fi = fopen(tfile, "r"); ! 42: # if D1 ! 43: fprintf(stderr, "reopened %s as %o\n",tfile,fi); ! 44: # endif ! 45: if (fi==NULL) return; ! 46: flout(); ! 47: fprintf(ftemp,".]<\n"); ! 48: while ( (c = getc(fi)) >=0) ! 49: { ! 50: if (c=='\n') ! 51: { ! 52: nr++; ! 53: g1 = 0; ! 54: } ! 55: if (c==sep) ! 56: c = '\n'; ! 57: if (c== FLAG) ! 58: { ! 59: /* make old-new ref number table */ ! 60: char tb[20]; ! 61: int irr; ! 62: char *s = tb; ! 63: while ( (c=getc(fi)) != FLAG) ! 64: *s++ = c; ! 65: *s=0; ! 66: if (g1++ == 0) ! 67: { ! 68: irr = atoi(tb); ! 69: if (irr>=NRS) ! 70: err("too many references to renumber",0); ! 71: newr[irr]=nr; ! 72: } ! 73: # if D1 ! 74: fprintf(stderr, "nr %d assigned to atoi(tb) %d\n",nr,irr); ! 75: # endif ! 76: if (!labels) ! 77: fprintf(ftemp,"%d", nr); ! 78: else ! 79: expkey (irr, nr, ftemp); ! 80: continue; ! 81: } ! 82: putc(c, ftemp); ! 83: } ! 84: fclose(fi); ! 85: # ifndef D1 ! 86: unlink(tfile); ! 87: # endif ! 88: widelab(); ! 89: fprintf(ftemp, ".]>\n"); ! 90: } ! 91: ! 92: recopy (fnam) ! 93: char *fnam; ! 94: { ! 95: int c; ! 96: fclose(ftemp); ! 97: # if D1 ! 98: fprintf(stderr, "recopy, fnam %s\n",fnam); ! 99: # endif ! 100: ! 101: ftemp = fopen(fnam, "r"); ! 102: if (ftemp==NULL) ! 103: { ! 104: fprintf(stderr, "Can't reopen %s\n", fnam); ! 105: exit(1); ! 106: } ! 107: # if D1 ! 108: fprintf(stderr, "open ok ftemp %o\n",ftemp); ! 109: # endif ! 110: while ( 1) ! 111: { ! 112: c = fgetc(ftemp); ! 113: # if D1 ! 114: fprintf(stderr, "read char %o /%c/\n",c,c); ! 115: # endif ! 116: if (c == FLAG) ! 117: { ! 118: char tb[10]; ! 119: char *s = tb; ! 120: int tbx; ! 121: while ( (c = getc(ftemp)) != FLAG && c != EOF) ! 122: *s++ = c; ! 123: *s=0; ! 124: tbx = atoi(tb); ! 125: # if D1 ! 126: fprintf(stderr, "prelim number is %d\n",tbx); ! 127: # endif ! 128: if (!labels) ! 129: printf("%d", newr[tbx]); ! 130: else ! 131: expkey (tbx, newr[tbx], stdout); ! 132: continue; ! 133: } ! 134: if (c==EOF) break; ! 135: putchar(c); ! 136: } ! 137: # if D1 ! 138: fprintf(stderr, "finished reading file \n"); ! 139: # endif ! 140: fclose(ftemp); ! 141: unlink(fnam); ! 142: # if D1 ! 143: fprintf(stderr, "le&aving recopy\n"); ! 144: # endif ! 145: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.