xref: /csrg-svn/old/tbl/ti.c (revision 14514)
1*14514Ssam #ifndef lint
2*14514Ssam static char sccsid[] = "@(#)ti.c	4.2 08/11/83";
3*14514Ssam #endif
411042Sshannon 
511042Sshannon  /* ti.c: classify line intersections */
611042Sshannon # include "t..c"
711042Sshannon /* determine local environment for intersections */
811042Sshannon interv(i,c)
911042Sshannon {
1011042Sshannon int ku, kl;
1111042Sshannon if (c>=ncol || c == 0)
1211042Sshannon 	{
1311042Sshannon 	if (dboxflg)
1411042Sshannon 		{
1511042Sshannon 		if (i==0) return(BOT);
1611042Sshannon 		if (i>=nlin) return(TOP);
1711042Sshannon 		return(THRU);
1811042Sshannon 		}
1911042Sshannon 	if (c>=ncol)
2011042Sshannon 		return(0);
2111042Sshannon 	}
2211042Sshannon ku = i>0 ? lefdata(i-1,c) : 0;
2311042Sshannon if (i+1 >= nlin)
2411042Sshannon 	kl=0;
2511042Sshannon else
2611042Sshannon kl = lefdata(allh(i) ? i+1 : i, c);
2711042Sshannon if (ku==2 && kl==2) return(THRU);
2811042Sshannon if (ku ==2) return(TOP);
2911042Sshannon if (kl==BOT) return(2);
3011042Sshannon return(0);
3111042Sshannon }
3211042Sshannon interh(i,c)
3311042Sshannon {
3411042Sshannon int kl, kr;
3511042Sshannon if (fullbot[i]== '=' || (dboxflg && (i==0 || i>= nlin-1)))
3611042Sshannon 	{
3711042Sshannon 	if (c==ncol)
3811042Sshannon 		return(LEFT);
3911042Sshannon 	if (c==0)
4011042Sshannon 		return(RIGHT);
4111042Sshannon 	return(THRU);
4211042Sshannon 	}
4311042Sshannon if (i>=nlin) return(0);
4411042Sshannon kl = c>0 ? thish (i,c-1) : 0;
4511042Sshannon if (kl<=1 && i>0 && allh(up1(i)))
4611042Sshannon 	kl = c>0 ? thish(up1(i),c-1) : 0;
4711042Sshannon kr = thish(i,c);
4811042Sshannon if (kr<=1 && i>0 && allh(up1(i)))
4911042Sshannon 	kr = c>0 ? thish(up1(i), c) : 0;
5011042Sshannon if (kl== '=' && kr ==  '=') return(THRU);
5111042Sshannon if (kl== '=') return(LEFT);
5211042Sshannon if (kr== '=') return(RIGHT);
5311042Sshannon return(0);
5411042Sshannon }
5511042Sshannon up1(i)
5611042Sshannon {
5711042Sshannon i--;
5811042Sshannon while (instead[i] && i>0) i--;
5911042Sshannon return(i);
6011042Sshannon }
61