{"gids",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_gids,"Specify glyph IDs or ranges to include in the subset","list of glyph indices/ranges"},
{"gids-file",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_file_for<parse_gids>,"Specify file to read glyph IDs or ranges from","filename"},
{"glyphs",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_glyphs,"Specify glyph names to include in the subset","list of glyph names"},
{"glyphs-file",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_file_for<parse_glyphs>,"Specify file to read glyph names fromt","filename"},
{"text",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_text,"Specify text to include in the subset","string"},
{"text-file",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_file_for<parse_text,false>,"Specify file to read text from","filename"},
{"unicodes",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_unicodes,"Specify Unicode codepoints or ranges to include in the subset","list of hex numbers/ranges"},
{"unicodes-file",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_file_for<parse_unicodes>,"Specify file to read Unicode codepoints or ranges from","filename"},
{"gids",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_gids,"Specify glyph IDs or ranges to include in the subset","list of glyph indices/ranges"},
{"gids-file",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_file_for<parse_gids>,"Specify file to read glyph IDs or ranges from","filename"},
{"glyphs",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_glyphs,"Specify glyph names to include in the subset","list of glyph names"},
{"glyphs-file",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_file_for<parse_glyphs>,"Specify file to read glyph names fromt","filename"},
{"text",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_text,"Specify text to include in the subset","string"},
{"text-file",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_file_for<parse_text,false>,"Specify file to read text from","filename"},
{"unicodes",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_unicodes,"Specify Unicode codepoints or ranges to include in the subset","list of hex numbers/ranges"},
{"unicodes-file",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_file_for<parse_unicodes>,"Specify file to read Unicode codepoints or ranges from","filename"},
{"name-IDs",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_nameids,"Subset specified nameids","list of int numbers"},
{"name-IDs-",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_nameids,"Subset specified nameids","list of int numbers"},
{"name-IDs+",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_nameids,"Subset specified nameids","list of int numbers"},
{"name-languages",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_name_languages,"Subset nameRecords with specified language IDs","list of int numbers"},
{"name-languages-",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_name_languages,"Subset nameRecords with specified language IDs","list of int numbers"},
{"name-languages+",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_name_languages,"Subset nameRecords with specified language IDs","list of int numbers"},
{"layout-features",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_layout_features,"Specify set of layout feature tags that will be preserved","list of string table tags."},
{"layout-features+",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_layout_features,"Specify set of layout feature tags that will be preserved","list of string table tags."},
{"layout-features-",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_layout_features,"Specify set of layout feature tags that will be preserved","list of string table tags."},
{"drop-tables",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_drop_tables,"Drop the specified tables.","list of string table tags."},
{"drop-tables+",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_drop_tables,"Drop the specified tables.","list of string table tags."},
{"drop-tables-",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_drop_tables,"Drop the specified tables.","list of string table tags."},
{"name-IDs",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_nameids,"Subset specified nameids","list of int numbers"},
{"name-IDs-",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_nameids,"Subset specified nameids","list of int numbers"},
{"name-IDs+",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_nameids,"Subset specified nameids","list of int numbers"},
{"name-languages",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_name_languages,"Subset nameRecords with specified language IDs","list of int numbers"},
{"name-languages-",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_name_languages,"Subset nameRecords with specified language IDs","list of int numbers"},
{"name-languages+",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_name_languages,"Subset nameRecords with specified language IDs","list of int numbers"},
{"layout-features",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_layout_features,"Specify set of layout feature tags that will be preserved","list of string table tags."},
{"layout-features+",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_layout_features,"Specify set of layout feature tags that will be preserved","list of string table tags."},
{"layout-features-",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_layout_features,"Specify set of layout feature tags that will be preserved","list of string table tags."},
{"drop-tables",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_drop_tables,"Drop the specified tables.","list of string table tags."},
{"drop-tables+",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_drop_tables,"Drop the specified tables.","list of string table tags."},
{"drop-tables-",0,0,G_OPTION_ARG_CALLBACK,(gpointer)&parse_drop_tables,"Drop the specified tables.","list of string table tags."},
{"no-hinting",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_NO_HINTING>,"Whether to drop hints",nullptr},
{"retain-gids",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_RETAIN_GIDS>,"If set don't renumber glyph ids in the subset.",nullptr},
{"desubroutinize",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_DESUBROUTINIZE>,"Remove CFF/CFF2 use of subroutines",nullptr},
{"notdef-outline",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_NOTDEF_OUTLINE>,"Keep the outline of \'.notdef\' glyph",nullptr},
{"no-prune-unicode-ranges",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_NO_PRUNE_UNICODE_RANGES>,"Don't change the 'OS/2 ulUnicodeRange*' bits.",nullptr},
{"glyph-names",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_GLYPH_NAMES>,"Keep PS glyph names in TT-flavored fonts. ",nullptr},
{"no-hinting",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_NO_HINTING>,"Whether to drop hints",nullptr},
{"retain-gids",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_RETAIN_GIDS>,"If set don't renumber glyph ids in the subset.",nullptr},
{"desubroutinize",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_DESUBROUTINIZE>,"Remove CFF/CFF2 use of subroutines",nullptr},
{"set-overlaps-flag",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_SET_OVERLAPS_FLAG>,"Set the overlaps flag on each glyph.",nullptr},
{"notdef-outline",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_NOTDEF_OUTLINE>,"Keep the outline of \'.notdef\' glyph",nullptr},
{"no-prune-unicode-ranges",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_NO_PRUNE_UNICODE_RANGES>,"Don't change the 'OS/2 ulUnicodeRange*' bits.",nullptr},
{"glyph-names",0,G_OPTION_FLAG_NO_ARG,G_OPTION_ARG_CALLBACK,(gpointer)&set_flag<HB_SUBSET_FLAGS_GLYPH_NAMES>,"Keep PS glyph names in TT-flavored fonts. ",nullptr},
{nullptr}
};
add_group(flag_entries,
@ -674,58 +748,6 @@ subset_main_t::add_options ()
option_parser_t::add_options();
}
void
subset_main_t::post_parse(GError**error)
{
/* This WILL get called multiple times. Oh well... */