gbranden pushed a commit to branch master
in repository groff.

commit 2bd122bf56ecb688a2612fade02643c9db27feef
Author: G. Branden Robinson <[email protected]>
AuthorDate: Sat Aug 17 10:48:36 2024 -0500

    [troff]: Fix Savannah #64240 (warn of nr garbage).
    
    * src/roff/troff/reg.cpp (define_register): Warn when garbage
      encountered in numeric expression argument to `nr` request.
    
    Fixes <https://savannah.gnu.org/bugs/?64240>.
---
 ChangeLog              |  7 +++++++
 src/roff/troff/reg.cpp | 10 ++++++++--
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b02984a32..71794ad5d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2024-08-17  G. Branden Robinson <[email protected]>
+
+       * src/roff/troff/reg.cpp (define_register): Warn when garbage
+       encountered in numeric expression argument to `nr` request.
+
+       Fixes <https://savannah.gnu.org/bugs/?64240>.
+
 2024-08-17  G. Branden Robinson <[email protected]>
 
        [troff]: Trivially refactor.  Rename `get_number()` to
diff --git a/src/roff/troff/reg.cpp b/src/roff/troff/reg.cpp
index 7daf30912..57f10b5a7 100644
--- a/src/roff/troff/reg.cpp
+++ b/src/roff/troff/reg.cpp
@@ -323,8 +323,14 @@ void define_register()
       register_dictionary.define(nm, r);
     }
     r->set_value(v);
-    if (tok.is_space() && has_arg() && read_measurement(&v, 'u'))
-      r->set_increment(v);
+    if (tok.is_space()) {
+      if (has_arg() && read_measurement(&v, 'u'))
+       r->set_increment(v);
+    }
+    else if (has_arg() && !tok.is_tab())
+      warning(WARN_SYNTAX, "expected end of line or an auto-increment"
+             " argument in register definition request; got %1",
+             tok.description());
   }
   skip_line();
 }

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

Reply via email to