[util] Add --bot / --eot / --preserve-default-ignorables
This commit is contained in:
parent
78d41d8d69
commit
407f80d625
|
@ -271,6 +271,9 @@ shape_options_t::add_options (option_parser_t *parser)
|
||||||
{"direction", 0, 0, G_OPTION_ARG_STRING, &this->direction, "Set text direction (default: auto)", "ltr/rtl/ttb/btt"},
|
{"direction", 0, 0, G_OPTION_ARG_STRING, &this->direction, "Set text direction (default: auto)", "ltr/rtl/ttb/btt"},
|
||||||
{"language", 0, 0, G_OPTION_ARG_STRING, &this->language, "Set text language (default: $LANG)", "langstr"},
|
{"language", 0, 0, G_OPTION_ARG_STRING, &this->language, "Set text language (default: $LANG)", "langstr"},
|
||||||
{"script", 0, 0, G_OPTION_ARG_STRING, &this->script, "Set text script (default: auto)", "ISO-15924 tag"},
|
{"script", 0, 0, G_OPTION_ARG_STRING, &this->script, "Set text script (default: auto)", "ISO-15924 tag"},
|
||||||
|
{"bot", 0, 0, G_OPTION_ARG_NONE, &this->bot, "Treat text as beginning-of-paragraph", NULL},
|
||||||
|
{"eot", 0, 0, G_OPTION_ARG_NONE, &this->eot, "Treat text as end-of-paragraph", NULL},
|
||||||
|
{"preserve-default-ignorables",0, 0, G_OPTION_ARG_NONE, &this->preserve_default_ignorables, "Preserve Default-Ignorable characters", NULL},
|
||||||
{"utf8-clusters", 0, 0, G_OPTION_ARG_NONE, &this->utf8_clusters, "Use UTF8 byte indices, not char indices", NULL},
|
{"utf8-clusters", 0, 0, G_OPTION_ARG_NONE, &this->utf8_clusters, "Use UTF8 byte indices, not char indices", NULL},
|
||||||
{"normalize-glyphs",0, 0, G_OPTION_ARG_NONE, &this->normalize_glyphs, "Rearrange glyph clusters in nominal order", NULL},
|
{"normalize-glyphs",0, 0, G_OPTION_ARG_NONE, &this->normalize_glyphs, "Rearrange glyph clusters in nominal order", NULL},
|
||||||
{NULL}
|
{NULL}
|
||||||
|
|
|
@ -144,6 +144,7 @@ struct shape_options_t : option_group_t
|
||||||
shape_options_t (option_parser_t *parser)
|
shape_options_t (option_parser_t *parser)
|
||||||
{
|
{
|
||||||
direction = language = script = NULL;
|
direction = language = script = NULL;
|
||||||
|
bot = eot = preserve_default_ignorables = false;
|
||||||
features = NULL;
|
features = NULL;
|
||||||
num_features = 0;
|
num_features = 0;
|
||||||
shapers = NULL;
|
shapers = NULL;
|
||||||
|
@ -165,6 +166,10 @@ struct shape_options_t : option_group_t
|
||||||
hb_buffer_set_direction (buffer, hb_direction_from_string (direction, -1));
|
hb_buffer_set_direction (buffer, hb_direction_from_string (direction, -1));
|
||||||
hb_buffer_set_script (buffer, hb_script_from_string (script, -1));
|
hb_buffer_set_script (buffer, hb_script_from_string (script, -1));
|
||||||
hb_buffer_set_language (buffer, hb_language_from_string (language, -1));
|
hb_buffer_set_language (buffer, hb_language_from_string (language, -1));
|
||||||
|
hb_buffer_set_flags (buffer, (hb_buffer_flags_t) (HB_BUFFER_FLAGS_DEFAULT |
|
||||||
|
(bot ? HB_BUFFER_FLAG_BOT : 0) |
|
||||||
|
(eot ? HB_BUFFER_FLAG_EOT : 0) |
|
||||||
|
(preserve_default_ignorables ? HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES : 0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void populate_buffer (hb_buffer_t *buffer, const char *text, int text_len,
|
void populate_buffer (hb_buffer_t *buffer, const char *text, int text_len,
|
||||||
|
@ -213,9 +218,16 @@ struct shape_options_t : option_group_t
|
||||||
hb_ot_shape_glyphs_closure (font, buffer, features, num_features, glyphs);
|
hb_ot_shape_glyphs_closure (font, buffer, features, num_features, glyphs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Buffer properties */
|
||||||
const char *direction;
|
const char *direction;
|
||||||
const char *language;
|
const char *language;
|
||||||
const char *script;
|
const char *script;
|
||||||
|
|
||||||
|
/* Buffer flags */
|
||||||
|
hb_bool_t bot;
|
||||||
|
hb_bool_t eot;
|
||||||
|
hb_bool_t preserve_default_ignorables;
|
||||||
|
|
||||||
hb_feature_t *features;
|
hb_feature_t *features;
|
||||||
unsigned int num_features;
|
unsigned int num_features;
|
||||||
char **shapers;
|
char **shapers;
|
||||||
|
|
Loading…
Reference in New Issue