tc.c revision 7c478bd95313f5f23a4c958a745db2134aa03244
1/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
2/*	  All Rights Reserved  	*/
3
4
5/*
6 * Copyright (c) 1980 Regents of the University of California.
7 * All rights reserved. The Berkeley software License Agreement
8 * specifies the terms and conditions for redistribution.
9 */
10
11/*
12 * Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
13 * All Rights Reserved.
14 */
15
16#ident	"%Z%%M%	%I%	%E% SMI"	/* SVr4.0 1.1	*/
17
18 /* tc.c: find character not in table to delimit fields */
19# include "t..c"
20choochar()
21{
22/* choose funny characters to delimit fields */
23int had[128], ilin,icol, k;
24char *s;
25for(icol=0; icol<128; icol++)
26	had[icol]=0;
27F1 = F2 = 0;
28for(ilin=0;ilin<nlin;ilin++)
29	{
30	if (instead[ilin]) continue;
31	if (fullbot[ilin]) continue;
32	for(icol=0; icol<ncol; icol++)
33		{
34		k = ctype(ilin, icol);
35		if (k==0 || k == '-' || k == '=')
36			continue;
37		s = table[ilin][icol].col;
38		if (point(s))
39		while (*s)
40			{
41			if (*s > 0 && *s <= 127)
42				had[*s++]=1;
43			else
44				s++;
45			}
46		s=table[ilin][icol].rcol;
47		if (point(s))
48		while (*s)
49			{
50			if (*s > 0 && *s <= 127)
51				had[*s++]=1;
52			else
53				s++;
54			}
55		}
56	}
57/* choose first funny character */
58for(
59	s="\002\003\005\006\007!%&#/?,:;<=>@`^~_{}+-*ABCDEFGHIJKMNOPQRSTUVWXYZabcdefgjkoqrstwxyz";
60		*s; s++)
61	{
62	if (had[*s]==0)
63		{
64		F1= *s;
65		had[F1]=1;
66		break;
67		}
68	}
69/* choose second funny character */
70for(
71	s="\002\003\005\006\007:_~^`@;,<=>#%&!/?{}+-*ABCDEFGHIJKMNOPQRSTUVWXZabcdefgjkoqrstuwxyz";
72		*s; s++)
73	{
74	if (had[*s]==0)
75		{
76		F2= *s;
77		break;
78		}
79	}
80if (F1==0 || F2==0)
81	error(gettext("couldn't find characters to use for delimiters"));
82return;
83}
84point(s)
85{
86return(s>= 128 || s<0);
87}
88