groff-commit
[Top][All Lists]
Advanced

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

[groff] 04/14: [troff]: Slightly refactor.


From: G. Branden Robinson
Subject: [groff] 04/14: [troff]: Slightly refactor.
Date: Tue, 6 Jul 2021 05:05:47 -0400 (EDT)

gbranden pushed a commit to branch master
in repository groff.

commit 61b440fc3a2096b735de8a43353d9c866f6cd6ca
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Mon Jul 5 21:39:50 2021 +1000

    [troff]: Slightly refactor.
    
    Make the source code slightly more accessible by using a `bool` type for
    a function's default parameter used as a Boolean, and comment it at call
    sites where the default is overridden.
    
    See also commit d56e0f1d, 25 June.
    
    * src/roff/troff/token.h (get_name, get_long_name): Change type of
      parameter from `int` to `bool` and default from 0 to `false`.
    
    * src/roff/troff/input.cpp (do_get_long_name, empty_name_warning,
      get_name, get_long_name): Change type of parameter from `int` to
      `bool` in declarations and definitions.
    
    * src/roff/troff/column.cpp (column_justify):
    * src/roff/troff/div.cpp (diversion_trap):
    * src/roff/troff/env.cpp (environment_switch, environment_copy,
      do_input_trap, set_hyphenation_language,
      do_hyphenation_patterns_file):
    * src/roff/troff/input.cpp (define_color, composite_request,
      do_define_string, do_define_macro, rename_macro, alias_macro,
      chop_macro, do_string_case_transform, substring_request,
      length_request, asciify_macro, unformat_macro, do_register,
      device_macro_request, do_if_request, do_source, ps_bbox_request,
      do_open, close_request, do_write_request, write_macro_request,
      define_class, copy_file, vjustify, transparent_file, do_macro_source):
    * src/roff/troff/node.cpp (font_translate, font_position, style,
      get_fontno):
    * src/roff/troff/reg.cpp (define_number_reg, inline_define_reg,
      alter_format, alias_reg, rename_reg): Update call sites.  Add comment
      indicating meaning of parameter.
---
 ChangeLog                 | 31 ++++++++++++++++++
 src/roff/troff/column.cpp |  4 +--
 src/roff/troff/div.cpp    |  2 +-
 src/roff/troff/env.cpp    | 10 +++---
 src/roff/troff/input.cpp  | 82 +++++++++++++++++++++++------------------------
 src/roff/troff/node.cpp   |  8 ++---
 src/roff/troff/reg.cpp    | 14 ++++----
 src/roff/troff/token.h    |  4 +--
 8 files changed, 93 insertions(+), 62 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 654bbb5..b108f19 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,36 @@
 2021-07-05  G. Branden Robinson <g.branden.robinson@gmail.com>
 
+       [troff]: Slightly refactor.  Make the source code slightly more
+       accessible by using a `bool` type for a function's default
+       parameter used as a Boolean, and comment it at call sites where
+       the default is overridden.
+
+       * src/roff/troff/token.h (get_name, get_long_name): Change type
+       of parameter from `int` to `bool` and default from 0 to `false`.
+       * src/roff/troff/input.cpp (do_get_long_name,
+       empty_name_warning, get_name, get_long_name): Change type of
+       parameter from `int` to `bool` in declarations and definitions.
+       * src/roff/troff/column.cpp (column_justify):
+       * src/roff/troff/div.cpp (diversion_trap):
+       * src/roff/troff/env.cpp (environment_switch, environment_copy,
+       do_input_trap, set_hyphenation_language,
+       do_hyphenation_patterns_file):
+       * src/roff/troff/input.cpp (define_color, composite_request,
+       do_define_string, do_define_macro, rename_macro, alias_macro,
+       chop_macro, do_string_case_transform, substring_request,
+       length_request, asciify_macro, unformat_macro, do_register,
+       device_macro_request, do_if_request, do_source, ps_bbox_request,
+       do_open, close_request, do_write_request, write_macro_request,
+       define_class, copy_file, vjustify, transparent_file,
+       do_macro_source):
+       * src/roff/troff/node.cpp (font_translate, font_position, style,
+       get_fontno):
+       * src/roff/troff/reg.cpp (define_number_reg, inline_define_reg,
+       alter_format, alias_reg, rename_reg): Update call sites.  Add
+       comment indicating meaning of parameter.
+
+2021-07-05  G. Branden Robinson <g.branden.robinson@gmail.com>
+
        * tmac/an-old.tmac (an-footer): Remove string
        `an-outer-footer-text` after we're done with it.
 
diff --git a/src/roff/troff/column.cpp b/src/roff/troff/column.cpp
index e533a28..cc023f1 100644
--- a/src/roff/troff/column.cpp
+++ b/src/roff/troff/column.cpp
@@ -554,14 +554,14 @@ void column_justify()
     error("can't justify column - column not active");
   else if (get_vunits(&height, 'v')) {
     justification_spec js(height);
-    symbol nm = get_long_name(1);
+    symbol nm = get_long_name(true /* required */);
     if (!nm.is_null()) {
       vunits v;
       if (get_vunits(&v, 'v')) {
        js.append(nm, v);
        int err = 0;
        while (has_arg()) {
-         nm = get_long_name(1);
+         nm = get_long_name(true /* required */);
          if (nm.is_null()) {
            err = 1;
            break;
diff --git a/src/roff/troff/div.cpp b/src/roff/troff/div.cpp
index 63e2754..51a4a92 100644
--- a/src/roff/troff/div.cpp
+++ b/src/roff/troff/div.cpp
@@ -892,7 +892,7 @@ void diversion_trap()
 
 void change_trap()
 {
-  symbol s = get_name(1);
+  symbol s = get_name(true /* required */);
   if (!s.is_null()) {
     vunits x;
     if (has_arg() && get_vunits(&x, 'v'))
diff --git a/src/roff/troff/env.cpp b/src/roff/troff/env.cpp
index 13e16d9..459aee7 100644
--- a/src/roff/troff/env.cpp
+++ b/src/roff/troff/env.cpp
@@ -1124,7 +1124,7 @@ void environment_switch()
        pop = 2;
     }
     else {
-      nm = get_long_name(1);
+      nm = get_long_name(true /* required */);
       if (nm.is_null())
        pop = 2;
     }
@@ -1175,7 +1175,7 @@ void environment_copy()
     }
   }
   else
-    nm = get_long_name(1);
+    nm = get_long_name(true /* required */);
   if (!e && !nm.is_null())
     e = (environment *)env_dictionary.lookup(nm);
   if (e == 0) {
@@ -2558,7 +2558,7 @@ void do_input_trap(int continued)
       warning(WARN_RANGE,
              "number of lines for input trap must be greater than zero");
     else {
-      symbol s = get_name(1);
+      symbol s = get_name(true /* required */);
       if (!s.is_null()) {
        curenv->input_trap_count = n;
        curenv->input_trap = s;
@@ -3565,7 +3565,7 @@ hyphenation_language *current_language = 0;
 
 static void set_hyphenation_language()
 {
-  symbol nm = get_name(1);
+  symbol nm = get_name(true /* required */);
   if (!nm.is_null()) {
     current_language = (hyphenation_language *)language_dictionary.lookup(nm);
     if (!current_language) {
@@ -4084,7 +4084,7 @@ void hyphenate(hyphen_list *h, unsigned flags)
 
 static void do_hyphenation_patterns_file(int append)
 {
-  symbol name = get_long_name(1);
+  symbol name = get_long_name(true /* required */);
   if (!name.is_null()) {
     if (!current_language)
       error("no current hyphenation language");
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 849cf5f..a21daa5 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -148,7 +148,7 @@ static void interpolate_arg(symbol);
 static request_or_macro *lookup_request(symbol);
 static int get_delim_number(units *, unsigned char);
 static int get_delim_number(units *, unsigned char, units);
-static symbol do_get_long_name(int, char);
+static symbol do_get_long_name(bool, char);
 static int get_line_arg(units *res, unsigned char si, charinfo **cp);
 static int read_size(int *);
 static symbol get_delim_name();
@@ -1396,7 +1396,7 @@ static void activate_color()
 
 static void define_color()
 {
-  symbol color_name = get_long_name(1);
+  symbol color_name = get_long_name(true /* required */);
   if (color_name.is_null()) {
     skip_line();
     return;
@@ -1406,7 +1406,7 @@ static void define_color()
     skip_line();
     return;
   }
-  symbol style = get_long_name(1);
+  symbol style = get_long_name(true /* required */);
   if (style.is_null()) {
     skip_line();
     return;
@@ -2462,7 +2462,7 @@ void compatible()
   skip_line();
 }
 
-static void empty_name_warning(int required)
+static void empty_name_warning(bool required)
 {
   if (tok.newline() || tok.eof()) {
     if (required)
@@ -2493,7 +2493,7 @@ static void non_empty_name_warning()
     error("%1 is not allowed in a name", tok.description());
 }
 
-symbol get_name(int required)
+symbol get_name(bool required)
 {
   if (compatible_flag) {
     char buf[3];
@@ -2517,12 +2517,12 @@ symbol get_name(int required)
     return get_long_name(required);
 }
 
-symbol get_long_name(int required)
+symbol get_long_name(bool required)
 {
   return do_get_long_name(required, 0);
 }
 
-static symbol do_get_long_name(int required, char end)
+static symbol do_get_long_name(bool required, char end)
 {
   while (tok.space())
     tok.next();
@@ -3965,7 +3965,7 @@ dictionary composite_dictionary(17);
 
 void composite_request()
 {
-  symbol from = get_name(1);
+  symbol from = get_name(true /* required */);
   if (!from.is_null()) {
     const char *from_gn = glyph_name_to_unicode(from.contents());
     if (!from_gn) {
@@ -3979,7 +3979,7 @@ void composite_request()
     const char *from_decomposed = decompose_unicode(from_gn);
     if (from_decomposed)
       from_gn = &from_decomposed[1];
-    symbol to = get_name(1);
+    symbol to = get_name(true /* required */);
     if (to.is_null())
       composite_dictionary.remove(symbol(from_gn));
     else {
@@ -4158,7 +4158,7 @@ void do_define_string(define_mode mode, comp_mode comp)
   symbol nm;
   node *n = 0;         // pacify compiler
   int c;
-  nm = get_name(1);
+  nm = get_name(true /* required */);
   if (nm.is_null()) {
     skip_line();
     return;
@@ -4463,7 +4463,7 @@ void do_define_macro(define_mode mode, calling_mode 
calling, comp_mode comp)
 {
   symbol nm, term;
   if (calling == CALLING_INDIRECT) {
-    symbol temp1 = get_name(1);
+    symbol temp1 = get_name(true /* required */);
     if (temp1.is_null()) {
       skip_line();
       return;
@@ -4479,7 +4479,7 @@ void do_define_macro(define_mode mode, calling_mode 
calling, comp_mode comp)
     tok.next();
   }
   if (mode == DEFINE_NORMAL || mode == DEFINE_APPEND) {
-    nm = get_name(1);
+    nm = get_name(true /* required */);
     if (nm.is_null()) {
       skip_line();
       return;
@@ -4662,9 +4662,9 @@ void remove_macro()
 
 void rename_macro()
 {
-  symbol s1 = get_name(1);
+  symbol s1 = get_name(true /* required */);
   if (!s1.is_null()) {
-    symbol s2 = get_name(1);
+    symbol s2 = get_name(true /* required */);
     if (!s2.is_null())
       request_dictionary.rename(s1, s2);
   }
@@ -4673,9 +4673,9 @@ void rename_macro()
 
 void alias_macro()
 {
-  symbol s1 = get_name(1);
+  symbol s1 = get_name(true /* required */);
   if (!s1.is_null()) {
-    symbol s2 = get_name(1);
+    symbol s2 = get_name(true /* required */);
     if (!s2.is_null()) {
       if (!request_dictionary.alias(s1, s2))
        warning(WARN_MAC, "macro '%1' not defined", s2.contents());
@@ -4686,7 +4686,7 @@ void alias_macro()
 
 void chop_macro()
 {
-  symbol s = get_name(1);
+  symbol s = get_name(true /* required */);
   if (!s.is_null()) {
     request_or_macro *p = lookup_request(s);
     macro *m = p->to_macro();
@@ -4730,7 +4730,7 @@ enum case_xform_mode { STRING_UPCASE, STRING_DOWNCASE };
 void do_string_case_transform(case_xform_mode mode)
 {
   assert((mode == STRING_DOWNCASE) || (mode == STRING_UPCASE));
-  symbol s = get_name(1);
+  symbol s = get_name(true /* required */);
   if (s.is_null()) {
     skip_line();
     return;
@@ -4778,7 +4778,7 @@ void stringup_request() {
 void substring_request()
 {
   int start;                           // 0, 1, ..., n-1  or  -1, -2, ...
-  symbol s = get_name(1);
+  symbol s = get_name(true /* required */);
   if (!s.is_null() && get_integer(&start)) {
     request_or_macro *p = lookup_request(s);
     macro *m = p->to_macro();
@@ -4867,7 +4867,7 @@ void substring_request()
 void length_request()
 {
   symbol ret;
-  ret = get_name(1);
+  ret = get_name(true /* required */);
   if (ret.is_null()) {
     skip_line();
     return;
@@ -4904,7 +4904,7 @@ void length_request()
 
 void asciify_macro()
 {
-  symbol s = get_name(1);
+  symbol s = get_name(true /* required */);
   if (!s.is_null()) {
     request_or_macro *p = lookup_request(s);
     macro *m = p->to_macro();
@@ -4931,7 +4931,7 @@ void asciify_macro()
 
 void unformat_macro()
 {
-  symbol s = get_name(1);
+  symbol s = get_name(true /* required */);
   if (!s.is_null()) {
     request_or_macro *p = lookup_request(s);
     macro *m = p->to_macro();
@@ -5223,7 +5223,7 @@ static void do_register()
   if (!start.delimiter(1))
     return;
   tok.next();
-  symbol nm = get_long_name(1);
+  symbol nm = get_long_name(true /* required */);
   if (nm.is_null())
     return;
   while (tok.space())
@@ -5492,7 +5492,7 @@ void device_request()
 
 void device_macro_request()
 {
-  symbol s = get_name(1);
+  symbol s = get_name(true /* required */);
   if (!(s.is_null() || s.is_empty())) {
     request_or_macro *p = lookup_request(s);
     macro *m = p->to_macro();
@@ -5740,7 +5740,7 @@ int do_if_request()
   }
   else if (c == 'd' || c == 'r') {
     tok.next();
-    symbol nm = get_name(1);
+    symbol nm = get_name(true /* required */);
     if (nm.is_null()) {
       skip_alternative();
       return 0;
@@ -5751,7 +5751,7 @@ int do_if_request()
   }
   else if (c == 'm') {
     tok.next();
-    symbol nm = get_long_name(1);
+    symbol nm = get_long_name(true /* required */);
     if (nm.is_null()) {
       skip_alternative();
       return 0;
@@ -5772,7 +5772,7 @@ int do_if_request()
   }
   else if (c == 'F') {
     tok.next();
-    symbol nm = get_long_name(1);
+    symbol nm = get_long_name(true /* required */);
     if (nm.is_null()) {
       skip_alternative();
       return 0;
@@ -5781,7 +5781,7 @@ int do_if_request()
   }
   else if (c == 'S') {
     tok.next();
-    symbol nm = get_long_name(1);
+    symbol nm = get_long_name(true /* required */);
     if (nm.is_null()) {
       skip_alternative();
       return 0;
@@ -5959,7 +5959,7 @@ void while_continue_request()
 
 void do_source(bool quietly)
 {
-  symbol nm = get_long_name(1);
+  symbol nm = get_long_name(true /* required */);
   if (nm.is_null())
     skip_line();
   else {
@@ -6492,7 +6492,7 @@ void ps_bbox_request()
 {
   // Parse input line, to extract file name.
   //
-  symbol nm = get_long_name(1);
+  symbol nm = get_long_name(true /* required */);
   if (nm.is_null())
     //
     // No file name specified: ignore the entire request.
@@ -6723,9 +6723,9 @@ dictionary stream_dictionary(20);
 
 void do_open(int append)
 {
-  symbol stream = get_name(1);
+  symbol stream = get_name(true /* required */);
   if (!stream.is_null()) {
-    symbol filename = get_long_name(1);
+    symbol filename = get_long_name(true /* required */);
     if (!filename.is_null()) {
       errno = 0;
       FILE *fp = fopen(filename.contents(), append ? "a" : "w");
@@ -6767,7 +6767,7 @@ void opena_request()
 
 void close_request()
 {
-  symbol stream = get_name(1);
+  symbol stream = get_name(true /* required */);
   if (!stream.is_null()) {
     FILE *fp = (FILE *)stream_dictionary.remove(stream);
     if (!fp)
@@ -6782,7 +6782,7 @@ void close_request()
 
 void do_write_request(int newline)
 {
-  symbol stream = get_name(1);
+  symbol stream = get_name(true /* required */);
   if (stream.is_null()) {
     skip_line();
     return;
@@ -6818,7 +6818,7 @@ void write_request_continue()
 
 void write_macro_request()
 {
-  symbol stream = get_name(1);
+  symbol stream = get_name(true /* required */);
   if (stream.is_null()) {
     skip_line();
     return;
@@ -6829,7 +6829,7 @@ void write_macro_request()
     skip_line();
     return;
   }
-  symbol s = get_name(1);
+  symbol s = get_name(true /* required */);
   if (s.is_null()) {
     skip_line();
     return;
@@ -7073,7 +7073,7 @@ dictionary char_class_dictionary(501);
 void define_class()
 {
   tok.skip();
-  symbol nm = get_name(1);
+  symbol nm = get_name(true /* required */);
   if (nm.is_null()) {
     skip_line();
     return;
@@ -7607,7 +7607,7 @@ void copy_file()
     handle_initial_request(COPY_FILE_REQUEST);
     return;
   }
-  symbol filename = get_long_name(1);
+  symbol filename = get_long_name(true /* required */);
   while (!tok.newline() && !tok.eof())
     tok.next();
   if (break_flag)
@@ -7625,7 +7625,7 @@ void vjustify()
     handle_initial_request(VJUSTIFY_REQUEST);
     return;
   }
-  symbol type = get_long_name(1);
+  symbol type = get_long_name(true /* required */);
   if (!type.is_null())
     curdiv->vjustify(type);
   skip_line();
@@ -7639,7 +7639,7 @@ void transparent_file()
     handle_initial_request(TRANSPARENT_FILE_REQUEST);
     return;
   }
-  symbol filename = get_long_name(1);
+  symbol filename = get_long_name(true /* required */);
   while (!tok.newline() && !tok.eof())
     tok.next();
   if (break_flag)
@@ -7794,7 +7794,7 @@ static void process_startup_file(const char *filename)
 
 void do_macro_source(bool quietly)
 {
-  symbol nm = get_long_name(1);
+  symbol nm = get_long_name(true /* required */);
   if (nm.is_null())
     skip_line();
   else {
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp
index cdf1d86..f2fc6da 100644
--- a/src/roff/troff/node.cpp
+++ b/src/roff/troff/node.cpp
@@ -5982,7 +5982,7 @@ void mount_style(int n, symbol name)
 
 void font_translate()
 {
-  symbol from = get_name(1);
+  symbol from = get_name(true /* required */);
   if (!from.is_null()) {
     symbol to = get_name();
     if (to.is_null() || from == to)
@@ -6000,7 +6000,7 @@ void font_position()
     if (n < 0)
       error("negative font position");
     else {
-      symbol internal_name = get_name(1);
+      symbol internal_name = get_name(true /* required */);
       if (!internal_name.is_null()) {
        symbol external_name = get_long_name();
        mount_font(n, internal_name, external_name); // ignore error
@@ -6106,7 +6106,7 @@ void style()
     if (n < 0)
       error("negative font position");
     else {
-      symbol internal_name = get_name(1);
+      symbol internal_name = get_name(true /* required */);
       if (!internal_name.is_null())
        mount_style(n, internal_name);
     }
@@ -6119,7 +6119,7 @@ static int get_fontno()
   int n;
   tok.skip();
   if (tok.delimiter()) {
-    symbol s = get_name(1);
+    symbol s = get_name(true /* required */);
     if (!s.is_null()) {
       n = symbol_fontno(s);
       if (n < 0) {
diff --git a/src/roff/troff/reg.cpp b/src/roff/troff/reg.cpp
index f0cba21..fb5b7a7 100644
--- a/src/roff/troff/reg.cpp
+++ b/src/roff/troff/reg.cpp
@@ -301,7 +301,7 @@ int variable_reg::get_value(units *res)
 
 void define_number_reg()
 {
-  symbol nm = get_name(1);
+  symbol nm = get_name(true /* required */);
   if (nm.is_null()) {
     skip_line();
     return;
@@ -331,7 +331,7 @@ void inline_define_reg()
   if (!start.delimiter(1))
     return;
   tok.next();
-  symbol nm = get_name(1);
+  symbol nm = get_name(true /* required */);
   if (nm.is_null())
     return;
   reg *r = (reg *)number_reg_dictionary.lookup(nm);
@@ -379,7 +379,7 @@ reg *lookup_number_reg(symbol nm)
 
 void alter_format()
 {
-  symbol nm = get_name(1);
+  symbol nm = get_name(true /* required */);
   if (nm.is_null()) {
     skip_line();
     return;
@@ -421,9 +421,9 @@ void remove_reg()
 
 void alias_reg()
 {
-  symbol s1 = get_name(1);
+  symbol s1 = get_name(true /* required */);
   if (!s1.is_null()) {
-    symbol s2 = get_name(1);
+    symbol s2 = get_name(true /* required */);
     if (!s2.is_null()) {
       if (!number_reg_dictionary.alias(s1, s2))
        warning(WARN_REG, "register '%1' not defined", s2.contents());
@@ -434,9 +434,9 @@ void alias_reg()
 
 void rename_reg()
 {
-  symbol s1 = get_name(1);
+  symbol s1 = get_name(true /* required */);
   if (!s1.is_null()) {
-    symbol s2 = get_name(1);
+    symbol s2 = get_name(true /* required */);
     if (!s2.is_null())
       number_reg_dictionary.rename(s1, s2);
   }
diff --git a/src/roff/troff/token.h b/src/roff/troff/token.h
index 35d5b0c..fdb02f6 100644
--- a/src/roff/troff/token.h
+++ b/src/roff/troff/token.h
@@ -105,8 +105,8 @@ public:
 
 extern token tok;              // the current token
 
-extern symbol get_name(int required = 0);
-extern symbol get_long_name(int required = 0);
+extern symbol get_name(bool required = false);
+extern symbol get_long_name(bool required = false);
 extern charinfo *get_optional_char();
 extern char *read_string();
 extern void check_missing_character();



reply via email to

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