gbranden pushed a commit to branch master
in repository groff.
commit d0e1f765f9084450864784a257132bbe7881731b
Author: G. Branden Robinson <[email protected]>
AuthorDate: Wed Nov 19 19:21:27 2025 -0600
[troff]: Trivially refactor (`lookup_charinfo()`).
Rename `get_charinfo()` global function to `lookup_charinfo()` because
(a) this parallels the naming of other functions that look up (and
potentially create) entries in dictionaries (cf. `lookup_{color,family,
request,warning}()`), and (b) this function is not an accessor
("getter") for a property of a class object.
* src/roff/troff/charinfo.h (get_charinfo): Rename declaration from
this...
(lookup_charinfo): ...to this.
* src/roff/troff/input.cpp (get_charinfo): Rename definition from
this...
(lookup_charinfo): ...to this.
* src/roff/troff/input.cpp (token::next, define_character)
(init_charset_table, define_class_request, token::get_char)
(token::add_to_zero_width_node_list, token::process)
(name_to_glyph):
* src/roff/troff/node.cpp (font_info::get_narrow_space_width)
(font_info::get_half_narrow_space_width)
(tfont::get_lig, make_glyph_node)
(remove_font_specific_character, soft_hyphen_character_request)
(init_node_requests): Update call sites.
---
ChangeLog | 25 +++++++++++++++++++++++++
src/roff/troff/charinfo.h | 3 ++-
src/roff/troff/input.cpp | 44 ++++++++++++++++++++++----------------------
src/roff/troff/node.cpp | 22 +++++++++++-----------
4 files changed, 60 insertions(+), 34 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 4f69f5d35..f5da53c07 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2025-11-19 G. Branden Robinson <[email protected]>
+
+ [troff]: Trivially refactor. Rename `get_charinfo()` global
+ function to `lookup_charinfo()` because (a) this parallels the
+ naming of other functions that look up (and potentially create)
+ entries in dictionaries (cf. `lookup_{color,family,request,
+ warning}()`), and (b) this function is not an accessor
+ {"getter"} for a property of a class object.
+
+ * src/roff/troff/charinfo.h (get_charinfo): Rename declaration
+ from this...
+ (lookup_charinfo): ...to this.
+ * src/roff/troff/input.cpp (get_charinfo): Rename definition
+ from this...
+ (lookup_charinfo): ...to this.
+ * src/roff/troff/input.cpp (token::next, define_character)
+ (init_charset_table, define_class_request, token::get_char)
+ (token::add_to_zero_width_node_list, token::process)
+ (name_to_glyph):
+ * src/roff/troff/node.cpp (font_info::get_narrow_space_width)
+ (font_info::get_half_narrow_space_width)
+ (tfont::get_lig, make_glyph_node)
+ (remove_font_specific_character, soft_hyphen_character_request)
+ (init_node_requests): Update call sites.
+
2025-11-19 G. Branden Robinson <[email protected]>
* src/roff/troff/input.cpp (define_class_request): Stop adding
diff --git a/src/roff/troff/charinfo.h b/src/roff/troff/charinfo.h
index 92c79a202..72da4cd40 100644
--- a/src/roff/troff/charinfo.h
+++ b/src/roff/troff/charinfo.h
@@ -122,7 +122,8 @@ public:
void dump();
};
-charinfo *get_charinfo(symbol, bool /* suppress_creation */ = false);
+extern charinfo *lookup_charinfo(symbol,
+ bool /* suppress_creation */ = false);
extern charinfo *charset_table[];
inline bool charinfo::overlaps_horizontally()
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 4680c5fcd..587f330ca 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -2469,7 +2469,7 @@ void token::next()
if (!get_line_arg(&x, (cc == 'l' ? 'm': 'v'), &s))
break;
if (s == 0)
- s = get_charinfo(cc == 'l' ? "ru" : "br");
+ s = lookup_charinfo(cc == 'l' ? "ru" : "br");
type = TOKEN_NODE;
node *char_node = curenv->make_char_node(s);
if (cc == 'l')
@@ -4913,7 +4913,7 @@ void define_character(char_mode mode, const char
*font_name)
s += ' ';
s += ci->nm.contents();
s += '\0';
- ci = get_charinfo(symbol(s.contents()));
+ ci = lookup_charinfo(symbol(s.contents()));
}
tok.next();
int c;
@@ -8262,7 +8262,7 @@ static void init_charset_table()
(void) strncpy(buf, char_prefix, char_prefix_len);
for (int i = 0; i < 256; i++) {
(void) strcpy((buf + char_prefix_len), i_to_a(i));
- charset_table[i] = get_charinfo(symbol(buf));
+ charset_table[i] = lookup_charinfo(symbol(buf));
charset_table[i]->set_ascii_code(i);
if (csalpha(i))
charset_table[i]->set_hyphenation_code(cmlower(i));
@@ -8276,18 +8276,18 @@ static void init_charset_table()
charset_table[')']->set_flags(charinfo::IS_TRANSPARENT_TO_END_OF_SENTENCE);
charset_table[']']->set_flags(charinfo::IS_TRANSPARENT_TO_END_OF_SENTENCE);
charset_table['*']->set_flags(charinfo::IS_TRANSPARENT_TO_END_OF_SENTENCE);
-
get_charinfo(symbol("dg"))->set_flags(charinfo::IS_TRANSPARENT_TO_END_OF_SENTENCE);
-
get_charinfo(symbol("dd"))->set_flags(charinfo::IS_TRANSPARENT_TO_END_OF_SENTENCE);
-
get_charinfo(symbol("rq"))->set_flags(charinfo::IS_TRANSPARENT_TO_END_OF_SENTENCE);
-
get_charinfo(symbol("cq"))->set_flags(charinfo::IS_TRANSPARENT_TO_END_OF_SENTENCE);
- get_charinfo(symbol("em"))->set_flags(charinfo::ALLOWS_BREAK_AFTER);
- get_charinfo(symbol("hy"))->set_flags(charinfo::ALLOWS_BREAK_AFTER);
- get_charinfo(symbol("ul"))->set_flags(charinfo::OVERLAPS_HORIZONTALLY);
- get_charinfo(symbol("rn"))->set_flags(charinfo::OVERLAPS_HORIZONTALLY);
-
get_charinfo(symbol("radicalex"))->set_flags(charinfo::OVERLAPS_HORIZONTALLY);
- get_charinfo(symbol("sqrtex"))->set_flags(charinfo::OVERLAPS_HORIZONTALLY);
- get_charinfo(symbol("ru"))->set_flags(charinfo::OVERLAPS_HORIZONTALLY);
- get_charinfo(symbol("br"))->set_flags(charinfo::OVERLAPS_VERTICALLY);
+
lookup_charinfo(symbol("dg"))->set_flags(charinfo::IS_TRANSPARENT_TO_END_OF_SENTENCE);
+
lookup_charinfo(symbol("dd"))->set_flags(charinfo::IS_TRANSPARENT_TO_END_OF_SENTENCE);
+
lookup_charinfo(symbol("rq"))->set_flags(charinfo::IS_TRANSPARENT_TO_END_OF_SENTENCE);
+
lookup_charinfo(symbol("cq"))->set_flags(charinfo::IS_TRANSPARENT_TO_END_OF_SENTENCE);
+ lookup_charinfo(symbol("em"))->set_flags(charinfo::ALLOWS_BREAK_AFTER);
+ lookup_charinfo(symbol("hy"))->set_flags(charinfo::ALLOWS_BREAK_AFTER);
+ lookup_charinfo(symbol("ul"))->set_flags(charinfo::OVERLAPS_HORIZONTALLY);
+ lookup_charinfo(symbol("rn"))->set_flags(charinfo::OVERLAPS_HORIZONTALLY);
+
lookup_charinfo(symbol("radicalex"))->set_flags(charinfo::OVERLAPS_HORIZONTALLY);
+
lookup_charinfo(symbol("sqrtex"))->set_flags(charinfo::OVERLAPS_HORIZONTALLY);
+ lookup_charinfo(symbol("ru"))->set_flags(charinfo::OVERLAPS_HORIZONTALLY);
+ lookup_charinfo(symbol("br"))->set_flags(charinfo::OVERLAPS_VERTICALLY);
page_character = charset_table['%'];
}
@@ -8532,7 +8532,7 @@ static void define_class_request()
skip_line();
return;
}
- charinfo *ci = get_charinfo(nm);
+ charinfo *ci = lookup_charinfo(nm);
// Assign the charinfo an empty macro as a hack to record the
// file:line location of its definition.
macro *m = new macro;
@@ -8657,7 +8657,7 @@ charinfo *token::get_char(bool required, bool
suppress_creation)
if (type == TOKEN_CHAR)
return charset_table[c];
if (type == TOKEN_SPECIAL_CHAR)
- return get_charinfo(nm, suppress_creation);
+ return lookup_charinfo(nm, suppress_creation);
if (type == TOKEN_INDEXED_CHAR)
return get_charinfo_by_index(val, suppress_creation);
if (type == TOKEN_ESCAPE) {
@@ -8748,7 +8748,7 @@ bool token::add_to_zero_width_node_list(node **pp)
curenv->get_fill_color());
break;
case TOKEN_SPECIAL_CHAR:
- *pp = (*pp)->add_char(get_charinfo(nm), curenv, &w, &s);
+ *pp = (*pp)->add_char(lookup_charinfo(nm), curenv, &w, &s);
break;
case TOKEN_STRETCHABLE_SPACE:
n = new unbreakable_space_node(curenv->get_space_width(),
@@ -8843,7 +8843,7 @@ void token::process()
curenv->space();
break;
case TOKEN_SPECIAL_CHAR:
- curenv->add_char(get_charinfo(nm));
+ curenv->add_char(lookup_charinfo(nm));
break;
case TOKEN_SPREAD:
curenv->spread();
@@ -10527,7 +10527,7 @@ void debug_with_file_and_line(const char *filename,
dictionary charinfo_dictionary(501);
-charinfo *get_charinfo(symbol nm, bool suppress_creation)
+charinfo *lookup_charinfo(symbol nm, bool suppress_creation)
{
void *p = charinfo_dictionary.lookup(nm);
if (p != 0 /* nullptr */)
@@ -10909,9 +10909,9 @@ glyph *name_to_glyph(const char *nm)
if (nm[1] == 0)
ci = charset_table[nm[0] & 0xff];
else if (nm[0] == '\\' && nm[2] == 0)
- ci = get_charinfo(symbol(nm + 1));
+ ci = lookup_charinfo(symbol(nm + 1));
else
- ci = get_charinfo(symbol(nm));
+ ci = lookup_charinfo(symbol(nm));
return ci->as_glyph();
}
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp
index 106d108c0..0ad578da6 100644
--- a/src/roff/troff/node.cpp
+++ b/src/roff/troff/node.cpp
@@ -490,7 +490,7 @@ hunits font_info::get_space_width(font_size fs, int
space_sz)
hunits font_info::get_narrow_space_width(font_size fs)
{
- charinfo *ci = get_charinfo(symbol("|"));
+ charinfo *ci = lookup_charinfo(symbol("|"));
if (fm->contains(ci->as_glyph()))
return hunits(fm->get_width(ci->as_glyph(), fs.to_scaled_points()));
else
@@ -499,7 +499,7 @@ hunits font_info::get_narrow_space_width(font_size fs)
hunits font_info::get_half_narrow_space_width(font_size fs)
{
- charinfo *ci = get_charinfo(symbol("^"));
+ charinfo *ci = lookup_charinfo(symbol("^"));
if (fm->contains(ci->as_glyph()))
return hunits(fm->get_width(ci->as_glyph(), fs.to_scaled_points()));
else
@@ -687,15 +687,15 @@ charinfo *tfont::get_lig(charinfo *c1, charinfo *c2)
switch (c2->get_ascii_code()) {
case 'f':
if (fm->has_ligature(font::LIG_ff))
- ci = get_charinfo(SYMBOL_ff);
+ ci = lookup_charinfo(SYMBOL_ff);
break;
case 'i':
if (fm->has_ligature(font::LIG_fi))
- ci = get_charinfo(SYMBOL_fi);
+ ci = lookup_charinfo(SYMBOL_fi);
break;
case 'l':
if (fm->has_ligature(font::LIG_fl))
- ci = get_charinfo(SYMBOL_fl);
+ ci = lookup_charinfo(SYMBOL_fl);
break;
}
}
@@ -703,11 +703,11 @@ charinfo *tfont::get_lig(charinfo *c1, charinfo *c2)
switch (c2->get_ascii_code()) {
case 'i':
if (fm->has_ligature(font::LIG_ffi))
- ci = get_charinfo(SYMBOL_Fi);
+ ci = lookup_charinfo(SYMBOL_Fi);
break;
case 'l':
if (fm->has_ligature(font::LIG_ffl))
- ci = get_charinfo(SYMBOL_Fl);
+ ci = lookup_charinfo(SYMBOL_Fl);
break;
}
}
@@ -5594,7 +5594,7 @@ static node *make_glyph_node(charinfo *s, environment
*env,
gl += ' ';
gl += s->nm.contents();
gl += '\0';
- charinfo *ci = get_charinfo(symbol(gl.contents()));
+ charinfo *ci = lookup_charinfo(symbol(gl.contents()));
if (ci && ci->get_macro())
return make_composite_node(ci, env);
}
@@ -7054,7 +7054,7 @@ static void remove_font_specific_character()
gl += ' ';
gl += s->nm.contents();
gl += '\0';
- charinfo *ci = get_charinfo(symbol(gl.contents()));
+ charinfo *ci = lookup_charinfo(symbol(gl.contents()));
if (!ci)
break;
macro *m = ci->set_macro(0 /* nullptr */);
@@ -7490,7 +7490,7 @@ static void soft_hyphen_character_request()
{
soft_hyphen_char = read_character();
if (0 /* nullptr */ == soft_hyphen_char)
- soft_hyphen_char = get_charinfo(HYPHEN_SYMBOL);
+ soft_hyphen_char = lookup_charinfo(HYPHEN_SYMBOL);
skip_line();
}
@@ -7553,7 +7553,7 @@ void init_node_requests()
register_dictionary.define(".lg",
new readonly_register(&global_ligature_mode));
register_dictionary.define(".P", new printing_reg);
- soft_hyphen_char = get_charinfo(HYPHEN_SYMBOL);
+ soft_hyphen_char = lookup_charinfo(HYPHEN_SYMBOL);
}
// Local Variables:
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit