gbranden pushed a commit to branch master
in repository groff.

commit 5b331789f741d77e6297bb1a539334f20e25da37
Author: G. Branden Robinson <[email protected]>
AuthorDate: Wed Dec 17 15:36:40 2025 -0600

    src/roff/troff/input.cpp: Slightly refactor.
    
    * src/roff/troff/input.cpp: Add new `const` global
      `default_escape_char`.  Initialize `escape_char` using it.
    
      (assign_escape_character): Use `default_escape_char` instead of a `\\`
      character literal.
---
 ChangeLog                |  7 +++++++
 src/roff/troff/input.cpp | 12 ++++++------
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 545398083..fc121d210 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2025-12-17  G. Branden Robinson <[email protected]>
+
+       * src/roff/troff/input.cpp: Add new `const` global
+       `default_escape_char`.  Initialize `escape_char` using it.
+       (assign_escape_character): Use `default_escape_char` instead of
+       a `\\` character literal.
+
 2025-12-13  G. Branden Robinson <[email protected]>
 
        * src/roff/troff/input.cpp (process_input_stack): Emit warning
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 2a6f51577..91986e242 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -113,8 +113,6 @@ static bool want_input_ignored = false;
 static void enable_warning(const char *);
 static void disable_warning(const char *);
 
-static unsigned char escape_char = (unsigned char)('\\');
-
 static symbol end_of_input_macro_name;
 static symbol blank_line_macro_name;
 static symbol leading_spaces_macro_name;
@@ -192,6 +190,8 @@ const char *input_char_description(int);
 void process_input_stack();
 void chop_macro();     // declare to avoid friend name injection
 
+static const unsigned char default_escape_char = (unsigned char)('\\');
+static unsigned char escape_char = default_escape_char;
 
 static void assign_escape_character()
 {
@@ -204,7 +204,7 @@ static void assign_escape_character()
       ec = tok.ch();
   }
   else
-    ec = '\\';
+    ec = default_escape_char;
   bool do_nothing = false;
   static const char already_cc[] = "the control character is already";
   static const char already_nbcc[] = "the no-break control character is"
@@ -223,9 +223,9 @@ static void assign_escape_character()
          is_invalid ? "cannot select invalid escape character, and"
          : "", already_message, input_char_description(ec));
   else if (is_invalid) {
-    error("cannot select %1 as escape character; using '\\'",
-         tok.description());
-    escape_char = '\\';
+    error("cannot select %1 as escape character; using '%2'",
+         tok.description(), char(default_escape_char));
+    escape_char = default_escape_char;
   }
   else
     escape_char = ec;

_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to