1*48316Sbostic /*-
2*48316Sbostic * %sccs.include.proprietary.c%
3*48316Sbostic */
4*48316Sbostic
514514Ssam #ifndef lint
6*48316Sbostic static char sccsid[] = "@(#)ti.c 4.3 (Berkeley) 04/18/91";
7*48316Sbostic #endif /* not lint */
811042Sshannon
911042Sshannon /* ti.c: classify line intersections */
1011042Sshannon # include "t..c"
1111042Sshannon /* determine local environment for intersections */
interv(i,c)1211042Sshannon interv(i,c)
1311042Sshannon {
1411042Sshannon int ku, kl;
1511042Sshannon if (c>=ncol || c == 0)
1611042Sshannon {
1711042Sshannon if (dboxflg)
1811042Sshannon {
1911042Sshannon if (i==0) return(BOT);
2011042Sshannon if (i>=nlin) return(TOP);
2111042Sshannon return(THRU);
2211042Sshannon }
2311042Sshannon if (c>=ncol)
2411042Sshannon return(0);
2511042Sshannon }
2611042Sshannon ku = i>0 ? lefdata(i-1,c) : 0;
2711042Sshannon if (i+1 >= nlin)
2811042Sshannon kl=0;
2911042Sshannon else
3011042Sshannon kl = lefdata(allh(i) ? i+1 : i, c);
3111042Sshannon if (ku==2 && kl==2) return(THRU);
3211042Sshannon if (ku ==2) return(TOP);
3311042Sshannon if (kl==BOT) return(2);
3411042Sshannon return(0);
3511042Sshannon }
interh(i,c)3611042Sshannon interh(i,c)
3711042Sshannon {
3811042Sshannon int kl, kr;
3911042Sshannon if (fullbot[i]== '=' || (dboxflg && (i==0 || i>= nlin-1)))
4011042Sshannon {
4111042Sshannon if (c==ncol)
4211042Sshannon return(LEFT);
4311042Sshannon if (c==0)
4411042Sshannon return(RIGHT);
4511042Sshannon return(THRU);
4611042Sshannon }
4711042Sshannon if (i>=nlin) return(0);
4811042Sshannon kl = c>0 ? thish (i,c-1) : 0;
4911042Sshannon if (kl<=1 && i>0 && allh(up1(i)))
5011042Sshannon kl = c>0 ? thish(up1(i),c-1) : 0;
5111042Sshannon kr = thish(i,c);
5211042Sshannon if (kr<=1 && i>0 && allh(up1(i)))
5311042Sshannon kr = c>0 ? thish(up1(i), c) : 0;
5411042Sshannon if (kl== '=' && kr == '=') return(THRU);
5511042Sshannon if (kl== '=') return(LEFT);
5611042Sshannon if (kr== '=') return(RIGHT);
5711042Sshannon return(0);
5811042Sshannon }
up1(i)5911042Sshannon up1(i)
6011042Sshannon {
6111042Sshannon i--;
6211042Sshannon while (instead[i] && i>0) i--;
6311042Sshannon return(i);
6411042Sshannon }
65