t.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. /*
  2. * This file is part of the UCB release of Plan 9. It is subject to the license
  3. * terms in the LICENSE file found in the top-level directory of this
  4. * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
  5. * part of the UCB release of Plan 9, including this file, may be copied,
  6. * modified, propagated, or distributed except according to the terms contained
  7. * in the LICENSE file.
  8. */
  9. /* t..c : external declarations */
  10. #include <u.h>
  11. #include <libc.h>
  12. #include <bio.h>
  13. # include <ctype.h>
  14. # define MAXLIN 250
  15. # define MAXHEAD 44
  16. # define MAXCOL 30
  17. /* Do NOT make MAXCOL bigger with adjusting nregs[] in tr.c */
  18. # define MAXCHS 2000
  19. #define MAXLINLEN 300
  20. # define MAXRPT 100
  21. # define CLLEN 10
  22. # define SHORTLINE 4
  23. extern int nlin, ncol, iline, nclin, nslin;
  24. extern int (*style)[MAXHEAD];
  25. extern char (*font)[MAXHEAD][2];
  26. extern char (*csize)[MAXHEAD][4];
  27. extern char (*vsize)[MAXHEAD][4];
  28. extern char (*cll)[CLLEN];
  29. extern int (*flags)[MAXHEAD];
  30. # define ZEROW 001
  31. # define HALFUP 002
  32. # define CTOP 004
  33. # define CDOWN 010
  34. extern int stynum[];
  35. extern int qcol;
  36. extern int *doubled, *acase, *topat;
  37. extern int F1, F2;
  38. extern int (*lefline)[MAXHEAD];
  39. extern int fullbot[];
  40. extern char *instead[];
  41. extern int expflg;
  42. extern int ctrflg;
  43. extern int evenflg;
  44. extern int *evenup;
  45. extern int boxflg;
  46. extern int dboxflg;
  47. extern int linsize;
  48. extern int tab;
  49. extern int pr1403;
  50. extern int linsize, delim1, delim2;
  51. extern int allflg;
  52. extern int textflg;
  53. extern int left1flg;
  54. extern int rightl;
  55. struct colstr {char *col, *rcol;};
  56. extern struct colstr *table[];
  57. extern char *cspace, *cstore;
  58. extern char *exstore, *exlim, *exspace;
  59. extern int *sep;
  60. extern int *used, *lused, *rused;
  61. extern int linestop[];
  62. extern char *leftover;
  63. extern char *last, *ifile;
  64. extern int texname;
  65. extern int texct, texmax;
  66. extern char texstr[];
  67. extern int linstart;
  68. extern Biobuf *tabin, tabout;
  69. # define CRIGHT 2
  70. # define CLEFT 0
  71. # define CMID 1
  72. # define S1 31
  73. # define S2 32
  74. # define S3 33
  75. # define TMP 38
  76. #define S9 39
  77. # define SF 35
  78. # define SL 34
  79. # define LSIZE 33
  80. # define SIND 37
  81. # define SVS 36
  82. /* this refers to the relative position of lines */
  83. # define LEFT 1
  84. # define RIGHT 2
  85. # define THRU 3
  86. # define TOP 1
  87. # define BOT 2
  88. int tbl(int argc,char *argv[]); /*t1.c*/
  89. void setinp(int, char **);
  90. int swapin(void);
  91. void tableput(void); /*t2.c*/
  92. void getcomm(void); /*t3.c*/
  93. void backrest(char *);
  94. void getspec(void); /*t4.c*/
  95. void readspec(void);
  96. int findcol(void);
  97. void garray(int);
  98. char *getcore(int, int);
  99. void freearr(void);
  100. void gettbl(void); /*t5.c*/
  101. int nodata(int);
  102. int oneh(int);
  103. int vspand(int, int, int);
  104. int vspen(char *);
  105. void permute(void);
  106. void maktab(void); /*t6.c*/
  107. void wide(char *, char *, char *);
  108. int filler(char *);
  109. void runout(void); /*t7.c*/
  110. void runtabs(int, int);
  111. int ifline(char *);
  112. void need(void);
  113. void deftail(void);
  114. void putline(int, int); /*t8.c*/
  115. void puttext(char *, char *, char *);
  116. void funnies(int, int);
  117. void putfont(char *);
  118. void putsize(char *);
  119. void yetmore(void); /*t9.c*/
  120. int domore(char *);
  121. void checkuse(void); /*tb.c*/
  122. int real(char *);
  123. char *chspace(void);
  124. int *alocv(int);
  125. void release(void);
  126. void choochar(void); /*tc.c*/
  127. int point(char *);
  128. void error(char *); /*te.c*/
  129. char *gets1(char *, int);
  130. void un1getc(int);
  131. int get1char(void);
  132. void savefill(void); /*tf.c*/
  133. void rstofill(void);
  134. void endoff(void);
  135. void freearr(void);
  136. void saveline(void);
  137. void ifdivert(void);
  138. void restline(void);
  139. void cleanfc(void);
  140. int gettext(char *, int, int, char *, char *); /*tg.c*/
  141. void untext(void);
  142. int interv(int, int); /*ti.c*/
  143. int interh(int, int);
  144. int up1(int);
  145. char *maknew(char *); /*tm.c*/
  146. int ineqn (char *, char *);
  147. char *reg(int, int); /*tr.c*/
  148. int match (char *, char *); /*ts.c*/
  149. int prefix(char *, char *);
  150. int letter (int);
  151. int numb(char *);
  152. int digit(int);
  153. int max(int, int);
  154. void tcopy (char *, char *);
  155. int ctype(int, int); /*tt.c*/
  156. int min(int, int);
  157. int fspan(int, int);
  158. int lspan(int, int);
  159. int ctspan(int, int);
  160. void tohcol(int);
  161. int allh(int);
  162. int thish(int, int);
  163. void makeline(int, int, int); /*tu.c*/
  164. void fullwide(int, int);
  165. void drawline(int, int, int, int, int, int);
  166. void getstop(void);
  167. int left(int, int, int *);
  168. int lefdata(int, int);
  169. int next(int);
  170. int prev(int);
  171. void drawvert(int, int, int, int); /*tv.c*/
  172. int midbar(int, int);
  173. int midbcol(int, int);
  174. int barent(char *);