Commit | Line | Data |
---|---|---|
aaa7ced1 BJ |
1 | /* tb.c: check which entries exist, also storage allocation */ |
2 | # include "t..c" | |
3 | checkuse() | |
4 | { | |
5 | int i,c, k; | |
6 | for(c=0; c<ncol; c++) | |
7 | { | |
8 | used[c]=lused[c]=rused[c]=0; | |
9 | for(i=0; i<nlin; i++) | |
10 | { | |
11 | if (instead[i] || fullbot[i]) continue; | |
12 | k = ctype(i,c); | |
13 | if (k== '-' || k == '=') continue; | |
14 | if ((k=='n'||k=='a')) | |
15 | { | |
16 | rused[c]|= real(table[i][c].rcol); | |
17 | if( !real(table[i][c].rcol)) | |
18 | used[c] |= real(table[i][c].col); | |
19 | if (table[i][c].rcol) | |
20 | lused[c] |= real(table[i][c].col); | |
21 | } | |
22 | else | |
23 | used[c] |= real(table[i][c].col); | |
24 | } | |
25 | } | |
26 | } | |
27 | real(s) | |
28 | char *s; | |
29 | { | |
30 | if (s==0) return(0); | |
31 | if (!point(s)) return(1); | |
32 | if (*s==0) return(0); | |
33 | return(1); | |
34 | } | |
35 | int spcount = 0; | |
36 | extern char * calloc(); | |
37 | # define MAXVEC 20 | |
38 | char *spvecs[MAXVEC]; | |
39 | chspace() | |
40 | { | |
41 | char *pp; | |
42 | if (spvecs[spcount]) | |
43 | return(spvecs[spcount++]); | |
44 | if (spcount>=MAXVEC) | |
45 | error("Too many characters in table"); | |
46 | spvecs[spcount++]= pp = calloc(MAXCHS+200,1); | |
47 | if (pp== -1 || pp == 0) | |
48 | error("no space for characters"); | |
49 | return(pp); | |
50 | } | |
51 | # define MAXPC 50 | |
52 | char *thisvec; | |
53 | int tpcount = -1; | |
54 | char *tpvecs[MAXPC]; | |
55 | alocv(n) | |
56 | { | |
57 | int *tp, *q; | |
58 | if (tpcount<0 || thisvec+n > tpvecs[tpcount]+MAXCHS) | |
59 | { | |
60 | tpcount++; | |
61 | if (tpvecs[tpcount]==0) | |
62 | { | |
63 | tpvecs[tpcount] = calloc(MAXCHS,1); | |
64 | } | |
65 | thisvec = tpvecs[tpcount]; | |
66 | if (thisvec == -1) | |
67 | error("no space for vectors"); | |
68 | } | |
69 | tp=thisvec; | |
70 | thisvec+=n; | |
71 | for(q=tp; q<thisvec; q++) | |
72 | *q=0; | |
73 | return(tp); | |
74 | } | |
75 | release() | |
76 | { | |
77 | extern char *exstore; | |
78 | /* give back unwanted space in some vectors */ | |
79 | spcount=0; | |
80 | tpcount= -1; | |
81 | exstore=0; | |
82 | } |