[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Groff] Bug report: interaction between tbl and string variables
From: |
Ralph Corderoy |
Subject: |
Re: [Groff] Bug report: interaction between tbl and string variables |
Date: |
Tue, 04 Dec 2007 10:11:57 +0000 |
Hi Larry,
> As can be seen above, the page number is shifted improperly when its
> string name contains numerals.
It's something to do with tbl not correctly copying the whole string
register name into the troff output. Consider
$ cat foo.tbl
.TS
expand;
l n .
one \*[aaaXbbb]
two \*[ccc1ddd]
.TE
$
$ tbl foo.tbl | g 'aaa|bbb|ccc|ddd' | cat -A
.nr 3w1 \n[3w1]>?\w\[tbl]\*[aaaXbbb]\[tbl]$
.nr 3tbw1,1 0\w\[tbl]\*[ccc1\[tbl]$
.nr 3rnw1 \n[3rnw1]>?\w\[tbl]ddd]\[tbl]$
\&\h'|\n[3cl0]u'one\h'|\n[3cl1]u'^B^C\*[aaaXbbb]^C^B$
\&\h'|\n[3cl0]u'two\h'|(\n[3w1]u-\n[3lnw1]u-\n[3rnw1]u/2u+\n[3lnw1]u+\n[3cl1]u-\n[3tbw1,1]u)'\*[ccc1ddd]$
$
\*[aaaXbbb] is always passed through but \*[ccc1ddd] is split into
\*[ccc1 (no closing bracket) and ddd] when working out widths. A
similar thing happens with \(z9 and \(9z.
Given tbl is a preprocessor and looks at the text you give to work out
alignment, it's probably not surprising? I suppose tbl's logic could
become troff logic that was evaluated later, when the contents of string
registers are known. This would be a change in behaviour though.
Cheers,
Ralph.