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/

Attachment: signature.asc
Description: PGP signature

Reply via email to