gbranden pushed a commit to branch master
in repository groff.
commit 0d4c54e491d884dd9d5d0524a33f53d6496ddc14
Author: G. Branden Robinson <[email protected]>
AuthorDate: Mon Aug 11 18:36:49 2025 -0500
[tbl]: Refactor horizontal rule generation.
* src/preproc/tbl/table.cpp (table::print_single_hrule): Clarify
generated *roff logic by restricting performance operations that are
no-ops in nroff mode (type size changes and quarter-vee vertical
motions) to when the `t` *roff condition is true.
---
ChangeLog | 8 ++++++++
src/preproc/tbl/table.cpp | 11 +++++++----
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 1248b6561..aa5bc41c7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2025-08-11 G. Branden Robinson <[email protected]>
+
+ * src/preproc/tbl/table.cpp (table::print_single_hrule):
+ Refactor. Clarify generated *roff logic by restricting
+ performance operations that are no-ops in nroff mode (type size
+ changes and quarter-vee vertical motions) to when the `t` *roff
+ condition is true.
+
2025-08-11 G. Branden Robinson <[email protected]>
* tmac/s.tmac: Trivially refactor.
diff --git a/src/preproc/tbl/table.cpp b/src/preproc/tbl/table.cpp
index 80759ca55..e19c921fe 100644
--- a/src/preproc/tbl/table.cpp
+++ b/src/preproc/tbl/table.cpp
@@ -2553,11 +2553,12 @@ void table::compute_widths()
void table::print_single_hrule(int r)
{
prints(".vs " LINE_SEP ">?\\n[.V]u\n"
- ".ls 1\n"
+ ".ls 1\n");
+ prints(".if t "
"\\v'" BODY_DEPTH "'"
- "\\s[\\n[" LINESIZE_REG "]]");
+ "\\s[\\n[" LINESIZE_REG "]]\\c\n");
if (r > nrows - 1)
- prints("\\D'l |\\n[TW]u 0'");
+ prints("\\D'l |\\n[TW]u 0'\\c");
else {
int start_col = 0;
for (;;) {
@@ -2589,7 +2590,9 @@ void table::print_single_hrule(int r)
start_col = end_col;
}
}
- prints("\\s0\n");
+ prints("\\c\n");
+ prints(".ie t \\s0\n"
+ ".el \\&\n");
prints(".ls\n"
".vs\n");
}
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit