Home | History | Annotate | Download | only in src

Lines Matching refs:feature

82 parse_feature_value_prefix (const char **pp, const char *end, hb_feature_t *feature)
85 feature->value = 0;
88 feature->value = 1;
95 parse_feature_tag (const char **pp, const char *end, hb_feature_t *feature)
110 feature->tag = hb_tag_from_string (p, *pp - p);
115 parse_feature_indices (const char **pp, const char *end, hb_feature_t *feature)
121 feature->start = 0;
122 feature->end = (unsigned int) -1;
127 has_start = parse_uint (pp, end, &feature->start);
130 parse_uint (pp, end, &feature->end);
133 feature->end = feature->start + 1;
140 parse_feature_value_postfix (const char **pp, const char *end, hb_feature_t *feature)
142 return !parse_char (pp, end, '=') || parse_uint (pp, end, &feature->value);
147 parse_one_feature (const char **pp, const char *end, hb_feature_t *feature)
149 return parse_feature_value_prefix (pp, end, feature) &&
150 parse_feature_tag (pp, end, feature) &&
151 parse_feature_indices (pp, end, feature) &&
152 parse_feature_value_postfix (pp, end, feature) &&
158 hb_feature_t *feature)
163 return parse_one_feature (&str, str + len, feature);
167 hb_feature_to_string (hb_feature_t *feature,
174 if (feature->value == 0)
176 hb_tag_to_string (feature->tag, s + len);
180 if (feature->start != 0 || feature->end != (unsigned int) -1)
183 if (feature->start)
184 len += snprintf (s + len, ARRAY_LENGTH (s) - len, "%d", feature->start);
185 if (feature->end != feature->start + 1) {
187 if (feature->end != (unsigned int) -1)
188 len += snprintf (s + len, ARRAY_LENGTH (s) - len, "%d", feature->end);
192 if (feature->value > 1)
195 len += snprintf (s + len, ARRAY_LENGTH (s) - len, "%d", feature->value);