From 3b935da7232977f452354ac7396b1428aa3e761e Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Sun, 25 Oct 2020 18:21:08 +0000 Subject: The GNU tbl(1) program contained in the groff package internally uses roff(7) tabulator settings to implement tables, and it used to leak the changed tabulator settings from tables to the subsequent roff(7) code. In mandoc/tbl_term.c rev. 1.42 (June 17, 2017), code was added to be bug-compatible with groff. In commit d0e03cf6 (Oct 20, 2020), GNU tbl(1) changed behaviour to save the tabulator settings before starting a table and restore them afterwards. Adjust mandoc for compatibility. Since mandoc implements tables without using roff(7) tabulator settings, saving and restoring tabulator settings is not needed in mandoc. Simply deleting the code that changed tabulator settings by reverting tbl_term.c rev. 1.42 is sufficient in mandoc. Also adjust the desired output of the regression tests to match the new behaviour of both groff and mandoc. --- regress/usr.bin/mandoc/tbl/data/block_width.out_ascii | 2 +- regress/usr.bin/mandoc/tbl/layout/center.out_ascii | 2 +- regress/usr.bin/mandoc/tbl/layout/spacing.out_ascii | 2 +- regress/usr.bin/mandoc/tbl/layout/span.out_ascii | 2 +- regress/usr.bin/mandoc/tbl/mod/expand.out_ascii | 2 +- regress/usr.bin/mandoc/tbl/mod/font.out_ascii | 2 +- usr.bin/mandoc/tbl_term.c | 13 +------------ 7 files changed, 7 insertions(+), 18 deletions(-) diff --git a/regress/usr.bin/mandoc/tbl/data/block_width.out_ascii b/regress/usr.bin/mandoc/tbl/data/block_width.out_ascii index 7058f54e14f..6600b7c0d23 100644 --- a/regress/usr.bin/mandoc/tbl/data/block_width.out_ascii +++ b/regress/usr.bin/mandoc/tbl/data/block_width.out_ascii @@ -61,6 +61,6 @@ DDEESSCCRRIIPPTTIIOONN | | | | | | | | 90 | +--+---+---+---+---+---+---+-----------+ leaked tab settings: - b c d e f g h + b c d e f g h OpenBSD July 4, 2017 OpenBSD diff --git a/regress/usr.bin/mandoc/tbl/layout/center.out_ascii b/regress/usr.bin/mandoc/tbl/layout/center.out_ascii index 3196fff6c17..80e48d545ee 100644 --- a/regress/usr.bin/mandoc/tbl/layout/center.out_ascii +++ b/regress/usr.bin/mandoc/tbl/layout/center.out_ascii @@ -18,7 +18,7 @@ DDEESSCCRRIIPPTTIIOONN ***** ***** ***** leaked tab settings: - a b c de + a b c de diff --git a/regress/usr.bin/mandoc/tbl/layout/spacing.out_ascii b/regress/usr.bin/mandoc/tbl/layout/spacing.out_ascii index 3d51d7d52a8..5eba1d80ecb 100644 --- a/regress/usr.bin/mandoc/tbl/layout/spacing.out_ascii +++ b/regress/usr.bin/mandoc/tbl/layout/spacing.out_ascii @@ -32,7 +32,7 @@ DDEESSCCRRIIPPTTIIOONN |a || b | +---++---+ leaked tab settings: - a b cdef + a b c d e f diff --git a/regress/usr.bin/mandoc/tbl/layout/span.out_ascii b/regress/usr.bin/mandoc/tbl/layout/span.out_ascii index bc4badca4da..83d163f2be0 100644 --- a/regress/usr.bin/mandoc/tbl/layout/span.out_ascii +++ b/regress/usr.bin/mandoc/tbl/layout/span.out_ascii @@ -37,7 +37,7 @@ DDEESSCCRRIIPPTTIIOONN |a | b | c | d | e | +--+---+---+---+---+ leaked tab settings: - a b c d e f + a b c d e f diff --git a/regress/usr.bin/mandoc/tbl/mod/expand.out_ascii b/regress/usr.bin/mandoc/tbl/mod/expand.out_ascii index 41bf9869d06..6feeee25256 100644 --- a/regress/usr.bin/mandoc/tbl/mod/expand.out_ascii +++ b/regress/usr.bin/mandoc/tbl/mod/expand.out_ascii @@ -97,7 +97,7 @@ DDEESSCCRRIIPPTTIIOONN x x x x x 123456789012345678901234567890123456789012 x leaked tab settings: - a b c d e f g h + a b c d e f g h diff --git a/regress/usr.bin/mandoc/tbl/mod/font.out_ascii b/regress/usr.bin/mandoc/tbl/mod/font.out_ascii index 4e43187012b..3a6ca0d9a0d 100644 --- a/regress/usr.bin/mandoc/tbl/mod/font.out_ascii +++ b/regress/usr.bin/mandoc/tbl/mod/font.out_ascii @@ -15,7 +15,7 @@ DDEESSCCRRIIPPTTIIOONN | _a_n_d | so | oonn | +-------+-------+--------+ leaked tab settings: - a b c de + a b c d e diff --git a/usr.bin/mandoc/tbl_term.c b/usr.bin/mandoc/tbl_term.c index 238bf7a762b..8f2d67c29d3 100644 --- a/usr.bin/mandoc/tbl_term.c +++ b/usr.bin/mandoc/tbl_term.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tbl_term.c,v 1.61 2020/01/11 16:24:33 schwarze Exp $ */ +/* $OpenBSD: tbl_term.c,v 1.62 2020/10/25 18:21:07 schwarze Exp $ */ /* * Copyright (c) 2009, 2011 Kristaps Dzonsons * Copyright (c) 2011-2020 Ingo Schwarze @@ -188,17 +188,6 @@ term_tbl(struct termp *tp, const struct tbl_span *sp) tblcalc(&tp->tbl, sp, tp->tcol->offset, tp->tcol->rmargin); - /* Tables leak .ta settings to subsequent text. */ - - term_tab_set(tp, NULL); - coloff = sp->opts->opts & (TBL_OPT_BOX | TBL_OPT_DBOX) || - sp->opts->lvert; - for (ic = 0; ic < sp->opts->cols; ic++) { - coloff += tp->tbl.cols[ic].width; - term_tab_iset(coloff); - coloff += tp->tbl.cols[ic].spacing; - } - /* Center the table as a whole. */ offset = tp->tcol->offset; -- cgit v1.2.3