gbranden pushed a commit to branch master
in repository groff.

commit 8ae24e2dbe20a1aeb45ff154f5ae62be9e8b2efc
Author: G. Branden Robinson <[email protected]>
AuthorDate: Sat Mar 28 15:01:28 2026 -0500

    src/roff/troff/reg.cpp: Trivially refactor.
    
    * src/roff/troff/reg.cpp (number_value_to_ascii): Rename cryptic local
      `s` to `roman_numerals`.  Also parenthesize formally complex
      expression.
---
 ChangeLog              |  6 ++++++
 src/roff/troff/reg.cpp | 41 +++++++++++++++++++++--------------------
 2 files changed, 27 insertions(+), 20 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ad15dc60a..28c06a5ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2026-03-28  G. Branden Robinson <[email protected]>
+
+       * src/roff/troff/reg.cpp (number_value_to_ascii): Trivially
+       refactor.  Rename cryptic local `s` to `roman_numerals`.  Also
+       parenthesize formally complex expression.
+
 2026-03-28  G. Branden Robinson <[email protected]>
 
        * src/roff/troff/env.cpp (environment::set_font): Invert
diff --git a/src/roff/troff/reg.cpp b/src/roff/troff/reg.cpp
index 6dbcbc588..81f5aa53e 100644
--- a/src/roff/troff/reg.cpp
+++ b/src/roff/troff/reg.cpp
@@ -125,7 +125,8 @@ static const char *number_value_to_ascii(int value, char 
format,
       char *p = buf;
       // troff uses z and w to represent 10000 and 5000 in Roman
       // numerals; I can find no historical basis for this usage
-      const char *s = format == 'i' ? "zwmdclxvi" : "ZWMDCLXVI";
+      const char *roman_numerals
+        = (format == 'i') ? "zwmdclxvi" : "ZWMDCLXVI";
       int n = int(value);
       if (n >= 40000 || n <= -40000) {
        error("magnitude of '%1' too big for i or I format", n);
@@ -141,47 +142,47 @@ static const char *number_value_to_ascii(int value, char 
format,
        n = -n;
       }
       while (n >= 10000) {
-       *p++ = s[0];
+       *p++ = roman_numerals[0];
        n -= 10000;
       }
-      for (int i = 1000; i > 0; i /= 10, s += 2) {
+      for (int i = 1000; i > 0; i /= 10, roman_numerals += 2) {
        int m = n/i;
        n -= m*i;
        switch (m) {
        case 3:
-         *p++ = s[2];
+         *p++ = roman_numerals[2];
          /* falls through */
        case 2:
-         *p++ = s[2];
+         *p++ = roman_numerals[2];
          /* falls through */
        case 1:
-         *p++ = s[2];
+         *p++ = roman_numerals[2];
          break;
        case 4:
-         *p++ = s[2];
-         *p++ = s[1];
+         *p++ = roman_numerals[2];
+         *p++ = roman_numerals[1];
          break;
        case 8:
-         *p++ = s[1];
-         *p++ = s[2];
-         *p++ = s[2];
-         *p++ = s[2];
+         *p++ = roman_numerals[1];
+         *p++ = roman_numerals[2];
+         *p++ = roman_numerals[2];
+         *p++ = roman_numerals[2];
          break;
        case 7:
-         *p++ = s[1];
-         *p++ = s[2];
-         *p++ = s[2];
+         *p++ = roman_numerals[1];
+         *p++ = roman_numerals[2];
+         *p++ = roman_numerals[2];
          break;
        case 6:
-         *p++ = s[1];
-         *p++ = s[2];
+         *p++ = roman_numerals[1];
+         *p++ = roman_numerals[2];
          break;
        case 5:
-         *p++ = s[1];
+         *p++ = roman_numerals[1];
          break;
        case 9:
-         *p++ = s[2];
-         *p++ = s[0];
+         *p++ = roman_numerals[2];
+         *p++ = roman_numerals[0];
        }
       }
       *p = '\0';

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

Reply via email to