gbranden pushed a commit to branch master
in repository groff.

commit f44c7170b6b7f6f70531b8df4067f5ecd6750a9e
Author: G. Branden Robinson <[email protected]>
AuthorDate: Sun Nov 23 15:58:51 2025 -0600

    src/roff/troff/input.cpp: Improve diagnostics.
    
    ...when user fumbles control character selections.
    
    * src/roff/troff/input.cpp (assign_control_character)
      (assign_no_break_control_character): Do it.
    
    Before:
    $ printf '.cc \\`\n.cc \\~\n.cc \\|\n' | groff
    troff:<standard input>:1: error: cannot select invalid control character; 
using '.'
    troff:<standard input>:2: error: cannot select invalid control character; 
using '.'
    troff:<standard input>:3: error: cannot select invalid control character; 
using '.'
    $ printf '.c2 \\`\n.c2 \\~\n.c2 \\|\n' | groff
    troff:<standard input>:1: error: cannot select invalid no-break control 
character; using "'"
    troff:<standard input>:2: error: cannot select invalid no-break control 
character; using "'"
    troff:<standard input>:3: error: cannot select invalid no-break control 
character; using "'"
    
    After:
    $ printf '.cc \\`\n.cc \\~\n.cc \\|\n' | ./build/test-groff
    troff:<standard input>:1: error: cannot select special character 'ga' as 
control character; using '.'
    troff:<standard input>:2: error: cannot select an escaped '~' as control 
character; using '.'
    troff:<standard input>:3: error: cannot select a horizontal motion as 
control character; using '.'
    $ printf '.c2 \\`\n.c2 \\~\n.c2 \\|\n' | ./build/test-groff
    troff:<standard input>:1: error: cannot select special character 'ga' as 
no-break control character; using "'"
    troff:<standard input>:2: error: cannot select an escaped '~' as no-break 
control character; using "'"
    troff:<standard input>:3: error: cannot select a horizontal motion as 
no-break control character; using "'"
---
 ChangeLog                | 6 ++++++
 src/roff/troff/input.cpp | 7 ++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4a730f06d..309bc9602 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2025-11-23  G. Branden Robinson <[email protected]>
+
+       * src/roff/troff/input.cpp (assign_control_character)
+       (assign_no_break_control_character): Improve diagnostics when
+       user fumbles control character selections.
+
 2025-11-23  G. Branden Robinson <[email protected]>
 
        * src/roff/troff/input.cpp (assign_escape_character): Improve
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 931e4b089..223f7db55 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -278,7 +278,8 @@ void assign_control_character()
          is_invalid ? "cannot select invalid control character, and"
          : "", already_message, input_char_description(cc));
   else if (is_invalid) {
-    error("cannot select invalid control character; using '.'");
+    error("cannot select %1 as control character; using '.'",
+         tok.description());
     assert(curenv->set_control_character('.'));
   }
   else
@@ -316,8 +317,8 @@ void assign_no_break_control_character()
                       " character, and"
          : "", already_message, input_char_description(nbcc));
   else if (is_invalid) {
-    error("cannot select invalid no-break control character;"
-         " using \"\'\"");
+    error("cannot select %1 as no-break control character;"
+         " using \"\'\"", tok.description());
     assert(curenv->set_no_break_control_character('\''));
   }
   else

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

Reply via email to