1: /* tc.c: find character not in table to delimit fields */
2: # include "t..c"
3: choochar()
4: {
5: /* choose funny characters to delimit fields */
6: int had[128], ilin,icol, k;
7: char *s;
8: for(icol=0; icol<128; icol++)
9: had[icol]=0;
10: F1 = F2 = 0;
11: for(ilin=0;ilin<nlin;ilin++)
12: {
13: if (instead[ilin]) continue;
14: if (fullbot[ilin]) continue;
15: for(icol=0; icol<ncol; icol++)
16: {
17: k = ctype(ilin, icol);
18: if (k==0 || k == '-' || k == '=')
19: continue;
20: s = table[ilin][icol].col;
21: if (point(s))
22: while (*s)
23: had[*s++]=1;
24: s=table[ilin][icol].rcol;
25: if (point(s))
26: while (*s)
27: had[*s++]=1;
28: }
29: }
30: /* choose first funny character */
31: for(
32: s="\002\003\005\006\007!%&#/?,:;<=>@`^~_{}+-*ABCDEFGHIJKMNOPQRSTUVWXYZabcdefgjkoqrstwxyz";
33: *s; s++)
34: {
35: if (had[*s]==0)
36: {
37: F1= *s;
38: had[F1]=1;
39: break;
40: }
41: }
42: /* choose second funny character */
43: for(
44: s="\002\003\005\006\007:_~^`@;,<=>#%&!/?{}+-*ABCDEFGHIJKMNOPQRSTUVWXZabcdefgjkoqrstuwxyz";
45: *s; s++)
46: {
47: if (had[*s]==0)
48: {
49: F2= *s;
50: break;
51: }
52: }
53: if (F1==0 || F2==0)
54: error("couldn't find characters to use for delimiters");
55: return;
56: }
57: point(s)
58: {
59: return(s>= 128 || s<0);
60: }
Defined functions
point
defined in line
57; used 11 times