/* * Copyright 1991 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ /* * Copyright (c) 1980 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ #pragma ident "%Z%%M% %I% %E% SMI" /* tc.c: find character not in table to delimit fields */ # include "t..c" void choochar(void) { /* choose funny characters to delimit fields */ int had[128], ilin,icol, k; char *s; for(icol=0; icol<128; icol++) had[icol]=0; F1 = F2 = 0; for(ilin=0;ilin<nlin;ilin++) { if (instead[ilin]) continue; if (fullbot[ilin]) continue; for(icol=0; icol<ncol; icol++) { k = ctype(ilin, icol); if (k==0 || k == '-' || k == '=') continue; s = table[ilin][icol].col; if (point(s)) while (*s) { if (*s > 0 && (unsigned char)*s <= 127) had[*s++]=1; else s++; } s=table[ilin][icol].rcol; if (point(s)) while (*s) { if (*s > 0 && (unsigned char)*s <= 127) had[*s++]=1; else s++; } } } /* choose first funny character */ for( s="\002\003\005\006\007!%&#/?,:;<=>@`^~_{}+-*ABCDEFGHIJKMNOPQRSTUVWXYZabcdefgjkoqrstwxyz"; *s; s++) { if (had[*s]==0) { F1= *s; had[F1]=1; break; } } /* choose second funny character */ for( s="\002\003\005\006\007:_~^`@;,<=>#%&!/?{}+-*ABCDEFGHIJKMNOPQRSTUVWXZabcdefgjkoqrstuwxyz"; *s; s++) { if (had[*s]==0) { F2= *s; break; } } if (F1==0 || F2==0) error(gettext("couldn't find characters to use for delimiters")); return; } int point(int s) { return(s>= 128 || s<0); }