groff-commit
[Top][All Lists]
Advanced

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

[groff] 15/21: src/roff/troff/env.cpp: Trivially refactor.


From: G. Branden Robinson
Subject: [groff] 15/21: src/roff/troff/env.cpp: Trivially refactor.
Date: Sat, 2 Mar 2024 01:25:02 -0500 (EST)

gbranden pushed a commit to branch master
in repository groff.

commit 2d45a77e5cc53f3681766ea84cd9cc8368160898
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Fri Mar 1 21:35:08 2024 -0600

    src/roff/troff/env.cpp: Trivially refactor.
    
    Relocate some code to avoid needing forward declarations in forthcoming
    change.
---
 src/roff/troff/env.cpp | 288 ++++++++++++++++++++++++-------------------------
 1 file changed, 144 insertions(+), 144 deletions(-)

diff --git a/src/roff/troff/env.cpp b/src/roff/troff/env.cpp
index bd0616349..457749b8d 100644
--- a/src/roff/troff/env.cpp
+++ b/src/roff/troff/env.cpp
@@ -3491,130 +3491,6 @@ void print_env()
   skip_line();
 }
 
-#define init_int_env_reg(name, func) \
-  register_dictionary.define(name, new int_env_reg(&environment::func))
-
-#define init_unsigned_env_reg(name, func) \
-  register_dictionary.define(name, new unsigned_env_reg(&environment::func))
-
-#define init_vunits_env_reg(name, func) \
-  register_dictionary.define(name, new vunits_env_reg(&environment::func))
-
-#define init_hunits_env_reg(name, func) \
-  register_dictionary.define(name, new hunits_env_reg(&environment::func))
-
-#define init_string_env_reg(name, func) \
-  register_dictionary.define(name, new string_env_reg(&environment::func))
-
-void init_env_requests()
-{
-  init_request("ad", adjust);
-  init_request("br", break_without_adjustment);
-  init_request("brp", break_with_adjustment);
-  init_request("ce", center);
-  init_request("cu", continuous_underline);
-  init_request("ev", environment_switch);
-  init_request("evc", environment_copy);
-  init_request("fam", family_change);
-  init_request("fc", field_characters);
-  init_request("fi", fill);
-  init_request("fcolor", fill_color_change);
-  init_request("ft", select_font);
-  init_request("gcolor", glyph_color_change);
-  init_request("hc", hyphen_char);
-  init_request("hlm", hyphen_line_max_request);
-  init_request("hy", hyphenate_request);
-  init_request("hym", hyphenation_margin_request);
-  init_request("hys", hyphenation_space_request);
-  init_request("in", indent);
-  init_request("it", input_trap);
-  init_request("itc", input_trap_continued);
-  init_request("lc", leader_character);
-  init_request("linetabs", line_tabs_request);
-  init_request("ll", line_length);
-  init_request("ls", line_spacing);
-  init_request("lt", title_length);
-  init_request("mc", margin_character);
-  init_request("na", no_adjust);
-  init_request("nf", no_fill);
-  init_request("nh", no_hyphenate);
-  init_request("nm", number_lines);
-  init_request("nn", no_number);
-  init_request("pev", print_env);
-  init_request("ps", point_size);
-  init_request("pvs", post_vertical_spacing);
-  init_request("rj", right_justify);
-  init_request("sizes", override_sizes);
-  init_request("ss", space_size);
-  init_request("ta", set_tabs);
-  init_request("ti", temporary_indent);
-  init_request("tc", tab_character);
-  init_request("tl", title);
-  init_request("ul", underline);
-  init_request("vs", vertical_spacing);
-#ifdef WIDOW_CONTROL
-  init_request("wdc", widow_control_request);
-#endif /* WIDOW_CONTROL */
-  init_int_env_reg(".b", get_bold);
-  init_vunits_env_reg(".cdp", get_prev_char_depth);
-  init_int_env_reg(".ce", get_center_lines);
-  init_vunits_env_reg(".cht", get_prev_char_height);
-  init_hunits_env_reg(".csk", get_prev_char_skew);
-  init_string_env_reg(".ev", get_name_string);
-  init_int_env_reg(".f", get_font);
-  init_string_env_reg(".fam", get_font_family_string);
-  init_string_env_reg(".fn", get_font_name_string);
-  init_int_env_reg(".height", get_char_height);
-  init_int_env_reg(".hlc", get_hyphen_line_count);
-  init_int_env_reg(".hlm", get_hyphen_line_max);
-  init_unsigned_env_reg(".hy", get_hyphenation_mode);
-  init_unsigned_env_reg(".hydefault", get_hyphenation_mode_default);
-  init_hunits_env_reg(".hym", get_hyphenation_margin);
-  init_hunits_env_reg(".hys", get_hyphenation_space);
-  init_hunits_env_reg(".i", get_indent);
-  init_hunits_env_reg(".in", get_saved_indent);
-  init_int_env_reg(".int", get_prev_line_interrupted);
-  init_int_env_reg(".it", get_input_trap_line_count);
-  init_int_env_reg(".itc", get_input_trap_respects_continuation);
-  init_string_env_reg(".itm", get_input_trap_macro);
-  init_int_env_reg(".linetabs", get_line_tabs);
-  init_hunits_env_reg(".lt", get_title_length);
-  init_unsigned_env_reg(".j", get_adjust_mode);
-  init_hunits_env_reg(".k", get_text_length);
-  init_int_env_reg(".L", get_line_spacing);
-  init_hunits_env_reg(".l", get_line_length);
-  init_hunits_env_reg(".ll", get_saved_line_length);
-  init_string_env_reg(".M", get_fill_color_string);
-  init_string_env_reg(".m", get_glyph_color_string);
-  init_hunits_env_reg(".n", get_prev_text_length);
-  init_int_env_reg(".nm", get_numbering_nodes);
-  init_int_env_reg(".nn", get_no_number_count);
-  init_int_env_reg(".ps", get_point_size);
-  init_int_env_reg(".psr", get_requested_point_size);
-  init_vunits_env_reg(".pvs", get_post_vertical_spacing);
-  init_int_env_reg(".rj", get_right_justify_lines);
-  init_string_env_reg(".s", get_point_size_string);
-  init_int_env_reg(".slant", get_char_slant);
-  init_int_env_reg(".ss", get_space_size);
-  init_int_env_reg(".sss", get_sentence_space_size);
-  init_string_env_reg(".sr", get_requested_point_size_string);
-  init_string_env_reg(".sty", get_style_name_string);
-  init_string_env_reg(".tabs", get_tabs);
-  init_int_env_reg(".u", get_fill);
-  init_vunits_env_reg(".v", get_vertical_spacing);
-  init_hunits_env_reg(".w", get_prev_char_width);
-  init_int_env_reg(".zoom", get_zoom);
-  register_dictionary.define("ct", new variable_reg(&ct_reg_contents));
-  register_dictionary.define("hp", new horizontal_place_reg);
-  register_dictionary.define("ln", new variable_reg(&next_line_number));
-  register_dictionary.define("rsb", new variable_reg(&rsb_reg_contents));
-  register_dictionary.define("rst", new variable_reg(&rst_reg_contents));
-  register_dictionary.define("sb", new variable_reg(&sb_reg_contents));
-  register_dictionary.define("skw", new variable_reg(&skw_reg_contents));
-  register_dictionary.define("ssc", new variable_reg(&ssc_reg_contents));
-  register_dictionary.define("st", new variable_reg(&st_reg_contents));
-}
-
 // Hyphenation - TeX's hyphenation algorithm with a less fancy implementation.
 
 struct trie_node;
@@ -4133,6 +4009,150 @@ void hyphen_trie::read_patterns_file(const char *name, 
int append,
   return;
 }
 
+class hyphenation_language_reg : public reg {
+public:
+  const char *get_string();
+};
+
+const char *hyphenation_language_reg::get_string()
+{
+  return current_language ? current_language->name.contents() : "";
+}
+
+class hyphenation_default_mode_reg : public reg {
+public:
+  const char *get_string();
+};
+
+const char *hyphenation_default_mode_reg::get_string()
+{
+  return i_to_a(curenv->get_hyphenation_mode_default());
+}
+
+#define init_int_env_reg(name, func) \
+  register_dictionary.define(name, new int_env_reg(&environment::func))
+
+#define init_unsigned_env_reg(name, func) \
+  register_dictionary.define(name, new unsigned_env_reg(&environment::func))
+
+#define init_vunits_env_reg(name, func) \
+  register_dictionary.define(name, new vunits_env_reg(&environment::func))
+
+#define init_hunits_env_reg(name, func) \
+  register_dictionary.define(name, new hunits_env_reg(&environment::func))
+
+#define init_string_env_reg(name, func) \
+  register_dictionary.define(name, new string_env_reg(&environment::func))
+
+void init_env_requests()
+{
+  init_request("ad", adjust);
+  init_request("br", break_without_adjustment);
+  init_request("brp", break_with_adjustment);
+  init_request("ce", center);
+  init_request("cu", continuous_underline);
+  init_request("ev", environment_switch);
+  init_request("evc", environment_copy);
+  init_request("fam", family_change);
+  init_request("fc", field_characters);
+  init_request("fi", fill);
+  init_request("fcolor", fill_color_change);
+  init_request("ft", select_font);
+  init_request("gcolor", glyph_color_change);
+  init_request("hc", hyphen_char);
+  init_request("hlm", hyphen_line_max_request);
+  init_request("hy", hyphenate_request);
+  init_request("hym", hyphenation_margin_request);
+  init_request("hys", hyphenation_space_request);
+  init_request("in", indent);
+  init_request("it", input_trap);
+  init_request("itc", input_trap_continued);
+  init_request("lc", leader_character);
+  init_request("linetabs", line_tabs_request);
+  init_request("ll", line_length);
+  init_request("ls", line_spacing);
+  init_request("lt", title_length);
+  init_request("mc", margin_character);
+  init_request("na", no_adjust);
+  init_request("nf", no_fill);
+  init_request("nh", no_hyphenate);
+  init_request("nm", number_lines);
+  init_request("nn", no_number);
+  init_request("pev", print_env);
+  init_request("ps", point_size);
+  init_request("pvs", post_vertical_spacing);
+  init_request("rj", right_justify);
+  init_request("sizes", override_sizes);
+  init_request("ss", space_size);
+  init_request("ta", set_tabs);
+  init_request("ti", temporary_indent);
+  init_request("tc", tab_character);
+  init_request("tl", title);
+  init_request("ul", underline);
+  init_request("vs", vertical_spacing);
+#ifdef WIDOW_CONTROL
+  init_request("wdc", widow_control_request);
+#endif /* WIDOW_CONTROL */
+  init_int_env_reg(".b", get_bold);
+  init_vunits_env_reg(".cdp", get_prev_char_depth);
+  init_int_env_reg(".ce", get_center_lines);
+  init_vunits_env_reg(".cht", get_prev_char_height);
+  init_hunits_env_reg(".csk", get_prev_char_skew);
+  init_string_env_reg(".ev", get_name_string);
+  init_int_env_reg(".f", get_font);
+  init_string_env_reg(".fam", get_font_family_string);
+  init_string_env_reg(".fn", get_font_name_string);
+  init_int_env_reg(".height", get_char_height);
+  init_int_env_reg(".hlc", get_hyphen_line_count);
+  init_int_env_reg(".hlm", get_hyphen_line_max);
+  init_unsigned_env_reg(".hy", get_hyphenation_mode);
+  init_unsigned_env_reg(".hydefault", get_hyphenation_mode_default);
+  init_hunits_env_reg(".hym", get_hyphenation_margin);
+  init_hunits_env_reg(".hys", get_hyphenation_space);
+  init_hunits_env_reg(".i", get_indent);
+  init_hunits_env_reg(".in", get_saved_indent);
+  init_int_env_reg(".int", get_prev_line_interrupted);
+  init_int_env_reg(".it", get_input_trap_line_count);
+  init_int_env_reg(".itc", get_input_trap_respects_continuation);
+  init_string_env_reg(".itm", get_input_trap_macro);
+  init_int_env_reg(".linetabs", get_line_tabs);
+  init_hunits_env_reg(".lt", get_title_length);
+  init_unsigned_env_reg(".j", get_adjust_mode);
+  init_hunits_env_reg(".k", get_text_length);
+  init_int_env_reg(".L", get_line_spacing);
+  init_hunits_env_reg(".l", get_line_length);
+  init_hunits_env_reg(".ll", get_saved_line_length);
+  init_string_env_reg(".M", get_fill_color_string);
+  init_string_env_reg(".m", get_glyph_color_string);
+  init_hunits_env_reg(".n", get_prev_text_length);
+  init_int_env_reg(".nm", get_numbering_nodes);
+  init_int_env_reg(".nn", get_no_number_count);
+  init_int_env_reg(".ps", get_point_size);
+  init_int_env_reg(".psr", get_requested_point_size);
+  init_vunits_env_reg(".pvs", get_post_vertical_spacing);
+  init_int_env_reg(".rj", get_right_justify_lines);
+  init_string_env_reg(".s", get_point_size_string);
+  init_int_env_reg(".slant", get_char_slant);
+  init_int_env_reg(".ss", get_space_size);
+  init_int_env_reg(".sss", get_sentence_space_size);
+  init_string_env_reg(".sr", get_requested_point_size_string);
+  init_string_env_reg(".sty", get_style_name_string);
+  init_string_env_reg(".tabs", get_tabs);
+  init_int_env_reg(".u", get_fill);
+  init_vunits_env_reg(".v", get_vertical_spacing);
+  init_hunits_env_reg(".w", get_prev_char_width);
+  init_int_env_reg(".zoom", get_zoom);
+  register_dictionary.define("ct", new variable_reg(&ct_reg_contents));
+  register_dictionary.define("hp", new horizontal_place_reg);
+  register_dictionary.define("ln", new variable_reg(&next_line_number));
+  register_dictionary.define("rsb", new variable_reg(&rsb_reg_contents));
+  register_dictionary.define("rst", new variable_reg(&rst_reg_contents));
+  register_dictionary.define("sb", new variable_reg(&sb_reg_contents));
+  register_dictionary.define("skw", new variable_reg(&skw_reg_contents));
+  register_dictionary.define("ssc", new variable_reg(&ssc_reg_contents));
+  register_dictionary.define("st", new variable_reg(&st_reg_contents));
+}
+
 void hyphenate(hyphen_list *h, unsigned flags)
 {
   if (!current_language)
@@ -4264,26 +4284,6 @@ static void append_hyphenation_patterns_from_file()
   read_hyphenation_patterns_from_file(true /* append */);
 }
 
-class hyphenation_language_reg : public reg {
-public:
-  const char *get_string();
-};
-
-const char *hyphenation_language_reg::get_string()
-{
-  return current_language ? current_language->name.contents() : "";
-}
-
-class hyphenation_default_mode_reg : public reg {
-public:
-  const char *get_string();
-};
-
-const char *hyphenation_default_mode_reg::get_string()
-{
-  return i_to_a(curenv->get_hyphenation_mode_default());
-}
-
 void init_hyphen_requests()
 {
   init_request("hla", select_hyphenation_language);



reply via email to

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