xref: /csrg-svn/old/tbl/tc.c (revision 48316)
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()1111038Sshannon choochar()
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)6511038Sshannon point(s)
6611038Sshannon {
6711038Sshannon return(s>= 128 || s<0);
6811038Sshannon }
69