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