xref: /csrg-svn/old/tbl/ti.c (revision 11042)
1*11042Sshannon /*	ti.c	4.1	83/02/12	*/
2*11042Sshannon 
3*11042Sshannon  /* ti.c: classify line intersections */
4*11042Sshannon # include "t..c"
5*11042Sshannon /* determine local environment for intersections */
6*11042Sshannon interv(i,c)
7*11042Sshannon {
8*11042Sshannon int ku, kl;
9*11042Sshannon if (c>=ncol || c == 0)
10*11042Sshannon 	{
11*11042Sshannon 	if (dboxflg)
12*11042Sshannon 		{
13*11042Sshannon 		if (i==0) return(BOT);
14*11042Sshannon 		if (i>=nlin) return(TOP);
15*11042Sshannon 		return(THRU);
16*11042Sshannon 		}
17*11042Sshannon 	if (c>=ncol)
18*11042Sshannon 		return(0);
19*11042Sshannon 	}
20*11042Sshannon ku = i>0 ? lefdata(i-1,c) : 0;
21*11042Sshannon if (i+1 >= nlin)
22*11042Sshannon 	kl=0;
23*11042Sshannon else
24*11042Sshannon kl = lefdata(allh(i) ? i+1 : i, c);
25*11042Sshannon if (ku==2 && kl==2) return(THRU);
26*11042Sshannon if (ku ==2) return(TOP);
27*11042Sshannon if (kl==BOT) return(2);
28*11042Sshannon return(0);
29*11042Sshannon }
30*11042Sshannon interh(i,c)
31*11042Sshannon {
32*11042Sshannon int kl, kr;
33*11042Sshannon if (fullbot[i]== '=' || (dboxflg && (i==0 || i>= nlin-1)))
34*11042Sshannon 	{
35*11042Sshannon 	if (c==ncol)
36*11042Sshannon 		return(LEFT);
37*11042Sshannon 	if (c==0)
38*11042Sshannon 		return(RIGHT);
39*11042Sshannon 	return(THRU);
40*11042Sshannon 	}
41*11042Sshannon if (i>=nlin) return(0);
42*11042Sshannon kl = c>0 ? thish (i,c-1) : 0;
43*11042Sshannon if (kl<=1 && i>0 && allh(up1(i)))
44*11042Sshannon 	kl = c>0 ? thish(up1(i),c-1) : 0;
45*11042Sshannon kr = thish(i,c);
46*11042Sshannon if (kr<=1 && i>0 && allh(up1(i)))
47*11042Sshannon 	kr = c>0 ? thish(up1(i), c) : 0;
48*11042Sshannon if (kl== '=' && kr ==  '=') return(THRU);
49*11042Sshannon if (kl== '=') return(LEFT);
50*11042Sshannon if (kr== '=') return(RIGHT);
51*11042Sshannon return(0);
52*11042Sshannon }
53*11042Sshannon up1(i)
54*11042Sshannon {
55*11042Sshannon i--;
56*11042Sshannon while (instead[i] && i>0) i--;
57*11042Sshannon return(i);
58*11042Sshannon }
59