1: # include "refer..c"
2: int newr[250];
3: chkdup ( tag )
4: char *tag;
5: {
6: int i;
7: for(i=1; i<=refnum; i++)
8: {
9: if (strcmp(reftable[i], tag)==0)
10: return(i);
11: }
12: reftable[refnum+1] = rtp;
13: if (refnum>=NRFTBL)
14: err("too many references (%d) for table", refnum);
15: strcpy (rtp, tag);
16: while (*rtp++);
17: if (rtp > reftext + NRFTXT)
18: err("reftext too big (%d)", rtp-reftext);
19: return(0);
20: }
21: dumpold()
22: {
23: FILE *fi;
24: int c, g1 0, nr 1;
25: if (!endpush) return;
26: fclose(fo);
27: fo=NULL;
28: if (sort)
29: {
30: char comm[100];
31: sprintf(comm, "sort %s -o %s", tfile, tfile);
32: system(comm);
33: }
34: fi = fopen(tfile, "r");
35: if (fi==NULL) return;
36: flout();
37: fprintf(ftemp,".]<\n");
38: while ( (c = getc(fi)) >0)
39: {
40: if (c=='\n')
41: {
42: nr++;
43: g1 = 0;
44: }
45: if (c==sep)
46: c = '\n';
47: if (c== FLAG)
48: {
49: /* make old-new ref number table */
50: char tb[20];
51: char *s tb;
52: while ( (c=getc(fi)) != FLAG)
53: *s++ = c;
54: *s=0;
55: if (g1++ == 0)
56: newr[atoi(tb)] = nr;
57: # if D1
58: fprintf(stderr, "nr %d assigned to atoi(tb) %d\n",nr,atoi(tb));
59: # endif
60: fprintf(ftemp,"%d", nr);
61: continue;
62: }
63: putc(c, ftemp);
64: }
65: fclose(fi);
66: # ifndef D1
67: unlink(tfile);
68: # endif
69: fprintf(ftemp, ".]>\n");
70: }
71:
72: recopy (fnam)
73: char *fnam;
74: {
75: int c;
76: fclose(ftemp);
77:
78: ftemp = fopen(fnam, "r");
79: if (ftemp==NULL)
80: {
81: fprintf(stderr, "Can't reopen %s\n", fnam);
82: exit(1);
83: }
84: while ( (c = getc(ftemp)) != EOF)
85: {
86: if (c == FLAG)
87: {
88: char tb[10];
89: char *s tb;
90: while ( (c = getc(ftemp)) != FLAG)
91: *s++ = c;
92: *s=0;
93: printf("%d", newr[atoi(tb)]);
94: continue;
95: }
96: putchar(c);
97: }
98: fclose(ftemp);
99: unlink(fnam);
100: }
Defined functions
chkdup
defined in line
3; used 1 times
Defined variables
newr
defined in line
2; used 2 times