1 5cedca1b 2004-05-15 devnull /* tt.c: subroutines for drawing horizontal lines */
2 5cedca1b 2004-05-15 devnull # include "t.h"
5 5cedca1b 2004-05-15 devnull ctype(int il, int ic)
7 5cedca1b 2004-05-15 devnull if (instead[il])
8 5cedca1b 2004-05-15 devnull return(0);
9 5cedca1b 2004-05-15 devnull if (fullbot[il])
10 5cedca1b 2004-05-15 devnull return(0);
11 5cedca1b 2004-05-15 devnull il = stynum[il];
12 5cedca1b 2004-05-15 devnull return(style[ic][il]);
17 5cedca1b 2004-05-15 devnull min(int a, int b)
19 5cedca1b 2004-05-15 devnull return(a < b ? a : b);
24 5cedca1b 2004-05-15 devnull fspan(int i, int c)
27 5cedca1b 2004-05-15 devnull return(c < ncol && ctype(i, c) == 's');
32 5cedca1b 2004-05-15 devnull lspan(int i, int c)
36 5cedca1b 2004-05-15 devnull if (ctype(i, c) != 's')
37 5cedca1b 2004-05-15 devnull return(0);
39 5cedca1b 2004-05-15 devnull if (c < ncol && ctype(i, c) == 's')
40 5cedca1b 2004-05-15 devnull return(0);
41 5cedca1b 2004-05-15 devnull for (k = 0; ctype(i, --c) == 's'; k++)
43 5cedca1b 2004-05-15 devnull return(k);
48 5cedca1b 2004-05-15 devnull ctspan(int i, int c)
52 5cedca1b 2004-05-15 devnull for (k = 1; c < ncol && ctype(i, c) == 's'; k++)
54 5cedca1b 2004-05-15 devnull return(k);
59 5cedca1b 2004-05-15 devnull tohcol(int ic)
61 5cedca1b 2004-05-15 devnull if (ic == 0)
62 8a3cbc15 2004-05-17 devnull Bprint(&tabout, "\\h'|0'");
64 8a3cbc15 2004-05-17 devnull Bprint(&tabout, "\\h'(|\\n(%2su+|\\n(%2su)/2u'", reg(ic, CLEFT),
65 5cedca1b 2004-05-15 devnull reg(ic - 1, CRIGHT));
70 5cedca1b 2004-05-15 devnull allh(int i)
72 5cedca1b 2004-05-15 devnull /* return true if every element in line i is horizontal */
73 5cedca1b 2004-05-15 devnull /* also at least one must be horizontl */
74 5cedca1b 2004-05-15 devnull int c, one, k;
76 5cedca1b 2004-05-15 devnull if (fullbot[i])
77 5cedca1b 2004-05-15 devnull return(1);
78 5cedca1b 2004-05-15 devnull if (i >= nlin)
79 5cedca1b 2004-05-15 devnull return(dboxflg || boxflg);
80 5cedca1b 2004-05-15 devnull for (one = c = 0; c < ncol; c++) {
81 5cedca1b 2004-05-15 devnull k = thish(i, c);
82 5cedca1b 2004-05-15 devnull if (k == 0)
83 5cedca1b 2004-05-15 devnull return(0);
84 5cedca1b 2004-05-15 devnull if (k == 1)
85 5cedca1b 2004-05-15 devnull continue;
88 5cedca1b 2004-05-15 devnull return(one);
93 5cedca1b 2004-05-15 devnull thish(int i, int c)
97 5cedca1b 2004-05-15 devnull struct colstr *pc;
99 5cedca1b 2004-05-15 devnull if (c < 0)
100 5cedca1b 2004-05-15 devnull return(0);
101 5cedca1b 2004-05-15 devnull if (i < 0)
102 5cedca1b 2004-05-15 devnull return(0);
103 5cedca1b 2004-05-15 devnull t = ctype(i, c);
104 5cedca1b 2004-05-15 devnull if (t == '_' || t == '-')
105 5cedca1b 2004-05-15 devnull return('-');
106 5cedca1b 2004-05-15 devnull if (t == '=')
107 5cedca1b 2004-05-15 devnull return('=');
108 5cedca1b 2004-05-15 devnull if (t == '^')
109 5cedca1b 2004-05-15 devnull return(1);
110 5cedca1b 2004-05-15 devnull if (fullbot[i] )
111 5cedca1b 2004-05-15 devnull return(fullbot[i]);
112 5cedca1b 2004-05-15 devnull if (t == 's')
113 5cedca1b 2004-05-15 devnull return(thish(i, c - 1));
114 5cedca1b 2004-05-15 devnull if (t == 0)
115 5cedca1b 2004-05-15 devnull return(1);
116 5cedca1b 2004-05-15 devnull pc = &table[i][c];
117 5cedca1b 2004-05-15 devnull s = (t == 'a' ? pc->rcol : pc->col);
118 5cedca1b 2004-05-15 devnull if (s == 0 || (point(s) && *s == 0))
119 5cedca1b 2004-05-15 devnull return(1);
120 5cedca1b 2004-05-15 devnull if (vspen(s))
121 5cedca1b 2004-05-15 devnull return(1);
122 8a3cbc15 2004-05-17 devnull if (t = barent( s))
123 5cedca1b 2004-05-15 devnull return(t);
124 5cedca1b 2004-05-15 devnull return(0);