diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2020-10-25 18:28:23 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2020-10-25 18:28:23 +0000 |
commit | 4ed1fb98a08fde2605fdf2b82c057d300f52d683 (patch) | |
tree | ee2ed9617f16d684cd288a5114ce4b592b9f150a | |
parent | d795180ba82e3803716976abe8f023462d0c1576 (diff) | |
download | mandoc-4ed1fb98a08fde2605fdf2b82c057d300f52d683.tar.gz |
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.54 (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.54 is sufficient in mandoc.
Also adjust the desired output of the regression tests
to match the new behaviour of both groff and mandoc.
-rw-r--r-- | regress/tbl/data/block_width.out_ascii | 2 | ||||
-rw-r--r-- | regress/tbl/layout/center.out_ascii | 2 | ||||
-rw-r--r-- | regress/tbl/layout/spacing.out_ascii | 2 | ||||
-rw-r--r-- | regress/tbl/layout/span.out_ascii | 2 | ||||
-rw-r--r-- | regress/tbl/mod/expand.out_ascii | 2 | ||||
-rw-r--r-- | regress/tbl/mod/font.out_ascii | 2 | ||||
-rw-r--r-- | tbl_term.c | 11 |
7 files changed, 6 insertions, 17 deletions
diff --git a/regress/tbl/data/block_width.out_ascii b/regress/tbl/data/block_width.out_ascii index 7058f54e..6600b7c0 100644 --- a/regress/tbl/data/block_width.out_ascii +++ b/regress/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/tbl/layout/center.out_ascii b/regress/tbl/layout/center.out_ascii index 3196fff6..80e48d54 100644 --- a/regress/tbl/layout/center.out_ascii +++ b/regress/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/tbl/layout/spacing.out_ascii b/regress/tbl/layout/spacing.out_ascii index 3d51d7d5..5eba1d80 100644 --- a/regress/tbl/layout/spacing.out_ascii +++ b/regress/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/tbl/layout/span.out_ascii b/regress/tbl/layout/span.out_ascii index bc4badca..83d163f2 100644 --- a/regress/tbl/layout/span.out_ascii +++ b/regress/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/tbl/mod/expand.out_ascii b/regress/tbl/mod/expand.out_ascii index 41bf9869..6feeee25 100644 --- a/regress/tbl/mod/expand.out_ascii +++ b/regress/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/tbl/mod/font.out_ascii b/regress/tbl/mod/font.out_ascii index 4e431870..3a6ca0d9 100644 --- a/regress/tbl/mod/font.out_ascii +++ b/regress/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 @@ -190,17 +190,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; |