Lines Matching refs:end
49 parse_space (const char **pp, const char *end) in parse_space() argument
51 while (*pp < end && ISSPACE (**pp)) in parse_space()
57 parse_char (const char **pp, const char *end, char c) in parse_char() argument
59 parse_space (pp, end); in parse_char()
61 if (*pp == end || **pp != c) in parse_char()
69 parse_uint (const char **pp, const char *end, unsigned int *pv) in parse_uint() argument
72 unsigned int len = MIN (ARRAY_LENGTH (buf) - 1, (unsigned int) (end - *pp)); in parse_uint()
93 parse_bool (const char **pp, const char *end, unsigned int *pv) in parse_bool() argument
95 parse_space (pp, end); in parse_bool()
98 while (*pp < end && ISALPHA(**pp)) in parse_bool()
113 parse_feature_value_prefix (const char **pp, const char *end, hb_feature_t *feature) in parse_feature_value_prefix() argument
115 if (parse_char (pp, end, '-')) in parse_feature_value_prefix()
118 parse_char (pp, end, '+'); in parse_feature_value_prefix()
126 parse_feature_tag (const char **pp, const char *end, hb_feature_t *feature) in parse_feature_tag() argument
128 parse_space (pp, end); in parse_feature_tag()
132 if (*pp < end && (**pp == '\'' || **pp == '"')) in parse_feature_tag()
139 while (*pp < end && ISALNUM(**pp)) in parse_feature_tag()
153 if (*pp == end || **pp != quote) in parse_feature_tag()
162 parse_feature_indices (const char **pp, const char *end, hb_feature_t *feature) in parse_feature_indices() argument
164 parse_space (pp, end); in parse_feature_indices()
169 feature->end = (unsigned int) -1; in parse_feature_indices()
171 if (!parse_char (pp, end, '[')) in parse_feature_indices()
174 has_start = parse_uint (pp, end, &feature->start); in parse_feature_indices()
176 if (parse_char (pp, end, ':')) { in parse_feature_indices()
177 parse_uint (pp, end, &feature->end); in parse_feature_indices()
180 feature->end = feature->start + 1; in parse_feature_indices()
183 return parse_char (pp, end, ']'); in parse_feature_indices()
187 parse_feature_value_postfix (const char **pp, const char *end, hb_feature_t *feature) in parse_feature_value_postfix() argument
189 bool had_equal = parse_char (pp, end, '='); in parse_feature_value_postfix()
190 bool had_value = parse_uint (pp, end, &feature->value) || in parse_feature_value_postfix()
191 parse_bool (pp, end, &feature->value); in parse_feature_value_postfix()
200 parse_one_feature (const char **pp, const char *end, hb_feature_t *feature) in parse_one_feature() argument
202 return parse_feature_value_prefix (pp, end, feature) && in parse_one_feature()
203 parse_feature_tag (pp, end, feature) && in parse_one_feature()
204 parse_feature_indices (pp, end, feature) && in parse_one_feature()
205 parse_feature_value_postfix (pp, end, feature) && in parse_one_feature()
206 parse_space (pp, end) && in parse_one_feature()
207 *pp == end; in parse_one_feature()
272 if (feature->start != 0 || feature->end != (unsigned int) -1) in hb_feature_to_string()
277 if (feature->end != feature->start + 1) { in hb_feature_to_string()
279 if (feature->end != (unsigned int) -1) in hb_feature_to_string()
280 len += MAX (0, snprintf (s + len, ARRAY_LENGTH (s) - len, "%u", feature->end)); in hb_feature_to_string()