gbranden pushed a commit to branch master
in repository groff.

commit be30529153cabd9afb00ae6fcb9ff53acce55ee0
Author: G. Branden Robinson <g.branden.robin...@gmail.com>
AuthorDate: Sat Aug 17 19:55:09 2024 -0500

    [troff]: Slightly refactor.
    
    * src/roff/troff/input.cpp: Support construction of read-only registers
      from integers.
    
      (class readonly_text_register): Declare constructor taking `int`
      argument.
    
      (readonly_text_register::readonly_text_register): Add it.
    
      (main): Use it to initialize `.T` register.
    
      (init_registers): Use it to initialize `.A` register.
    
      (init_input_requests): Use it to initialize `.g` register and `.R`
      registers.
---
 ChangeLog                | 12 ++++++++++++
 src/roff/troff/input.cpp | 14 ++++++++++----
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index bd129251f..1fdf90661 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2024-08-17  G. Branden Robinson <g.branden.robin...@gmail.com>
+
+       * src/roff/troff/input.cpp: Support construction of read-only
+       registers from integers.
+       (class readonly_text_register): Declare constructor taking `int`
+       argument.
+       (readonly_text_register::readonly_text_register): Add it.
+       (main): Use it to initialize `.T` register.
+       (init_registers): Use it to initialize `.A` register.
+       (init_input_requests): Use it to initialize `.g` register and
+       `.R` registers.
+
 2024-08-17  G. Branden Robinson <g.branden.robin...@gmail.com>
 
        * src/roff/troff/input.cpp: Slightly refactor.
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 99360f7cf..58c1a8dcc 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -7897,6 +7897,7 @@ class readonly_text_register : public reg {
   const char *s;
 public:
   readonly_text_register(const char *);
+  readonly_text_register(int);
   const char *get_string();
 };
 
@@ -7904,6 +7905,11 @@ readonly_text_register::readonly_text_register(const 
char *p) : s(p)
 {
 }
 
+readonly_text_register::readonly_text_register(int i)
+{
+  s = strdup(i_to_a(i));
+}
+
 const char *readonly_text_register::get_string()
 {
   return s;
@@ -8593,7 +8599,7 @@ int main(int argc, char **argv)
   init_column_requests();
 #endif /* COLUMN */
   init_node_requests();
-  register_dictionary.define(".T", new readonly_text_register(tflag ? "1" : 
"0"));
+  register_dictionary.define(".T", new readonly_text_register(tflag));
   init_registers();
   init_reg_requests();
   init_hyphenation_pattern_requests();
@@ -8657,7 +8663,7 @@ static void init_registers()
   set_register("yr", int(t->tm_year));
   set_register("$$", getpid());
   register_dictionary.define(".A",
-      new readonly_text_register(want_abstract_output ? "1" : "0"));
+      new readonly_text_register(want_abstract_output));
 }
 
 /*
@@ -8810,9 +8816,9 @@ void init_input_requests()
   register_dictionary.define(".c", new lineno_reg);
   register_dictionary.define(".color", new 
readonly_boolean_register(&want_color_output));
   register_dictionary.define(".F", new filename_reg);
-  register_dictionary.define(".g", new readonly_text_register("1"));
+  register_dictionary.define(".g", new readonly_text_register(1));
   register_dictionary.define(".H", new readonly_register(&hresolution));
-  register_dictionary.define(".R", new readonly_text_register("10000"));
+  register_dictionary.define(".R", new readonly_text_register(10000));
   register_dictionary.define(".U", new 
readonly_boolean_register(&want_unsafe_requests));
   register_dictionary.define(".V", new readonly_register(&vresolution));
   register_dictionary.define(".warn", new readonly_register(&warning_mask));

_______________________________________________
Groff-commit mailing list
Groff-commit@gnu.org
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to