[util] Collect cmdline arg options outside of constructor
This commit is contained in:
parent
e57dd66889
commit
e109f9a6f9
|
@ -32,14 +32,10 @@
|
||||||
|
|
||||||
struct shape_closure_consumer_t : option_group_t
|
struct shape_closure_consumer_t : option_group_t
|
||||||
{
|
{
|
||||||
shape_closure_consumer_t (option_parser_t *parser)
|
|
||||||
: shaper (parser)
|
|
||||||
{
|
|
||||||
add_options (parser);
|
|
||||||
}
|
|
||||||
|
|
||||||
void add_options (struct option_parser_t *parser) override
|
void add_options (struct option_parser_t *parser) override
|
||||||
{
|
{
|
||||||
|
shaper.add_options (parser);
|
||||||
|
|
||||||
GOptionEntry entries[] =
|
GOptionEntry entries[] =
|
||||||
{
|
{
|
||||||
{"no-glyph-names", 0, G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &this->show_glyph_names, "Use glyph indices instead of names", nullptr},
|
{"no-glyph-names", 0, G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &this->show_glyph_names, "Use glyph indices instead of names", nullptr},
|
||||||
|
|
|
@ -30,11 +30,16 @@
|
||||||
|
|
||||||
struct output_buffer_t
|
struct output_buffer_t
|
||||||
{
|
{
|
||||||
output_buffer_t (option_parser_t *parser)
|
output_buffer_t ()
|
||||||
: options (parser, hb_buffer_serialize_list_formats ()),
|
: options (hb_buffer_serialize_list_formats ())
|
||||||
format (parser)
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
void add_options (option_parser_t *parser)
|
||||||
|
{
|
||||||
|
options.add_options (parser);
|
||||||
|
format.add_options (parser);
|
||||||
|
}
|
||||||
|
|
||||||
void init (hb_buffer_t *buffer, const font_options_t *font_opts)
|
void init (hb_buffer_t *buffer, const font_options_t *font_opts)
|
||||||
{
|
{
|
||||||
options.get_file_handle ();
|
options.get_file_handle ();
|
||||||
|
|
|
@ -36,10 +36,11 @@
|
||||||
|
|
||||||
struct subset_consumer_t
|
struct subset_consumer_t
|
||||||
{
|
{
|
||||||
subset_consumer_t (option_parser_t *parser)
|
void add_options (option_parser_t *parser)
|
||||||
: options (parser),
|
{
|
||||||
subset_options (parser)
|
output_options.add_options (parser);
|
||||||
{}
|
subset_options.add_options (parser);
|
||||||
|
}
|
||||||
|
|
||||||
void init (hb_buffer_t *buffer_,
|
void init (hb_buffer_t *buffer_,
|
||||||
const font_options_t *font_opts)
|
const font_options_t *font_opts)
|
||||||
|
@ -108,7 +109,7 @@ struct subset_consumer_t
|
||||||
if (!failed)
|
if (!failed)
|
||||||
{
|
{
|
||||||
hb_blob_t *result = hb_face_reference_blob (new_face);
|
hb_blob_t *result = hb_face_reference_blob (new_face);
|
||||||
write_file (options.output_file, result);
|
write_file (output_options.output_file, result);
|
||||||
hb_blob_destroy (result);
|
hb_blob_destroy (result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,7 +122,7 @@ struct subset_consumer_t
|
||||||
bool failed = false;
|
bool failed = false;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
output_options_t options;
|
output_options_t output_options;
|
||||||
subset_options_t subset_options;
|
subset_options_t subset_options;
|
||||||
|
|
||||||
hb_face_t *face = nullptr;
|
hb_face_t *face = nullptr;
|
||||||
|
|
|
@ -51,14 +51,21 @@ template <typename consumer_t, int default_font_size, int subpixel_bits, int eol
|
||||||
struct main_font_text_t
|
struct main_font_text_t
|
||||||
{
|
{
|
||||||
main_font_text_t ()
|
main_font_text_t ()
|
||||||
: options ("[FONT-FILE] [TEXT]"),
|
: font_opts (default_font_size, subpixel_bits)
|
||||||
font_opts (&options, default_font_size, subpixel_bits),
|
{}
|
||||||
input (&options),
|
|
||||||
consumer (&options) {}
|
void add_options (option_parser_t *parser)
|
||||||
|
{
|
||||||
|
font_opts.add_options (parser);
|
||||||
|
input.add_options (parser);
|
||||||
|
consumer.add_options (parser);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char **argv)
|
main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
option_parser_t options ("[FONT-FILE] [TEXT]");
|
||||||
|
add_options (&options);
|
||||||
options.parse (&argc, &argv);
|
options.parse (&argc, &argv);
|
||||||
|
|
||||||
argc--, argv++;
|
argc--, argv++;
|
||||||
|
@ -86,7 +93,6 @@ struct main_font_text_t
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
option_parser_t options;
|
|
||||||
font_options_t font_opts;
|
font_options_t font_opts;
|
||||||
text_options_t input;
|
text_options_t input;
|
||||||
consumer_t consumer;
|
consumer_t consumer;
|
||||||
|
|
|
@ -117,10 +117,6 @@ struct option_parser_t
|
||||||
|
|
||||||
struct view_options_t : option_group_t
|
struct view_options_t : option_group_t
|
||||||
{
|
{
|
||||||
view_options_t (option_parser_t *parser)
|
|
||||||
{
|
|
||||||
add_options (parser);
|
|
||||||
}
|
|
||||||
~view_options_t () override
|
~view_options_t () override
|
||||||
{
|
{
|
||||||
g_free (fore);
|
g_free (fore);
|
||||||
|
@ -145,10 +141,6 @@ struct view_options_t : option_group_t
|
||||||
|
|
||||||
struct shape_options_t : option_group_t
|
struct shape_options_t : option_group_t
|
||||||
{
|
{
|
||||||
shape_options_t (option_parser_t *parser)
|
|
||||||
{
|
|
||||||
add_options (parser);
|
|
||||||
}
|
|
||||||
~shape_options_t () override
|
~shape_options_t () override
|
||||||
{
|
{
|
||||||
g_free (direction);
|
g_free (direction);
|
||||||
|
@ -433,16 +425,13 @@ struct shape_options_t : option_group_t
|
||||||
|
|
||||||
struct font_options_t : option_group_t
|
struct font_options_t : option_group_t
|
||||||
{
|
{
|
||||||
font_options_t (option_parser_t *parser,
|
font_options_t (int default_font_size_,
|
||||||
int default_font_size_,
|
|
||||||
unsigned int subpixel_bits_)
|
unsigned int subpixel_bits_)
|
||||||
: default_font_size (default_font_size_),
|
: default_font_size (default_font_size_),
|
||||||
subpixel_bits (subpixel_bits_),
|
subpixel_bits (subpixel_bits_),
|
||||||
font_size_x (default_font_size_),
|
font_size_x (default_font_size_),
|
||||||
font_size_y (default_font_size_)
|
font_size_y (default_font_size_)
|
||||||
{
|
{}
|
||||||
add_options (parser);
|
|
||||||
}
|
|
||||||
~font_options_t () override
|
~font_options_t () override
|
||||||
{
|
{
|
||||||
g_free (font_file);
|
g_free (font_file);
|
||||||
|
@ -492,10 +481,6 @@ struct font_options_t : option_group_t
|
||||||
|
|
||||||
struct text_options_t : option_group_t
|
struct text_options_t : option_group_t
|
||||||
{
|
{
|
||||||
text_options_t (option_parser_t *parser)
|
|
||||||
{
|
|
||||||
add_options (parser);
|
|
||||||
}
|
|
||||||
~text_options_t () override
|
~text_options_t () override
|
||||||
{
|
{
|
||||||
g_free (text_before);
|
g_free (text_before);
|
||||||
|
@ -535,12 +520,9 @@ struct text_options_t : option_group_t
|
||||||
|
|
||||||
struct output_options_t : option_group_t
|
struct output_options_t : option_group_t
|
||||||
{
|
{
|
||||||
output_options_t (option_parser_t *parser,
|
output_options_t (const char **supported_formats_ = nullptr)
|
||||||
const char **supported_formats_ = nullptr)
|
|
||||||
: supported_formats (supported_formats_)
|
: supported_formats (supported_formats_)
|
||||||
{
|
{}
|
||||||
add_options (parser);
|
|
||||||
}
|
|
||||||
~output_options_t () override
|
~output_options_t () override
|
||||||
{
|
{
|
||||||
g_free (output_file);
|
g_free (output_file);
|
||||||
|
@ -581,10 +563,6 @@ struct output_options_t : option_group_t
|
||||||
|
|
||||||
struct format_options_t : option_group_t
|
struct format_options_t : option_group_t
|
||||||
{
|
{
|
||||||
format_options_t (option_parser_t *parser) {
|
|
||||||
add_options (parser);
|
|
||||||
}
|
|
||||||
|
|
||||||
void add_options (option_parser_t *parser) override;
|
void add_options (option_parser_t *parser) override;
|
||||||
|
|
||||||
void serialize (hb_buffer_t *buffer,
|
void serialize (hb_buffer_t *buffer,
|
||||||
|
@ -628,12 +606,9 @@ struct format_options_t : option_group_t
|
||||||
|
|
||||||
struct subset_options_t : option_group_t
|
struct subset_options_t : option_group_t
|
||||||
{
|
{
|
||||||
subset_options_t (option_parser_t *parser)
|
subset_options_t ()
|
||||||
: input (hb_subset_input_create_or_fail ())
|
: input (hb_subset_input_create_or_fail ())
|
||||||
{
|
{}
|
||||||
add_options (parser);
|
|
||||||
}
|
|
||||||
|
|
||||||
~subset_options_t () override
|
~subset_options_t () override
|
||||||
{
|
{
|
||||||
hb_subset_input_destroy (input);
|
hb_subset_input_destroy (input);
|
||||||
|
|
|
@ -34,10 +34,11 @@
|
||||||
template <typename output_t>
|
template <typename output_t>
|
||||||
struct shape_consumer_t
|
struct shape_consumer_t
|
||||||
{
|
{
|
||||||
shape_consumer_t (option_parser_t *parser)
|
void add_options (option_parser_t *parser)
|
||||||
: shaper (parser),
|
{
|
||||||
output (parser)
|
shaper.add_options (parser);
|
||||||
{}
|
output.add_options (parser);
|
||||||
|
}
|
||||||
|
|
||||||
void init (hb_buffer_t *buffer_,
|
void init (hb_buffer_t *buffer_,
|
||||||
const font_options_t *font_opts)
|
const font_options_t *font_opts)
|
||||||
|
|
|
@ -34,15 +34,20 @@
|
||||||
|
|
||||||
struct view_cairo_t
|
struct view_cairo_t
|
||||||
{
|
{
|
||||||
view_cairo_t (option_parser_t *parser)
|
view_cairo_t ()
|
||||||
: output_options (parser, helper_cairo_supported_formats),
|
: output_options (helper_cairo_supported_formats)
|
||||||
view_options (parser)
|
|
||||||
{}
|
{}
|
||||||
~view_cairo_t ()
|
~view_cairo_t ()
|
||||||
{
|
{
|
||||||
cairo_debug_reset_static_data ();
|
cairo_debug_reset_static_data ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void add_options (option_parser_t *parser)
|
||||||
|
{
|
||||||
|
output_options.add_options (parser);
|
||||||
|
view_options.add_options (parser);
|
||||||
|
}
|
||||||
|
|
||||||
void init (hb_buffer_t *buffer, const font_options_t *font_opts)
|
void init (hb_buffer_t *buffer, const font_options_t *font_opts)
|
||||||
{
|
{
|
||||||
lines = g_array_new (false, false, sizeof (helper_cairo_line_t));
|
lines = g_array_new (false, false, sizeof (helper_cairo_line_t));
|
||||||
|
|
Loading…
Reference in New Issue