1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /* tc.c: find character not in table to delimit fields */
- # include "t.h"
- 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)
- had[*s++] = 1;
- s = table[ilin][icol].rcol;
- if (point(s))
- while (*s)
- had[*s++] = 1;
- }
- }
- /* 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("couldn't find characters to use for delimiters");
- return;
- }
- int
- point(char *s)
- {
- int ss = (int)s;
- return(ss >= 128 || ss < 0);
- }
|