Let's try this. It's BUGGERED.
This commit is contained in:
parent
76e6aca867
commit
5cedca1b69
118 changed files with 26947 additions and 1 deletions
65
src/cmd/tbl/tc.c
Normal file
65
src/cmd/tbl/tc.c
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
/* 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);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue