groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[groff] 10/27: [troff]: Trivially refactor; add utility function.


From: G. Branden Robinson
Subject: [groff] 10/27: [troff]: Trivially refactor; add utility function.
Date: Mon, 28 Aug 2023 15:54:47 -0400 (EDT)

gbranden pushed a commit to branch master
in repository groff.

commit f8cecaabd575908cf338635d95a094d95f07c41d
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Sun Aug 27 11:51:29 2023 -0500

    [troff]: Trivially refactor; add utility function.
    
    * src/roff/troff/node.cpp (is_nonnegative_integer): New function tests
      C-style string for validity as such; promoted from open code because I
      just spotted a second place we can use it.
---
 ChangeLog               |  8 ++++++++
 src/roff/troff/node.cpp | 10 +++++++---
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3a3cd14e0..00ea9ab99 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2023-08-27  G. Branden Robinson <g.branden.robinson@gmail.com>
+
+       [troff]: Trivially refactor; add utility function.
+
+       * src/roff/troff/node.cpp (is_nonnegative_integer): New function
+       tests C-style string for validity as such; promoted from open
+       code because I just spotted a second place we can use it.
+
 2023-08-27  G. Branden Robinson <g.branden.robinson@gmail.com>
 
        [troff]: Trivially refactor; demote `int`-returning functions to
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp
index 74972eba0..dd2ea79bc 100644
--- a/src/roff/troff/node.cpp
+++ b/src/roff/troff/node.cpp
@@ -6027,6 +6027,12 @@ bool mount_style(int n, symbol name)
   return true;
 }
 
+// True for valid (not necessarily used) font mounting positions.
+static bool is_nonnegative_integer(const char *str)
+{
+  return strspn(str, "0123456789") == strlen(str);
+}
+
 static void translate_font()
 {
   symbol from = get_name(true /* required */);
@@ -6317,9 +6323,7 @@ static void zoom_font()
   }
   symbol font_name = get_name();
   assert(font_name != 0 /* nullptr */); // has_arg() should ensure this
-  // XXX: What other requests demand an argument with this constraint?
-  if (strspn(font_name.contents(), "0123456789")
-      == strlen(font_name.contents())) {
+  if (is_nonnegative_integer(font_name.contents())) {
     warning(WARN_FONT, "cannot set zoom factor of a font mounting"
            " position");
     skip_line();



reply via email to

[Prev in Thread] Current Thread [Next in Thread]