1*48316Sbostic /*- 2*48316Sbostic * %sccs.include.proprietary.c% 3*48316Sbostic */ 4*48316Sbostic 514513Ssam #ifndef lint 6*48316Sbostic static char sccsid[] = "@(#)tc.c 4.3 (Berkeley) 04/18/91"; 7*48316Sbostic #endif /* not lint */ 811038Sshannon 911038Sshannon /* tc.c: find character not in table to delimit fields */ 1011038Sshannon # include "t..c" choochar()1111038Sshannonchoochar() 1211038Sshannon { 1311038Sshannon /* choose funny characters to delimit fields */ 1411038Sshannon int had[128], ilin,icol, k; 1511038Sshannon char *s; 1611038Sshannon for(icol=0; icol<128; icol++) 1711038Sshannon had[icol]=0; 1811038Sshannon F1 = F2 = 0; 1911038Sshannon for(ilin=0;ilin<nlin;ilin++) 2011038Sshannon { 2111038Sshannon if (instead[ilin]) continue; 2211038Sshannon if (fullbot[ilin]) continue; 2311038Sshannon for(icol=0; icol<ncol; icol++) 2411038Sshannon { 2511038Sshannon k = ctype(ilin, icol); 2611038Sshannon if (k==0 || k == '-' || k == '=') 2711038Sshannon continue; 2811038Sshannon s = table[ilin][icol].col; 2911038Sshannon if (point(s)) 3011038Sshannon while (*s) 3111038Sshannon had[*s++]=1; 3211038Sshannon s=table[ilin][icol].rcol; 3311038Sshannon if (point(s)) 3411038Sshannon while (*s) 3511038Sshannon had[*s++]=1; 3611038Sshannon } 3711038Sshannon } 3811038Sshannon /* choose first funny character */ 3911038Sshannon for( 4011038Sshannon s="\002\003\005\006\007!%&#/?,:;<=>@`^~_{}+-*ABCDEFGHIJKMNOPQRSTUVWXYZabcdefgjkoqrstwxyz"; 4111038Sshannon *s; s++) 4211038Sshannon { 4311038Sshannon if (had[*s]==0) 4411038Sshannon { 4511038Sshannon F1= *s; 4611038Sshannon had[F1]=1; 4711038Sshannon break; 4811038Sshannon } 4911038Sshannon } 5011038Sshannon /* choose second funny character */ 5111038Sshannon for( 5211038Sshannon s="\002\003\005\006\007:_~^`@;,<=>#%&!/?{}+-*ABCDEFGHIJKMNOPQRSTUVWXZabcdefgjkoqrstuwxyz"; 5311038Sshannon *s; s++) 5411038Sshannon { 5511038Sshannon if (had[*s]==0) 5611038Sshannon { 5711038Sshannon F2= *s; 5811038Sshannon break; 5911038Sshannon } 6011038Sshannon } 6111038Sshannon if (F1==0 || F2==0) 6211038Sshannon error("couldn't find characters to use for delimiters"); 6311038Sshannon return; 6411038Sshannon } point(s)6511038Sshannonpoint(s) 6611038Sshannon { 6711038Sshannon return(s>= 128 || s<0); 6811038Sshannon } 69