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