| /* t..c : external declarations */ | 
 |  | 
 | #include <u.h> | 
 | #include <libc.h> | 
 | #include <bio.h> | 
 | # include <ctype.h> | 
 |  | 
 | # define MAXLIN 250 | 
 | # define MAXHEAD 44 | 
 | # define MAXCOL 30 | 
 |  /* Do NOT make MAXCOL bigger with adjusting nregs[] in tr.c */ | 
 | # define MAXCHS 2000 | 
 | #define MAXLINLEN 300 | 
 | # define MAXRPT 100 | 
 | # define CLLEN 10 | 
 | # define SHORTLINE 4 | 
 | extern int nlin, ncol, iline, nclin, nslin; | 
 |  | 
 | extern int (*style)[MAXHEAD]; | 
 | extern char (*font)[MAXHEAD][2]; | 
 | extern char (*csize)[MAXHEAD][4]; | 
 | extern char (*vsize)[MAXHEAD][4]; | 
 | extern char (*cll)[CLLEN]; | 
 | extern int (*flags)[MAXHEAD]; | 
 | # define ZEROW 001 | 
 | # define HALFUP 002 | 
 | # define CTOP 004 | 
 | # define CDOWN 010 | 
 | extern int stynum[]; | 
 | extern int qcol; | 
 | extern int *doubled, *acase, *topat; | 
 | extern int F1, F2; | 
 | extern int (*lefline)[MAXHEAD]; | 
 | extern int fullbot[]; | 
 | extern char *instead[]; | 
 | extern int expflg; | 
 | extern int ctrflg; | 
 | extern int evenflg; | 
 | extern int *evenup; | 
 | extern int boxflg; | 
 | extern int dboxflg; | 
 | extern int linsize; | 
 | extern int tab; | 
 | extern int pr1403; | 
 | extern int linsize, delim1, delim2; | 
 | extern int allflg; | 
 | extern int textflg; | 
 | extern int left1flg; | 
 | extern int rightl; | 
 | struct colstr {char *col, *rcol;}; | 
 | extern struct colstr *table[]; | 
 | extern char *cspace, *cstore; | 
 | extern char *exstore, *exlim, *exspace; | 
 | extern int *sep; | 
 | extern int *used, *lused, *rused; | 
 | extern int linestop[]; | 
 | extern char *leftover; | 
 | extern char *last, *ifile; | 
 | extern int texname; | 
 | extern int texct, texmax; | 
 | extern char texstr[]; | 
 | extern int linstart; | 
 |  | 
 |  | 
 | extern Biobuf *tabin, tabout; | 
 | # define CRIGHT 2 | 
 | # define CLEFT 0 | 
 | # define CMID 1 | 
 | # define S1 31 | 
 | # define S2 32 | 
 | # define S3 33 | 
 | # define TMP 38 | 
 | #define S9 39 | 
 | # define SF 35 | 
 | # define SL 34 | 
 | # define LSIZE 33 | 
 | # define SIND 37 | 
 | # define SVS 36 | 
 | /* this refers to the relative position of lines */ | 
 | # define LEFT 1 | 
 | # define RIGHT 2 | 
 | # define THRU 3 | 
 | # define TOP 1 | 
 | # define BOT 2 | 
 |  | 
 | int tbl(int argc,char *argv[]);		/*t1.c*/ | 
 | void setinp(int, char **); | 
 | int swapin(void); | 
 |  | 
 | void tableput(void);			/*t2.c*/ | 
 |  | 
 | void getcomm(void);			/*t3.c*/ | 
 | void backrest(char *); | 
 |  | 
 | void getspec(void);			/*t4.c*/ | 
 | void readspec(void); | 
 | int findcol(void); | 
 | void garray(int); | 
 | char *getcore(int, int); | 
 | void freearr(void); | 
 |  | 
 | void gettbl(void);			/*t5.c*/ | 
 | int nodata(int); | 
 | int oneh(int); | 
 | int vspand(int, int, int); | 
 | int vspen(char *); | 
 | void permute(void); | 
 |  | 
 | void maktab(void);			/*t6.c*/ | 
 | void wide(char *, char *, char *); | 
 | int filler(char *); | 
 |  | 
 | void runout(void);			/*t7.c*/ | 
 | void runtabs(int, int); | 
 | int ifline(char *); | 
 | void need(void); | 
 | void deftail(void); | 
 |  | 
 | void putline(int, int);			/*t8.c*/ | 
 | void puttext(char *, char *, char *); | 
 | void funnies(int, int); | 
 | void putfont(char *); | 
 | void putsize(char *); | 
 |  | 
 | void yetmore(void);			/*t9.c*/ | 
 | int domore(char *); | 
 |  | 
 | void checkuse(void);			/*tb.c*/ | 
 | int real(char *); | 
 | char *chspace(void); | 
 | int *alocv(int); | 
 | void release(void); | 
 |  | 
 | void choochar(void);			/*tc.c*/ | 
 | int point(char *); | 
 |  | 
 | void error(char *);			/*te.c*/ | 
 | char *gets1(char *, int); | 
 | void un1getc(int); | 
 | int get1char(void); | 
 |  | 
 | void savefill(void);			/*tf.c*/ | 
 | void rstofill(void); | 
 | void endoff(void); | 
 | void freearr(void); | 
 | void saveline(void); | 
 | void ifdivert(void); | 
 | void restline(void); | 
 | void cleanfc(void); | 
 |  | 
 | #define gettext tbl_gettext | 
 | int gettext(char *, int, int, char *, char *);		/*tg.c*/ | 
 | void untext(void); | 
 |  | 
 | int interv(int, int);			/*ti.c*/ | 
 | int interh(int, int); | 
 | int up1(int); | 
 |  | 
 | char *maknew(char *);			/*tm.c*/ | 
 | int ineqn (char *, char *); | 
 |  | 
 | char *reg(int, int);			/*tr.c*/ | 
 |  | 
 | int match (char *, char *);		/*ts.c*/ | 
 | int prefix(char *, char *); | 
 | int letter (int); | 
 | int numb(char *); | 
 | int digit(int); | 
 | int max(int, int); | 
 | void tcopy (char *, char *); | 
 |  | 
 | int ctype(int, int);			/*tt.c*/ | 
 | int min(int, int); | 
 | int fspan(int, int); | 
 | int lspan(int, int); | 
 | int ctspan(int, int); | 
 | void tohcol(int); | 
 | int allh(int); | 
 | int thish(int, int); | 
 |  | 
 | void makeline(int, int, int);		/*tu.c*/ | 
 | void fullwide(int, int); | 
 | void drawline(int, int, int, int, int, int); | 
 | void getstop(void); | 
 | int left(int, int, int *); | 
 | int lefdata(int, int); | 
 | int next(int); | 
 | int prev(int); | 
 |  | 
 | void drawvert(int, int, int, int);			/*tv.c*/ | 
 | int midbar(int, int); | 
 | int midbcol(int, int); | 
 | int barent(char *); |