[subset] Update remaining subset input sets to use inversion for all. (#3172)
* [subset] Update remaining subset input sets to use inversion for all. * [subset] Update flag help for remaining sets to mention -=.
This commit is contained in:
parent
99356ea5f0
commit
9db494f517
|
@ -40,13 +40,13 @@ struct hb_subset_input_t
|
|||
{
|
||||
hb_object_header_t header;
|
||||
|
||||
hb_set_t *unicodes;
|
||||
hb_set_t *glyphs;
|
||||
hb_set_t *name_ids;
|
||||
hb_set_t *name_languages;
|
||||
hb_set_t *no_subset_tables;
|
||||
hb_set_t *drop_tables;
|
||||
hb_set_t *layout_features;
|
||||
hb_set_t *unicodes; // invert safe
|
||||
hb_set_t *glyphs; // invert safe
|
||||
hb_set_t *name_ids; // invert safe
|
||||
hb_set_t *name_languages; // invert safe
|
||||
hb_set_t *no_subset_tables; // invert safe
|
||||
hb_set_t *drop_tables; // invert safe
|
||||
hb_set_t *layout_features; // invert safe
|
||||
|
||||
unsigned flags;
|
||||
|
||||
|
|
|
@ -159,8 +159,11 @@ parse_gids (const char *name G_GNUC_UNUSED,
|
|||
{
|
||||
subset_main_t *subset_main = (subset_main_t *) data;
|
||||
hb_bool_t is_remove = (name[strlen (name) - 1] == '-');
|
||||
hb_bool_t is_add = (name[strlen (name) - 1] == '+');
|
||||
hb_set_t *gids = hb_subset_input_glyph_set (subset_main->input);
|
||||
|
||||
if (!is_remove && !is_add) hb_set_clear (gids);
|
||||
|
||||
if (0 == strcmp (arg, "*"))
|
||||
{
|
||||
hb_set_clear (gids);
|
||||
|
@ -232,8 +235,11 @@ parse_glyphs (const char *name G_GNUC_UNUSED,
|
|||
{
|
||||
subset_main_t *subset_main = (subset_main_t *) data;
|
||||
hb_bool_t is_remove = (name[strlen (name) - 1] == '-');
|
||||
hb_bool_t is_add = (name[strlen (name) - 1] == '+');
|
||||
hb_set_t *gids = hb_subset_input_glyph_set (subset_main->input);
|
||||
|
||||
if (!is_remove && !is_add) hb_set_clear (gids);
|
||||
|
||||
if (0 == strcmp (arg, "*"))
|
||||
{
|
||||
hb_set_clear (gids);
|
||||
|
@ -286,8 +292,11 @@ parse_text (const char *name G_GNUC_UNUSED,
|
|||
{
|
||||
subset_main_t *subset_main = (subset_main_t *) data;
|
||||
hb_bool_t is_remove = (name[strlen (name) - 1] == '-');
|
||||
|
||||
hb_bool_t is_add = (name[strlen (name) - 1] == '+');
|
||||
hb_set_t *unicodes = hb_subset_input_unicode_set (subset_main->input);
|
||||
|
||||
if (!is_remove && !is_add) hb_set_clear (unicodes);
|
||||
|
||||
if (0 == strcmp (arg, "*"))
|
||||
{
|
||||
hb_set_clear (unicodes);
|
||||
|
@ -317,8 +326,11 @@ parse_unicodes (const char *name G_GNUC_UNUSED,
|
|||
{
|
||||
subset_main_t *subset_main = (subset_main_t *) data;
|
||||
hb_bool_t is_remove = (name[strlen (name) - 1] == '-');
|
||||
|
||||
hb_bool_t is_add = (name[strlen (name) - 1] == '+');
|
||||
hb_set_t *unicodes = hb_subset_input_unicode_set (subset_main->input);
|
||||
|
||||
if (!is_remove && !is_add) hb_set_clear (unicodes);
|
||||
|
||||
if (0 == strcmp (arg, "*"))
|
||||
{
|
||||
hb_set_clear (unicodes);
|
||||
|
@ -392,19 +404,18 @@ parse_nameids (const char *name,
|
|||
GError **error)
|
||||
{
|
||||
subset_main_t *subset_main = (subset_main_t *) data;
|
||||
hb_bool_t is_remove = (name[strlen (name) - 1] == '-');
|
||||
hb_bool_t is_add = (name[strlen (name) - 1] == '+');
|
||||
hb_set_t *name_ids = hb_subset_input_nameid_set (subset_main->input);
|
||||
|
||||
char last_name_char = name[strlen (name) - 1];
|
||||
|
||||
if (last_name_char != '+' && last_name_char != '-')
|
||||
hb_set_clear (name_ids);
|
||||
if (!is_remove && !is_add) hb_set_clear (name_ids);
|
||||
|
||||
if (0 == strcmp (arg, "*"))
|
||||
{
|
||||
if (last_name_char == '-')
|
||||
hb_set_del_range (name_ids, 0, 0x7FFF);
|
||||
else
|
||||
hb_set_add_range (name_ids, 0, 0x7FFF);
|
||||
hb_set_clear (name_ids);
|
||||
if (!is_remove)
|
||||
hb_set_invert (name_ids);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -427,7 +438,7 @@ parse_nameids (const char *name,
|
|||
return false;
|
||||
}
|
||||
|
||||
if (last_name_char != '-')
|
||||
if (!is_remove)
|
||||
{
|
||||
hb_set_add (name_ids, u);
|
||||
} else {
|
||||
|
@ -447,19 +458,17 @@ parse_name_languages (const char *name,
|
|||
GError **error)
|
||||
{
|
||||
subset_main_t *subset_main = (subset_main_t *) data;
|
||||
hb_bool_t is_remove = (name[strlen (name) - 1] == '-');
|
||||
hb_bool_t is_add = (name[strlen (name) - 1] == '+');
|
||||
hb_set_t *name_languages = hb_subset_input_namelangid_set (subset_main->input);
|
||||
|
||||
char last_name_char = name[strlen (name) - 1];
|
||||
|
||||
if (last_name_char != '+' && last_name_char != '-')
|
||||
hb_set_clear (name_languages);
|
||||
if (!is_remove && !is_add) hb_set_clear (name_languages);
|
||||
|
||||
if (0 == strcmp (arg, "*"))
|
||||
{
|
||||
if (last_name_char == '-')
|
||||
hb_set_del_range (name_languages, 0, 0x5FFF);
|
||||
else
|
||||
hb_set_add_range (name_languages, 0, 0x5FFF);
|
||||
hb_set_clear (name_languages);
|
||||
if (!is_remove)
|
||||
hb_set_invert (name_languages);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -482,7 +491,7 @@ parse_name_languages (const char *name,
|
|||
return false;
|
||||
}
|
||||
|
||||
if (last_name_char != '-')
|
||||
if (!is_remove)
|
||||
{
|
||||
hb_set_add (name_languages, u);
|
||||
} else {
|
||||
|
@ -517,17 +526,16 @@ parse_layout_features (const char *name,
|
|||
GError **error G_GNUC_UNUSED)
|
||||
{
|
||||
subset_main_t *subset_main = (subset_main_t *) data;
|
||||
hb_bool_t is_remove = (name[strlen (name) - 1] == '-');
|
||||
hb_bool_t is_add = (name[strlen (name) - 1] == '+');
|
||||
hb_set_t *layout_features = hb_subset_input_layout_features_set (subset_main->input);
|
||||
|
||||
char last_name_char = name[strlen (name) - 1];
|
||||
|
||||
if (last_name_char != '+' && last_name_char != '-')
|
||||
hb_set_clear (layout_features);
|
||||
if (!is_remove && !is_add) hb_set_clear (layout_features);
|
||||
|
||||
if (0 == strcmp (arg, "*"))
|
||||
{
|
||||
hb_set_clear (layout_features);
|
||||
if (last_name_char != '-')
|
||||
if (!is_remove)
|
||||
hb_set_invert (layout_features);
|
||||
return true;
|
||||
}
|
||||
|
@ -544,7 +552,7 @@ parse_layout_features (const char *name,
|
|||
|
||||
hb_tag_t tag = hb_tag_from_string (s, strlen (s));
|
||||
|
||||
if (last_name_char != '-')
|
||||
if (!is_remove)
|
||||
hb_set_add (layout_features, tag);
|
||||
else
|
||||
hb_set_del (layout_features, tag);
|
||||
|
@ -562,12 +570,19 @@ parse_drop_tables (const char *name,
|
|||
GError **error)
|
||||
{
|
||||
subset_main_t *subset_main = (subset_main_t *) data;
|
||||
hb_bool_t is_remove = (name[strlen (name) - 1] == '-');
|
||||
hb_bool_t is_add = (name[strlen (name) - 1] == '+');
|
||||
hb_set_t *drop_tables = hb_subset_input_drop_tables_set (subset_main->input);
|
||||
|
||||
char last_name_char = name[strlen (name) - 1];
|
||||
if (!is_remove && !is_add) hb_set_clear (drop_tables);
|
||||
|
||||
if (last_name_char != '+' && last_name_char != '-')
|
||||
if (0 == strcmp (arg, "*"))
|
||||
{
|
||||
hb_set_clear (drop_tables);
|
||||
if (!is_remove)
|
||||
hb_set_invert (drop_tables);
|
||||
return true;
|
||||
}
|
||||
|
||||
char *s = strtok((char *) arg, ", ");
|
||||
while (s)
|
||||
|
@ -581,7 +596,7 @@ parse_drop_tables (const char *name,
|
|||
|
||||
hb_tag_t tag = hb_tag_from_string (s, strlen (s));
|
||||
|
||||
if (last_name_char != '-')
|
||||
if (!is_remove)
|
||||
hb_set_add (drop_tables, tag);
|
||||
else
|
||||
hb_set_del (drop_tables, tag);
|
||||
|
@ -745,18 +760,18 @@ subset_main_t::add_options ()
|
|||
|
||||
GOptionEntry other_entries[] =
|
||||
{
|
||||
{"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. Use --name-IDs-=... to substract from the current set.", "list of int numbers or *"},
|
||||
{"name-IDs-", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, (gpointer) &parse_nameids, "Subset specified nameids", "list of int numbers or *"},
|
||||
{"name-IDs+", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, (gpointer) &parse_nameids, "Subset specified nameids", "list of int numbers or *"},
|
||||
{"name-languages", 0, 0, G_OPTION_ARG_CALLBACK, (gpointer) &parse_name_languages, "Subset nameRecords with specified language IDs. Use --name-languages-=... to substract from the current set.", "list of int numbers or *"},
|
||||
{"name-languages-", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, (gpointer) &parse_name_languages, "Subset nameRecords with specified language IDs", "list of int numbers or *"},
|
||||
{"name-languages+", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, (gpointer) &parse_name_languages, "Subset nameRecords with specified language IDs", "list of int numbers or *"},
|
||||
{"layout-features", 0, 0, G_OPTION_ARG_CALLBACK, (gpointer) &parse_layout_features, "Specify set of layout feature tags that will be preserved. Use --layout-features-=... to substract from the current set.", "list of string table tags or *"},
|
||||
{"layout-features+",0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, (gpointer) &parse_layout_features, "Specify set of layout feature tags that will be preserved", "list of string table tags or *"},
|
||||
{"layout-features-",0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, (gpointer) &parse_layout_features, "Specify set of layout feature tags that will be preserved", "list of string table tags or *"},
|
||||
{"drop-tables", 0, 0, G_OPTION_ARG_CALLBACK, (gpointer) &parse_drop_tables, "Drop the specified tables. Use --drop-tables-=... to substract from the current set.", "list of string table tags or *"},
|
||||
{"drop-tables+", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, (gpointer) &parse_drop_tables, "Drop the specified tables.", "list of string table tags or *"},
|
||||
{"drop-tables-", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, (gpointer) &parse_drop_tables, "Drop the specified tables.", "list of string table tags or *"},
|
||||
{nullptr}
|
||||
};
|
||||
add_group (other_entries,
|
||||
|
|
Loading…
Reference in New Issue