Follow-up Comment #5, bug #49390 (project groff):

Here are some exhibits.  The first is a very simple reproducer for the
reported problem; the second illustrates that the same problem does _not_
occur when an unboxed table ends with a horizontal rule at the bottom, which
one might suspect could happen.


$ cat EXPERIMENTS/sayama-simpler.roff 
foo
.TS
box;
L.
bar
.TE
baz
.pl \n(nlu
$ nroff -t -Tascii EXPERIMENTS/sayama-simpler.roff 
foo
+----+
|bar |
baz--+
$ cat EXPERIMENTS/sayama-with-rule.roff
foo
.TS
L.
bar
_
.TE
baz
.pl \n(nlu
$ tgu -t -Tascii EXPERIMENTS/sayama-with-rule.roff 
foo
bar
----
baz


We also see evidence of bug #62471, which vexes me and appears quite difficult
to address.

The fix for this, however, is straightforward.


diff --git a/src/preproc/tbl/table.cpp b/src/preproc/tbl/table.cpp
index 18cee1e92..dcf77b05d 100644
--- a/src/preproc/tbl/table.cpp
+++ b/src/preproc/tbl/table.cpp
@@ -3025,6 +3025,11 @@ void table::do_bottom()
           ".\\}\n");
   if (flags & DOUBLEBOX)
     prints(".sp " DOUBLE_LINE_SEP "\n");
+  // Horizontal box lines take up an entire row on nroff devices (maybe
+  // a half-row if we ever support [emulators of] devices like the
+  // Teletype Model 37 with half-line motions).
+  if (flags & (BOX | DOUBLEBOX | ALLBOX))
+    prints(".if n .sp\n");
   prints("." RESET_MACRO_NAME "\n"
         ".fc\n"
         ".cp \\n(" COMPATIBLE_REG "\n");



    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?49390>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/


Reply via email to