[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();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [groff] 04/14: [troff]: Slightly refactor.,
G. Branden Robinson <=