|
|
1.1 ! root 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: char *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== (char *)-1 || pp == (char *)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: int *alocv(n) ! 56: int n; ! 57: { ! 58: int *tp, *q; ! 59: if (tpcount<0 || thisvec+n > tpvecs[tpcount]+MAXCHS) ! 60: { ! 61: tpcount++; ! 62: if (tpvecs[tpcount]==0) ! 63: { ! 64: tpvecs[tpcount] = calloc(MAXCHS,1); ! 65: } ! 66: thisvec = tpvecs[tpcount]; ! 67: if (thisvec == (char *)0) ! 68: error("no space for vectors"); ! 69: } ! 70: tp=(int *)thisvec; ! 71: thisvec+=n; ! 72: for(q=tp; q<(int *)thisvec; q++) ! 73: *q=0; ! 74: return(tp); ! 75: } ! 76: release() ! 77: { ! 78: /* give back unwanted space in some vectors */ ! 79: /* this should call free; it does not because ! 80: alloc() is so buggy */ ! 81: spcount=0; ! 82: tpcount= -1; ! 83: exstore=0; ! 84: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.