commit - 71e936d7166b088aa3e2ec55d14b53cb2a3ac5ec
commit + a5f3a00bcd0452d78afc5d8064da611d4b448093
blob - a78368fcc564fb2cc8e3b79b3afc1fc60a19f311
blob + 463bfa1070d4f8246644c028d7a0ae6548d2907f
--- src/cmd/tbl/t6.c
+++ src/cmd/tbl/t6.c
void
maktab(void) /* define the tab stops of the table */
{
- int icol, ilin, tsep, k, ik, vforml, il, text;
- char *s;
+ int icol, ilin, tsep, k, ik, vforml, il, s, text;
+ char *ss;
for (icol = 0; icol < ncol; icol++) {
doubled[icol] = acase[icol] = 0;
switch (ctype(vforml, icol)) {
case 'a':
acase[icol] = 1;
- s = table[ilin][icol].col;
- if ((int)s > 0 && (int)s < 128 && text) {
+ ss = table[ilin][icol].col;
+ s = (int)(uintptr)ss;
+ if (s > 0 && s < 128 && text) {
if (doubled[icol] == 0)
Bprint(&tabout, ".nr %d 0\n.nr %d 0\n",
S1, S2);
doubled[icol] = 1;
Bprint(&tabout, ".if \\n(%c->\\n(%d .nr %d \\n(%c-\n",
- (int)s, S2, S2, (int)s);
+ s, S2, S2, s);
}
case 'n':
if (table[ilin][icol].rcol != 0) {
Bprint(&tabout, ".nr %d 0\n.nr %d 0\n",
S1, S2);
doubled[icol] = 1;
- if (real(s = table[ilin][icol].col) && !vspen(s)) {
- if (tx((int)s) != text)
+ if (real(ss = table[ilin][icol].col) && !vspen(ss)) {
+ s = (int)(uintptr)ss;
+ if (tx(s) != text)
continue;
Bprint(&tabout, ".nr %d ", TMP);
- wide(s, FN(vforml, icol), SZ(vforml, icol));
+ wide(ss, FN(vforml, icol), SZ(vforml, icol));
Bprint(&tabout, "\n");
Bprint(&tabout, ".if \\n(%d<\\n(%d .nr %d \\n(%d\n",
S1, TMP, S1, TMP);
}
- if (text == 0 && real(s = table[ilin][icol].rcol) && !vspen(s) && !barent(s)) {
+ if (text == 0 && real(ss = table[ilin][icol].rcol) && !vspen(ss) && !barent(ss)) {
Bprint(&tabout, ".nr %d \\w%c%s%c\n",
- TMP, F1, s, F1);
+ TMP, F1, ss, F1);
Bprint(&tabout, ".if \\n(%d<\\n(%d .nr %d \\n(%d\n", S2, TMP, S2,
TMP);
}
case 'r':
case 'c':
case 'l':
- if (real(s = table[ilin][icol].col) && !vspen(s)) {
- if (tx((int)s) != text)
+ if (real(ss = table[ilin][icol].col) && !vspen(ss)) {
+ s = (int)(uintptr)ss;
+ if (tx(s) != text)
continue;
Bprint(&tabout, ".nr %d ", TMP);
- wide(s, FN(vforml, icol), SZ(vforml, icol));
+ wide(ss, FN(vforml, icol), SZ(vforml, icol));
Bprint(&tabout, "\n");
Bprint(&tabout, ".if \\n(%2s<\\n(%d .nr %2s \\n(%d\n",
reg(icol, CRIGHT), TMP, reg(icol, CRIGHT), TMP);
}
for (ilin = 0; ilin < nlin; ilin++)
if (k = lspan(ilin, icol)) {
- s = table[ilin][icol-k].col;
- if (!real(s) || barent(s) || vspen(s) )
+ ss = table[ilin][icol-k].col;
+ if (!real(ss) || barent(ss) || vspen(ss) )
continue;
Bprint(&tabout, ".nr %d ", TMP);
wide(table[ilin][icol-k].col, FN(ilin, icol - k), SZ(ilin, icol - k));
putsize("0");
Bprint(&tabout, "%c", F1);
} else
- Bprint(&tabout, "\\n(%c-", (int)s);
+ Bprint(&tabout, "\\n(%c-", (int)(uintptr)s);
}
blob - 92277e2a8c4453ba7654c789acba4176f76a2328
blob + bfa21ecffee60452851ca7c81923daf7f5e46729
--- src/cmd/tbl/t8.c
+++ src/cmd/tbl/t8.c
/* i is line number for deciding format */
/* nl is line number for finding data usually identical */
{
- int c, lf, ct, form, lwid, vspf, ip, cmidx, exvspen, vforml;
+ int c, s, lf, ct, form, lwid, vspf, ip, cmidx, exvspen, vforml;
int vct, chfont, uphalf;
- char *s, *size, *fn, *rct;
+ char *ss, *size, *fn, *rct;
cmidx = watchout = vspf = exvspen = 0;
if (i == 0)
fullwide(0, dboxflg ? '=' : '-');
if (instead[nl] == 0 && fullbot[nl] == 0)
for (c = 0; c < ncol; c++) {
- s = table[nl][c].col;
- if (s == 0)
+ ss = table[nl][c].col;
+ if (ss == 0)
continue;
- if (vspen(s)) {
+ if (vspen(ss)) {
for (ip = nl; ip < nlin; ip = next(ip))
- if (!vspen(s = table[ip][c].col))
+ if (!vspen(ss = table[ip][c].col))
break;
- if ((int)s > 0 && (int)s < 128)
+ s = (int)(uintptr)ss;
+ if (s > 0 && s < 128)
Bprint(&tabout, ".ne \\n(%c|u+\\n(.Vu\n", (int)s);
continue;
}
- if (point(s))
+ if (point(ss))
continue;
- Bprint(&tabout, ".ne \\n(%c|u+\\n(.Vu\n", (int)s);
+ s = (int)(uintptr)ss;
+ Bprint(&tabout, ".ne \\n(%c|u+\\n(.Vu\n", s);
watchout = 1;
}
if (linestop[nl])
vspf = 0;
chfont = 0;
for (c = 0; c < ncol; c++) {
- s = table[nl][c].col;
- if (s == 0)
+ ss = table[nl][c].col;
+ if (ss == 0)
continue;
- chfont |= (int)(font[c][stynum[nl]]);
- if (point(s) )
+ if(font[c][stynum[nl]])
+ chfont = 1;
+ if (point(ss) )
continue;
+ s = (int)(uintptr)ss;
lf = prev(nl);
if (lf >= 0 && vspen(table[lf][c].col))
Bprint(&tabout,
".if (\\n(%c|+\\n(^%c-1v)>\\n(#- .nr #- +(\\n(%c|+\\n(^%c-\\n(#--1v)\n",
- (int)s, 'a' + c, (int)s, 'a' + c);
+ s, 'a' + c, s, 'a' + c);
else
Bprint(&tabout,
".if (\\n(%c|+\\n(#^-1v)>\\n(#- .nr #- +(\\n(%c|+\\n(#^-\\n(#--1v)\n",
rct = reg(c, CMID);
Bprint(&tabout, "\\h'|\\n(%2su'", rct);
}
- s = table[nl][c].col;
+ ss = table[nl][c].col;
fn = font[c][stynum[vforml]];
size = csize[c][stynum[vforml]];
if (*size == 0)
Bprint(&tabout, "%c%c", F1, F2);
if (uphalf)
Bprint(&tabout, "\\u");
- puttext(s, fn, size);
+ puttext(ss, fn, size);
if (uphalf)
Bprint(&tabout, "\\d");
Bprint(&tabout, "%c", F1);
}
- s = table[nl][c].rcol;
+ ss = table[nl][c].rcol;
form = 1;
break;
}
}
if (realsplit ? rused[c] : used[c]) /*Zero field width*/ {
/* form: 1 left, 2 right, 3 center adjust */
- if (ifline(s)) {
- makeline(i, c, ifline(s));
+ if (ifline(ss)) {
+ makeline(i, c, ifline(ss));
continue;
}
- if (filler(s)) {
- Bprint(&tabout, "\\l'|\\n(%2su\\&%s'", reg(c, CRIGHT), s + 2);
+ if (filler(ss)) {
+ Bprint(&tabout, "\\l'|\\n(%2su\\&%s'", reg(c, CRIGHT), ss + 2);
continue;
}
ip = prev(nl);
Bprint(&tabout, "%c", F1);
if (form != 1)
Bprint(&tabout, "%c", F2);
- if (vspen(s))
+ if (vspen(ss))
vspf = 1;
else
{
if (uphalf)
Bprint(&tabout, "\\u");
- puttext(s, fn, size);
+ puttext(ss, fn, size);
if (uphalf)
Bprint(&tabout, "\\d");
}
continue;
if (ss == 0)
continue;
- s = (int)ss;
+ s = (int)(uintptr)ss;
Bprint(&tabout, ".sp |\\n(##u-1v\n");
Bprint(&tabout, ".nr %d ", SIND);
ct = 0;
blob - 6323c267b090ab0e2b4237ee3c8f2fcc2b0c5515
blob + a89fc0f0415ac4d31b5b9c357981bf666e139a31
--- src/cmd/tbl/tc.c
+++ src/cmd/tbl/tc.c
choochar(void)
{
/* choose funny characters to delimit fields */
- int had[128], ilin, icol, k;
+ int had[256], ilin, icol, k;
char *s;
for (icol = 0; icol < 128; icol++)
int
-point(char *s)
+point(char *ss)
{
- int ss = (int)s;
- return(ss >= 128 || ss < 0);
+ int s = (int)(uintptr)ss;
+ return(s >= 128 || s < 0);
}
blob - 6abb149081ca6383bd67ce17ffd4af57191e2453
blob + 3afc88c688965e62c8ea9812285d3afcb70ae691
--- src/cmd/tbl/tg.c
+++ src/cmd/tbl/tg.c
{
/* get a section of text */
char line[4096];
- int oname;
+ int oname, startline;
char *vs;
+ startline = iline;
if (texname == 0)
error("Too many text block diversions");
if (textflg == 0) {
if (ctype(ilin, icol) == 'a')
Bprint(&tabout, ".ll -2n\n");
Bprint(&tabout, ".in 0\n");
- while (gets1(line, sizeof(line))) {
+ for (;;) {
+ if (gets1(line, sizeof(line)) == nil) {
+ iline = startline;
+ error("missing closing T}");
+ }
if (line[0] == 'T' && line[1] == '}' && line[2] == tab)
break;
if (match("T}", line))
blob - 8fa4e497222abd7fcd085cc1a5445d7a1c2bdfb7
blob + 5b58f0d1bb82e806a4ed42aab6f4f63aa4b36805
--- src/cmd/tbl/tm.c
+++ src/cmd/tbl/tm.c
maknew(char *str)
{
/* make two numerical fields */
- int dpoint, c;
- char *p, *q, *ba;
+ int c;
+ char *p, *q, *ba, *dpoint;
p = str;
for (ba = 0; c = *str; str++)
if (*str == '.' && !ineqn(str, p) &&
(str > p && digit(*(str - 1)) ||
digit(*(str + 1))))
- dpoint = (int)str;
+ dpoint = str;
}
if (dpoint == 0)
for (; str > p; str--) {
if (!dpoint && p == str) /* not numerical, don't split */
return(0);
if (dpoint)
- str = (char *)dpoint;
+ str = dpoint;
} else
str = ba;
p = str;