📄 tb.c
字号:
/* tb.c: check which entries exist, also storage allocation */# include "t.h"voidcheckuse(void){ int i, c, k; for (c = 0; c < ncol; c++) { used[c] = lused[c] = rused[c] = 0; for (i = 0; i < nlin; i++) { if (instead[i] || fullbot[i]) continue; k = ctype(i, c); if (k == '-' || k == '=') continue; if ((k == 'n' || k == 'a')) { rused[c] |= real(table[i][c].rcol); if ( !real(table[i][c].rcol)) used[c] |= real(table[i][c].col); if (table[i][c].rcol) lused[c] |= real(table[i][c].col); } else used[c] |= real(table[i][c].col); } }}intreal(char *s){ if (s == 0) return(0); if (!point(s)) return(1); if (*s == 0) return(0); return(1);}int spcount = 0;# define MAXVEC 20char *spvecs[MAXVEC];char *chspace(void){ char *pp; if (spvecs[spcount]) return(spvecs[spcount++]); if (spcount >= MAXVEC) error("Too many characters in table"); spvecs[spcount++] = pp = calloc(MAXCHS + MAXLINLEN, 1); if (pp == (char *) - 1 || pp == (char *)0) error("no space for characters"); return(pp);}# define MAXPC 50char *thisvec;int tpcount = -1;char *tpvecs[MAXPC];int *alocv(int n){ int *tp, *q; if (tpcount < 0 || thisvec + n > tpvecs[tpcount] + MAXCHS) { tpcount++; if (tpvecs[tpcount] == 0) { tpvecs[tpcount] = calloc(MAXCHS, 1); } thisvec = tpvecs[tpcount]; if (thisvec == (char *)0) error("no space for vectors"); } tp = (int *)thisvec; thisvec += n; for (q = tp; q < (int *)thisvec; q++) *q = 0; return(tp);}voidrelease(void){ /* give back unwanted space in some vectors */ /* this should call free; it does not because alloc() is so buggy */ spcount = 0; tpcount = -1; exstore = 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -