Update of bug #68832 (group groff):
Planned Release: None => 1.25.0
Summary: [troff] assertion failure when escape squence with
deprecated delimiter follows unterminated delimited escape sequence => [PATCH]
[troff] assertion failure when escape squence with deprecated delimiter
follows unterminated delimited esc seq
_______________________________________________________
Follow-up Comment #1:
The cause of this was a logic error arising from copy-and-pasting.
commit 37d7129d53a073e3cbf8534d2d075bea01a8d45e
Author: G. Branden Robinson <[email protected]>
Date: Sun Oct 25 00:07:27 2026 -0500
src/roff/troff/input.cpp: Fix misleading warnings.
* src/roff/troff/input.cpp (do_overstrike, do_bracket)
(do_name_test, do_zero_width_output, do_register)
(read_title_parts, do_device_extension, read_drawing_command):
Fix misleading warnings in category "delim"; when reporting use of a
deprecated delimiter, identify the correct token as deprecated.
diff --git a/ChangeLog b/ChangeLog
index c488e2c38..49dd747e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2026-10-25 G. Branden Robinson <[email protected]>
+
+ * src/roff/troff/input.cpp (do_overstrike, do_bracket)
+ (do_name_test, do_zero_width_output, do_register)
+ (read_title_parts, do_device_extension, read_drawing_command):
+ Fix misleading warnings in category "delim"; when reporting use
+ of a deprecated delimiter, identify the correct token as
+ deprecated.
+
2026-10-23 G. Branden Robinson <[email protected]>
* src/preproc/tbl/table.cpp (table::add_entry): Fix duplicative
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 75940d503..28747aaee 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -1780,7 +1780,7 @@ node *do_overstrike() // \o
start_token.next();
if (!want_att_compat && !start_token.is_usable_as_delimiter())
warning(WARN_DELIM, "using %1 as an escape sequence delimiter"
- " is deprecated", tok.description());
+ " is deprecated", start_token.description());
else if (want_att_compat
&& !start_token.is_usable_as_delimiter(false,
DELIMITER_ATT_STRING_EXPRESSION)) {
@@ -1846,7 +1846,7 @@ static node *do_bracket() // \b
start_token.next();
if (!want_att_compat && !start_token.is_usable_as_delimiter())
warning(WARN_DELIM, "using %1 as an escape sequence delimiter"
- " is deprecated", tok.description());
+ " is deprecated", start_token.description());
else if (want_att_compat
&& !start_token.is_usable_as_delimiter(false,
DELIMITER_ATT_STRING_EXPRESSION)) {
@@ -1903,7 +1903,7 @@ static const char *do_name_test() // \A
start_token.next();
if (!want_att_compat && !start_token.is_usable_as_delimiter())
warning(WARN_DELIM, "using %1 as an escape sequence delimiter"
- " is deprecated", tok.description());
+ " is deprecated", start_token.description());
else if (want_att_compat
&& !start_token.is_usable_as_delimiter(false,
DELIMITER_ATT_STRING_EXPRESSION)) {
@@ -2038,7 +2038,7 @@ static node *do_zero_width_output() // \Z
start_token.next();
if (!want_att_compat && !start_token.is_usable_as_delimiter())
warning(WARN_DELIM, "using %1 as an escape sequence delimiter"
- " is deprecated", tok.description());
+ " is deprecated", start_token.description());
else if (want_att_compat
&& !start_token.is_usable_as_delimiter(false,
DELIMITER_ATT_STRING_EXPRESSION)) {
@@ -6607,7 +6607,7 @@ static void do_register() // \R
start_token.next();
if (!want_att_compat && !start_token.is_usable_as_delimiter())
warning(WARN_DELIM, "using %1 as an escape sequence delimiter"
- " is deprecated", tok.description());
+ " is deprecated", start_token.description());
else if (want_att_compat
&& !start_token.is_usable_as_delimiter(false,
DELIMITER_ATT_STRING_EXPRESSION)) {
@@ -6722,7 +6722,7 @@ void read_title_parts(node **part, hunits *part_width)
token start(tok);
if (!want_att_compat && !tok.is_usable_as_delimiter())
warning(WARN_DELIM, "using %1 as a title request delimiter"
- " is deprecated", tok.description());
+ " is deprecated", start.description());
int start_level = input_stack::get_level();
tok.next();
for (int i = 0; i < 3; i++) {
@@ -6979,7 +6979,7 @@ static node *do_device_extension() // \X
start_token.next();
if (!want_att_compat && !start_token.is_usable_as_delimiter())
warning(WARN_DELIM, "using %1 as an escape sequence delimiter"
- " is deprecated", tok.description());
+ " is deprecated", start_token.description());
else if (want_att_compat
&& !start_token.is_usable_as_delimiter(false,
DELIMITER_ATT_STRING_EXPRESSION)) {
@@ -10745,7 +10745,7 @@ static node *read_drawing_command() // \D
start_token.next();
if (!want_att_compat && !start_token.is_usable_as_delimiter())
warning(WARN_DELIM, "using %1 as an escape sequence delimiter"
- " is deprecated", tok.description());
+ " is deprecated", start_token.description());
else if (want_att_compat
&& !start_token.is_usable_as_delimiter(false,
DELIMITER_ATT_STRING_EXPRESSION)) {
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?68832>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
