summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorG. Branden Robinson <g.branden.robinson@gmail.com>2021-06-25 10:17:42 +1000
committerG. Branden Robinson <g.branden.robinson@gmail.com>2021-06-25 17:23:41 +1000
commitd56e0f1dd5d43e6fc2dd57517fc2c32e803cc4b2 (patch)
treeabed29a825768712ef418b71ab9eacc47acb397a
parenta6d8eec045a99e45e7b53d1200305bddf513d15c (diff)
downloadgroff-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--ChangeLog18
-rw-r--r--src/roff/troff/env.cpp2
-rw-r--r--src/roff/troff/input.cpp30
-rw-r--r--src/roff/troff/node.cpp2
-rw-r--r--src/roff/troff/token.h2
5 files changed, 36 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 8fc2b17fb..ccfea30a7 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 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();