groff-commit
[Top][All Lists]
Advanced

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

[groff] 11/17: [troff]: Slightly refactor token::get_char().


From: G. Branden Robinson
Subject: [groff] 11/17: [troff]: Slightly refactor token::get_char().
Date: Fri, 25 Jun 2021 18:05:19 -0400 (EDT)

gbranden pushed a commit to branch master
in repository groff.

commit d56e0f1dd5d43e6fc2dd57517fc2c32e803cc4b2
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Fri Jun 25 10:17:42 2021 +1000

    [troff]: Slightly refactor token::get_char().
    
    [troff]: Slightly refactor.  Make the source code slightly more
    accessible by using a `bool` type for a member function's default
    parameter used as a Boolean, and comment it at call sites where the
    default is overridden.
    
    * src/roff/troff/token.h (token::get_char): Change type of parameter
      from `int` to `bool` and default from 0 to `false`.
    * src/roff/troff/input.cpp (token::get_char): Update definition.
    * src/roff/troff/env.cpp (hyphen_word):
    * src/roff/troff/node.cpp (remove_font_special_character):
    * src/roff/troff/input.cpp (do_overstrike, do_bracket, next,
      do_define_character, remove_character, get_line_arg, encode_char,
      do_if_request, do_translate, char_flags, hyphenation_code,
      define_class): Update call sites.  Add comment indicating meaning of
      parameter.
---
 ChangeLog                | 18 ++++++++++++++++++
 src/roff/troff/env.cpp   |  2 +-
 src/roff/troff/input.cpp | 30 +++++++++++++++---------------
 src/roff/troff/node.cpp  |  2 +-
 src/roff/troff/token.h   |  2 +-
 5 files changed, 36 insertions(+), 18 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 8fc2b17..ccfea30 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
 2021-06-25  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 member function's
+       default parameter used as a Boolean, and comment it at call
+       sites where the default is overridden.
+
+       * src/roff/troff/token.h (token::get_char): Change type of
+       parameter from `int` to `bool` and default from 0 to `false`.
+       * src/roff/troff/input.cpp (token::get_char): Update definition.
+       * src/roff/troff/env.cpp (hyphen_word):
+       * src/roff/troff/node.cpp (remove_font_special_character):
+       * src/roff/troff/input.cpp (do_overstrike, do_bracket, next,
+       do_define_character, remove_character, get_line_arg,
+       encode_char, do_if_request, do_translate, char_flags,
+       hyphenation_code, define_class): Update call sites.  Add comment
+       indicating meaning of parameter.
+
+2021-06-25  G. Branden Robinson <g.branden.robinson@gmail.com>
+
        * tmac/an-old.tmac (TH): When outputting HTML, write the
        possibly case-transformed (but not yet abbreviated) page title
        as the `title` element instead of the unaltered first argument
diff --git a/src/roff/troff/env.cpp b/src/roff/troff/env.cpp
index 1be8647..13e16d9 100644
--- a/src/roff/troff/env.cpp
+++ b/src/roff/troff/env.cpp
@@ -3595,7 +3595,7 @@ static void hyphen_word()
     int i = 0;
     int npos = 0;
     while (i < WORD_MAX && !tok.space() && !tok.newline() && !tok.eof()) {
-      charinfo *ci = tok.get_char(1);
+      charinfo *ci = tok.get_char(true /* required */);
       if (ci == 0) {
        skip_line();
        return;
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index d41cac4..849cf5f 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -1462,7 +1462,7 @@ node *do_overstrike()
       on->overstrike(n);
     }
     else {
-      charinfo *ci = tok.get_char(1);
+      charinfo *ci = tok.get_char(true /* required */);
       if (ci) {
        node *n = curenv->make_char_node(ci);
        if (n)
@@ -1494,7 +1494,7 @@ static node *do_bracket()
     if (tok == start
        && (compatible_flag || input_stack::get_level() == start_level))
       break;
-    charinfo *ci = tok.get_char(1);
+    charinfo *ci = tok.get_char(true /* required */);
     if (ci) {
       node *n = curenv->make_char_node(ci);
       if (n)
@@ -2236,7 +2236,7 @@ void token::next()
          if (type == TOKEN_NODE || type == TOKEN_HORIZONTAL_SPACE)
            nd = new zero_width_node(nd);
          else {
-           charinfo *ci = get_char(1);
+           charinfo *ci = get_char(true /* required */);
            if (ci == 0)
              break;
            node *gn = curenv->make_char_node(ci);
@@ -4231,7 +4231,7 @@ void do_define_character(char_mode mode, const char 
*font_name)
   node *n = 0;         // pacify compiler
   int c;
   tok.skip();
-  charinfo *ci = tok.get_char(1);
+  charinfo *ci = tok.get_char(true /* required */);
   if (ci == 0) {
     skip_line();
     return;
@@ -4293,7 +4293,7 @@ static void remove_character()
   tok.skip();
   while (!tok.newline() && !tok.eof()) {
     if (!tok.space() && !tok.tab()) {
-      charinfo *ci = tok.get_char(1);
+      charinfo *ci = tok.get_char(true /* required */);
       if (!ci)
        break;
       macro *m = ci->set_macro(0);
@@ -5024,7 +5024,7 @@ static int get_line_arg(units *n, unsigned char si, 
charinfo **cp)
     if (tok.dummy() || tok.transparent_dummy())
       tok.next();
     if (!(start == tok && input_stack::get_level() == start_level)) {
-      *cp = tok.get_char(1);
+      *cp = tok.get_char(true /* required */);
       tok.next();
     }
     if (!(start == tok && input_stack::get_level() == start_level))
@@ -5401,7 +5401,7 @@ static void encode_char(macro *mac, char c)
 {
   if (c == '\0') {
     if ((font::use_charnames_in_special) && tok.special()) {
-      charinfo *ci = tok.get_char(1);
+      charinfo *ci = tok.get_char(true /* required */);
       const char *s = ci->get_symbol()->contents();
       if (s[0] != (char)0) {
        mac->append('\\');
@@ -5762,7 +5762,7 @@ int do_if_request()
   else if (c == 'c') {
     tok.next();
     tok.skip();
-    charinfo *ci = tok.get_char(1);
+    charinfo *ci = tok.get_char(true /* required */);
     if (ci == 0) {
       skip_alternative();
       return 0;
@@ -6946,7 +6946,7 @@ static void do_translate(int translate_transparent, int 
translate_input)
       tok.next();
       continue;
     }
-    charinfo *ci1 = tok.get_char(1);
+    charinfo *ci1 = tok.get_char(true /* required */);
     if (ci1 == 0)
       break;
     tok.next();
@@ -6968,7 +6968,7 @@ static void do_translate(int translate_transparent, int 
translate_input)
       ci1->set_special_translation(charinfo::TRANSLATE_HYPHEN_INDICATOR,
                                   translate_transparent);
     else {
-      charinfo *ci2 = tok.get_char(1);
+      charinfo *ci2 = tok.get_char(true /* required */);
       if (ci2 == 0)
        break;
       if (ci1 == ci2)
@@ -7001,7 +7001,7 @@ void char_flags()
   int flags;
   if (get_integer(&flags))
     while (has_arg()) {
-      charinfo *ci = tok.get_char(1);
+      charinfo *ci = tok.get_char(true /* required */);
       if (ci) {
        charinfo *tem = ci->get_translation();
        if (tem)
@@ -7017,7 +7017,7 @@ void hyphenation_code()
 {
   tok.skip();
   while (!tok.newline() && !tok.eof()) {
-    charinfo *ci = tok.get_char(1);
+    charinfo *ci = tok.get_char(true /* required */);
     if (ci == 0)
       break;
     tok.next();
@@ -7084,7 +7084,7 @@ void define_class()
     tok.skip();
     if (child1 != 0 && tok.ch() == '-') {
       tok.next();
-      child2 = tok.get_char(1);
+      child2 = tok.get_char(true /* required */);
       if (!child2) {
        warning(WARN_MISSING,
                "missing end of character range in class '%1'",
@@ -7137,7 +7137,7 @@ void define_class()
       }
       child1 = 0;
     }
-    child1 = tok.get_char(1);
+    child1 = tok.get_char(true /* required */);
     tok.next();
     if (!child1) {
       if (!tok.newline())
@@ -7178,7 +7178,7 @@ void define_class()
   skip_line();
 }
 
-charinfo *token::get_char(int required)
+charinfo *token::get_char(bool required)
 {
   if (type == TOKEN_CHAR)
     return charset_table[c];
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp
index edc9f45..cdf1d86 100644
--- a/src/roff/troff/node.cpp
+++ b/src/roff/troff/node.cpp
@@ -6175,7 +6175,7 @@ void remove_font_special_character()
   symbol f = font_table[n]->get_name();
   while (!tok.newline() && !tok.eof()) {
     if (!tok.space() && !tok.tab()) {
-      charinfo *s = tok.get_char(1);
+      charinfo *s = tok.get_char(true /* required */);
       string gl(f.contents());
       gl += ' ';
       gl += s->nm.contents();
diff --git a/src/roff/troff/token.h b/src/roff/troff/token.h
index 40610e0..35d5b0c 100644
--- a/src/roff/troff/token.h
+++ b/src/roff/troff/token.h
@@ -92,7 +92,7 @@ public:
   int operator==(const token &); // need this for delimiters, and for 
conditions
   int operator!=(const token &); // ditto
   unsigned char ch();
-  charinfo *get_char(int required = 0);
+  charinfo *get_char(bool required = false);
   int add_to_node_list(node **);
   int title();
   void make_space();



reply via email to

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