Blame


1 5cedca1b 2004-05-15 devnull /* tt.c: subroutines for drawing horizontal lines */
2 5cedca1b 2004-05-15 devnull # include "t.h"
3 5cedca1b 2004-05-15 devnull
4 5cedca1b 2004-05-15 devnull int
5 5cedca1b 2004-05-15 devnull ctype(int il, int ic)
6 5cedca1b 2004-05-15 devnull {
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]);
13 5cedca1b 2004-05-15 devnull }
14 5cedca1b 2004-05-15 devnull
15 5cedca1b 2004-05-15 devnull
16 5cedca1b 2004-05-15 devnull int
17 5cedca1b 2004-05-15 devnull min(int a, int b)
18 5cedca1b 2004-05-15 devnull {
19 5cedca1b 2004-05-15 devnull return(a < b ? a : b);
20 5cedca1b 2004-05-15 devnull }
21 5cedca1b 2004-05-15 devnull
22 5cedca1b 2004-05-15 devnull
23 5cedca1b 2004-05-15 devnull int
24 5cedca1b 2004-05-15 devnull fspan(int i, int c)
25 5cedca1b 2004-05-15 devnull {
26 5cedca1b 2004-05-15 devnull c++;
27 5cedca1b 2004-05-15 devnull return(c < ncol && ctype(i, c) == 's');
28 5cedca1b 2004-05-15 devnull }
29 5cedca1b 2004-05-15 devnull
30 5cedca1b 2004-05-15 devnull
31 5cedca1b 2004-05-15 devnull int
32 5cedca1b 2004-05-15 devnull lspan(int i, int c)
33 5cedca1b 2004-05-15 devnull {
34 5cedca1b 2004-05-15 devnull int k;
35 5cedca1b 2004-05-15 devnull
36 5cedca1b 2004-05-15 devnull if (ctype(i, c) != 's')
37 5cedca1b 2004-05-15 devnull return(0);
38 5cedca1b 2004-05-15 devnull c++;
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++)
42 5cedca1b 2004-05-15 devnull ;
43 5cedca1b 2004-05-15 devnull return(k);
44 5cedca1b 2004-05-15 devnull }
45 5cedca1b 2004-05-15 devnull
46 5cedca1b 2004-05-15 devnull
47 5cedca1b 2004-05-15 devnull int
48 5cedca1b 2004-05-15 devnull ctspan(int i, int c)
49 5cedca1b 2004-05-15 devnull {
50 5cedca1b 2004-05-15 devnull int k;
51 5cedca1b 2004-05-15 devnull c++;
52 5cedca1b 2004-05-15 devnull for (k = 1; c < ncol && ctype(i, c) == 's'; k++)
53 5cedca1b 2004-05-15 devnull c++;
54 5cedca1b 2004-05-15 devnull return(k);
55 5cedca1b 2004-05-15 devnull }
56 5cedca1b 2004-05-15 devnull
57 5cedca1b 2004-05-15 devnull
58 5cedca1b 2004-05-15 devnull void
59 5cedca1b 2004-05-15 devnull tohcol(int ic)
60 5cedca1b 2004-05-15 devnull {
61 5cedca1b 2004-05-15 devnull if (ic == 0)
62 8a3cbc15 2004-05-17 devnull Bprint(&tabout, "\\h'|0'");
63 5cedca1b 2004-05-15 devnull else
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));
66 5cedca1b 2004-05-15 devnull }
67 5cedca1b 2004-05-15 devnull
68 5cedca1b 2004-05-15 devnull
69 5cedca1b 2004-05-15 devnull int
70 5cedca1b 2004-05-15 devnull allh(int i)
71 5cedca1b 2004-05-15 devnull {
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;
75 5cedca1b 2004-05-15 devnull
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;
86 5cedca1b 2004-05-15 devnull one = 1;
87 5cedca1b 2004-05-15 devnull }
88 5cedca1b 2004-05-15 devnull return(one);
89 5cedca1b 2004-05-15 devnull }
90 5cedca1b 2004-05-15 devnull
91 5cedca1b 2004-05-15 devnull
92 5cedca1b 2004-05-15 devnull int
93 5cedca1b 2004-05-15 devnull thish(int i, int c)
94 5cedca1b 2004-05-15 devnull {
95 5cedca1b 2004-05-15 devnull int t;
96 5cedca1b 2004-05-15 devnull char *s;
97 5cedca1b 2004-05-15 devnull struct colstr *pc;
98 5cedca1b 2004-05-15 devnull
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);
125 5cedca1b 2004-05-15 devnull }
126 5cedca1b 2004-05-15 devnull
127 5cedca1b 2004-05-15 devnull