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