diff options
author | G. Branden Robinson <g.branden.robinson@gmail.com> | 2021-06-25 10:17:42 +1000 |
---|---|---|
committer | G. Branden Robinson <g.branden.robinson@gmail.com> | 2021-06-25 17:23:41 +1000 |
commit | d56e0f1dd5d43e6fc2dd57517fc2c32e803cc4b2 (patch) | |
tree | abed29a825768712ef418b71ab9eacc47acb397a | |
parent | a6d8eec045a99e45e7b53d1200305bddf513d15c (diff) | |
download | groff-git-d56e0f1dd5d43e6fc2dd57517fc2c32e803cc4b2.tar.gz |
[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.
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | src/roff/troff/env.cpp | 2 | ||||
-rw-r--r-- | src/roff/troff/input.cpp | 30 | ||||
-rw-r--r-- | src/roff/troff/node.cpp | 2 | ||||
-rw-r--r-- | src/roff/troff/token.h | 2 |
5 files changed, 36 insertions, 18 deletions
@@ -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 1be864703..13e16d953 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 d41cac4c5..849cf5fe5 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 edc9f45b4..cdf1d8688 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 40610e03b..35d5b0cd8 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(); |