[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[groff] 14/14: [tbl]: Fix Savannah #65225.
From: |
G. Branden Robinson |
Subject: |
[groff] 14/14: [tbl]: Fix Savannah #65225. |
Date: |
Mon, 29 Jan 2024 21:13:49 -0500 (EST) |
gbranden pushed a commit to branch master
in repository groff.
commit 6a99160c8359aff04880295c6d37586e80298f5a
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Mon Jan 29 19:46:48 2024 -0600
[tbl]: Fix Savannah #65225.
* src/preproc/tbl/table.cpp (table::add_entry): Fix regression in
repeated glyph tbl(1) feature (`\R`), rendering it inoperative.
Problem introduced by me in commit 4f4b79b8aa, 26 April 2022. Restore
logic to handle this table entry type. Also throw new error
diagnostic if the repeated glyph token appears with no argument. Also
improve code style by reusing variable with already-computed entry
string length instead of calculating it again.
Fixes <https://savannah.gnu.org/bugs/?65225>. Thanks to the anonymous
submitter for a reproducing case and a correct suggestion of the
offending commit.
---
ChangeLog | 17 +++++++++++++++++
src/preproc/tbl/table.cpp | 10 ++++++++++
2 files changed, 27 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index ca17662f5..b2fa75e5e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2024-01-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix Savannah #65225.
+
+ * src/preproc/tbl/table.cpp (table::add_entry): Fix regression
+ in repeated glyph tbl(1) feature (`\R`), rendering it
+ inoperative. Problem introduced by me in commit 4f4b79b8aa, 26
+ April 2022. Restore logic to handle this table entry type.
+ Also throw new error diagnostic if the repeated glyph token
+ appears with no argument. Also improve code style by reusing
+ variable with already-computed entry string length instead of
+ calculating it again.
+
+ Fixes <https://savannah.gnu.org/bugs/?65225>. Thanks to the
+ anonymous submitter for a reproducing case and a correct
+ suggestion of the offending commit.
+
2024-01-29 G. Branden Robinson <g.branden.robinson@gmail.com>
[tbl]: Regression-test Savannah #65225.
diff --git a/src/preproc/tbl/table.cpp b/src/preproc/tbl/table.cpp
index c3e65d429..3459e9276 100644
--- a/src/preproc/tbl/table.cpp
+++ b/src/preproc/tbl/table.cpp
@@ -1581,6 +1581,16 @@ void table::add_entry(int r, int c, const string &str,
else
do_vspan(r, c);
}
+ else if (strncmp(s, "\\R", 2) == 0) {
+ if (len < 3) {
+ error("'\\R' requires a glyph to repeat");
+ e = new empty_entry(this, f);
+ }
+ else {
+ char *glyph = str.substring(2, len - 2).extract();
+ e = new repeated_char_entry(this, f, glyph);
+ }
+ }
else {
int is_block = str.search('\n') >= 0;
switch (f->type) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [groff] 14/14: [tbl]: Fix Savannah #65225.,
G. Branden Robinson <=