Hi Ralph, Branden, On 8/28/22 13:20, Alejandro Colomar wrote:
Hi Ralph,On 8/28/22 10:36, Ralph Corderoy wrote:Hi Alejandro,+DEFAULT_EQNFLAGS := -Tutf8...+DEFAULT_TROFFFLAGS += -Tutf8I'd have a variable set to ‘utf8’ to ease changing to another output device.Done; thanks! And as I said in another thread, I changed it back to ascii, since I noticed a problem with boxed tables (actually several).I noticed another issue: for some reason, the boxed tables are being generated wider than the terminal, exactly by one char. If I specify -rLL=80, the right edge of the box is placed at column 81; if I specify LL to be 72, the right edge of the box is at col 73.See the example below (I tweaked it to use 64 chars to overcome Thunderbird issues):$ tbl man3/err.3 \ | eqn -Tascii \ | troff -man -t -M ./etc/groff/tmac -m checkstyle -rCHECKSTYLE=3 \ -ww -Tascii -rLL=64n \ | grotty -c \ | col -b -x \ | (! grep -n '.\{64\}.') 21: noreturn void verr(int eval, const char *fmt, va_list args); 22: noreturn void verrx(int eval, const char *fmt, va_list args); 51: +-----------------------+---------------+----------------+ 52: |Interface | Attribute | Value | 53: +-----------------------+---------------+----------------+ 54: |err(), errx(), warn(), | Thread safety | MT-Safe locale | 55: |warnx(), verr(), | | | 56: |verrx(), vwarn(), | | | 57: |vwarnx() | | | 58: +-----------------------+---------------+----------------+ Do you know how I can fix that?
Hmmm, I've been testing things, and groff -rLL=78 behaves as MANWIDTH=80 man. That's weird. We come back to this 78 issue we didn't know exactly why it was there.
Searching through man-db's source code, it seems to confirm that subtraction:
alx@asus5775:~/src/cjwatson/man-db$ grepc get_line_length
./lib/linelength.h:23:
int get_line_length (void);
./lib/linelength.c:49:
int get_line_length (void)
{
const char *columns;
int width;
#ifdef TIOCGWINSZ
int dev_tty, tty_fd = -1;
#endif
if (line_length != -1)
return line_length;
line_length = 80;
columns = getenv ("MANWIDTH");
if (columns != NULL) {
width = atoi (columns);
if (width > 0)
return line_length = width;
}
[...]
}
alx@asus5775:~/src/cjwatson/man-db$ grepc get_roff_line_length
./src/man.c:651:
static int get_roff_line_length (void)
{
int line_length = cat_width ? cat_width : get_line_length ();
/* groff >= 1.18 defaults to 78. */
if ((!troff || ditroff) && line_length != 80) {
int length = line_length * 39 / 40;
if (length > line_length - 2)
return line_length - 2;
else
return length;
} else
return 0;
}
Cheers,
Alex
--
Alejandro Colomar
<http://www.alejandro-colomar.es/>
OpenPGP_signature
Description: OpenPGP digital signature
