2 #line 1 "hb-buffer-deserialize-text-glyphs.rl"
4 * Copyright © 2013 Google, Inc.
6 * This is part of HarfBuzz, a text shaping library.
8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the
11 * above copyright notice and the following two paragraphs appear in
12 * all copies of this software.
14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
15 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
16 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
17 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
20 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
21 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
23 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
24 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
26 * Google Author(s): Behdad Esfahbod
29 #ifndef HB_BUFFER_DESERIALIZE_TEXT_GLYPHS_HH
30 #define HB_BUFFER_DESERIALIZE_TEXT_GLYPHS_HH
35 #line 36 "hb-buffer-deserialize-text-glyphs.hh"
36 static const unsigned char _deserialize_text_glyphs_trans_keys[] = {
37 0u, 0u, 48u, 57u, 45u, 57u, 48u, 57u, 45u, 57u, 48u, 57u, 48u, 57u, 45u, 57u,
38 48u, 57u, 44u, 44u, 45u, 57u, 48u, 57u, 44u, 57u, 43u, 124u, 9u, 124u, 9u, 124u,
39 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u,
40 9u, 124u, 9u, 124u, 9u, 124u, 0
43 static const char _deserialize_text_glyphs_key_spans[] = {
44 0, 10, 13, 10, 13, 10, 10, 13,
45 10, 1, 13, 10, 14, 82, 116, 116,
46 116, 116, 116, 116, 116, 116, 116, 116,
50 static const short _deserialize_text_glyphs_index_offsets[] = {
51 0, 0, 11, 25, 36, 50, 61, 72,
52 86, 97, 99, 113, 124, 139, 222, 339,
53 456, 573, 690, 807, 924, 1041, 1158, 1275,
57 static const char _deserialize_text_glyphs_indicies[] = {
59 2, 2, 2, 1, 3, 1, 1, 4,
60 5, 5, 5, 5, 5, 5, 5, 5,
61 5, 1, 6, 7, 7, 7, 7, 7,
62 7, 7, 7, 7, 1, 8, 1, 1,
63 9, 10, 10, 10, 10, 10, 10, 10,
64 10, 10, 1, 11, 12, 12, 12, 12,
65 12, 12, 12, 12, 12, 1, 13, 14,
66 14, 14, 14, 14, 14, 14, 14, 14,
67 1, 15, 1, 1, 16, 17, 17, 17,
68 17, 17, 17, 17, 17, 17, 1, 18,
69 19, 19, 19, 19, 19, 19, 19, 19,
70 19, 1, 20, 1, 21, 1, 1, 22,
71 23, 23, 23, 23, 23, 23, 23, 23,
72 23, 1, 24, 25, 25, 25, 25, 25,
73 25, 25, 25, 25, 1, 20, 1, 1,
74 1, 19, 19, 19, 19, 19, 19, 19,
75 19, 19, 19, 1, 26, 26, 1, 1,
76 1, 1, 1, 1, 1, 1, 1, 1,
77 1, 1, 1, 1, 1, 1, 26, 1,
78 1, 26, 1, 1, 1, 1, 1, 1,
79 1, 1, 1, 1, 1, 1, 1, 1,
80 1, 1, 1, 1, 1, 1, 1, 1,
81 1, 1, 1, 1, 1, 26, 26, 1,
82 1, 1, 1, 1, 1, 1, 1, 1,
83 1, 1, 1, 1, 1, 1, 1, 1,
84 1, 1, 1, 1, 1, 1, 1, 1,
85 1, 1, 1, 1, 1, 26, 1, 28,
86 28, 28, 28, 28, 27, 27, 27, 27,
87 27, 27, 27, 27, 27, 27, 27, 27,
88 27, 27, 27, 27, 27, 27, 28, 27,
89 27, 29, 27, 27, 27, 27, 27, 27,
90 27, 30, 1, 27, 27, 27, 27, 27,
91 27, 27, 27, 27, 27, 27, 27, 27,
92 27, 27, 27, 31, 27, 27, 32, 27,
93 27, 27, 27, 27, 27, 27, 27, 27,
94 27, 27, 27, 27, 27, 27, 27, 27,
95 27, 27, 27, 27, 27, 27, 27, 27,
96 27, 27, 33, 1, 27, 27, 27, 27,
97 27, 27, 27, 27, 27, 27, 27, 27,
98 27, 27, 27, 27, 27, 27, 27, 27,
99 27, 27, 27, 27, 27, 27, 27, 27,
100 27, 27, 28, 27, 34, 34, 34, 34,
101 34, 26, 26, 26, 26, 26, 26, 26,
102 26, 26, 26, 26, 26, 26, 26, 26,
103 26, 26, 26, 34, 26, 26, 35, 26,
104 26, 26, 26, 26, 26, 26, 36, 1,
105 26, 26, 26, 26, 26, 26, 26, 26,
106 26, 26, 26, 26, 26, 26, 26, 26,
107 37, 26, 26, 38, 26, 26, 26, 26,
108 26, 26, 26, 26, 26, 26, 26, 26,
109 26, 26, 26, 26, 26, 26, 26, 26,
110 26, 26, 26, 26, 26, 26, 26, 39,
111 1, 26, 26, 26, 26, 26, 26, 26,
112 26, 26, 26, 26, 26, 26, 26, 26,
113 26, 26, 26, 26, 26, 26, 26, 26,
114 26, 26, 26, 26, 26, 26, 26, 40,
115 26, 41, 41, 41, 41, 41, 1, 1,
116 1, 1, 1, 1, 1, 1, 1, 1,
117 1, 1, 1, 1, 1, 1, 1, 1,
118 41, 1, 1, 1, 1, 1, 1, 1,
119 1, 1, 1, 1, 1, 1, 1, 1,
120 1, 1, 1, 1, 1, 1, 1, 1,
121 1, 1, 1, 1, 1, 1, 1, 1,
122 1, 1, 1, 1, 1, 1, 1, 1,
123 1, 1, 1, 1, 1, 1, 1, 1,
124 1, 1, 1, 1, 1, 1, 1, 1,
125 1, 1, 1, 1, 1, 1, 1, 1,
126 1, 1, 1, 1, 1, 1, 1, 1,
127 1, 1, 1, 1, 1, 1, 1, 1,
128 1, 1, 1, 1, 1, 1, 1, 1,
129 1, 1, 1, 1, 42, 1, 43, 43,
130 43, 43, 43, 1, 1, 1, 1, 1,
131 1, 1, 1, 1, 1, 1, 1, 1,
132 1, 1, 1, 1, 1, 43, 1, 1,
133 1, 1, 1, 1, 1, 1, 1, 1,
134 1, 1, 1, 1, 1, 1, 1, 1,
135 1, 1, 1, 1, 1, 1, 1, 1,
136 1, 1, 1, 1, 1, 1, 1, 1,
137 1, 1, 1, 1, 1, 1, 1, 1,
138 1, 1, 1, 1, 1, 1, 1, 1,
139 1, 1, 1, 1, 1, 1, 1, 1,
140 1, 1, 1, 1, 1, 1, 1, 1,
141 1, 1, 1, 1, 1, 1, 1, 1,
142 1, 1, 1, 1, 1, 1, 1, 1,
143 1, 1, 1, 1, 1, 1, 1, 1,
144 1, 44, 1, 41, 41, 41, 41, 41,
145 1, 1, 1, 1, 1, 1, 1, 1,
146 1, 1, 1, 1, 1, 1, 1, 1,
147 1, 1, 41, 1, 1, 1, 1, 1,
148 1, 1, 1, 1, 1, 1, 1, 1,
149 1, 1, 45, 45, 45, 45, 45, 45,
150 45, 45, 45, 45, 1, 1, 1, 1,
151 1, 1, 1, 1, 1, 1, 1, 1,
152 1, 1, 1, 1, 1, 1, 1, 1,
153 1, 1, 1, 1, 1, 1, 1, 1,
154 1, 1, 1, 1, 1, 1, 1, 1,
155 1, 1, 1, 1, 1, 1, 1, 1,
156 1, 1, 1, 1, 1, 1, 1, 1,
157 1, 1, 1, 1, 1, 1, 1, 1,
158 1, 1, 1, 1, 1, 1, 42, 1,
159 46, 46, 46, 46, 46, 1, 1, 1,
160 1, 1, 1, 1, 1, 1, 1, 1,
161 1, 1, 1, 1, 1, 1, 1, 46,
162 1, 1, 47, 1, 1, 1, 1, 1,
163 1, 1, 1, 48, 1, 1, 1, 1,
164 1, 1, 1, 1, 1, 1, 1, 1,
165 1, 1, 1, 1, 1, 1, 1, 1,
166 1, 1, 1, 1, 1, 1, 1, 1,
167 1, 1, 1, 1, 1, 1, 1, 1,
168 1, 1, 1, 1, 1, 1, 1, 1,
169 1, 1, 1, 1, 1, 1, 1, 1,
170 1, 1, 1, 1, 1, 1, 1, 1,
171 1, 1, 1, 1, 1, 1, 1, 1,
172 1, 1, 1, 1, 1, 1, 1, 1,
173 1, 1, 1, 49, 1, 50, 50, 50,
174 50, 50, 1, 1, 1, 1, 1, 1,
175 1, 1, 1, 1, 1, 1, 1, 1,
176 1, 1, 1, 1, 50, 1, 1, 51,
177 1, 1, 1, 1, 1, 1, 1, 1,
178 1, 1, 1, 1, 1, 1, 1, 1,
179 1, 1, 1, 1, 1, 1, 1, 1,
180 1, 1, 1, 1, 1, 1, 1, 1,
181 1, 1, 1, 1, 1, 1, 1, 1,
182 1, 1, 1, 1, 1, 1, 1, 1,
183 1, 1, 1, 1, 1, 1, 1, 1,
184 1, 1, 1, 1, 1, 1, 1, 1,
185 1, 1, 1, 1, 1, 1, 1, 1,
186 1, 1, 1, 1, 1, 1, 1, 1,
187 1, 1, 1, 1, 1, 1, 1, 1,
188 52, 1, 50, 50, 50, 50, 50, 1,
189 1, 1, 1, 1, 1, 1, 1, 1,
190 1, 1, 1, 1, 1, 1, 1, 1,
191 1, 50, 1, 1, 51, 1, 1, 1,
192 1, 1, 1, 1, 1, 1, 1, 1,
193 1, 12, 12, 12, 12, 12, 12, 12,
194 12, 12, 12, 1, 1, 1, 1, 1,
195 1, 1, 1, 1, 1, 1, 1, 1,
196 1, 1, 1, 1, 1, 1, 1, 1,
197 1, 1, 1, 1, 1, 1, 1, 1,
198 1, 1, 1, 1, 1, 1, 1, 1,
199 1, 1, 1, 1, 1, 1, 1, 1,
200 1, 1, 1, 1, 1, 1, 1, 1,
201 1, 1, 1, 1, 1, 1, 1, 1,
202 1, 1, 1, 1, 1, 52, 1, 46,
203 46, 46, 46, 46, 1, 1, 1, 1,
204 1, 1, 1, 1, 1, 1, 1, 1,
205 1, 1, 1, 1, 1, 1, 46, 1,
206 1, 47, 1, 1, 1, 1, 1, 1,
207 1, 1, 48, 1, 1, 1, 7, 7,
208 7, 7, 7, 7, 7, 7, 7, 7,
209 1, 1, 1, 1, 1, 1, 1, 1,
210 1, 1, 1, 1, 1, 1, 1, 1,
211 1, 1, 1, 1, 1, 1, 1, 1,
212 1, 1, 1, 1, 1, 1, 1, 1,
213 1, 1, 1, 1, 1, 1, 1, 1,
214 1, 1, 1, 1, 1, 1, 1, 1,
215 1, 1, 1, 1, 1, 1, 1, 1,
216 1, 1, 1, 1, 1, 1, 1, 1,
217 1, 1, 49, 1, 53, 53, 53, 53,
218 53, 1, 1, 1, 1, 1, 1, 1,
219 1, 1, 1, 1, 1, 1, 1, 1,
220 1, 1, 1, 53, 1, 1, 54, 1,
221 1, 1, 1, 1, 1, 1, 55, 1,
222 1, 1, 1, 1, 1, 1, 1, 1,
223 1, 1, 1, 1, 1, 1, 1, 1,
224 1, 1, 1, 56, 1, 1, 1, 1,
225 1, 1, 1, 1, 1, 1, 1, 1,
226 1, 1, 1, 1, 1, 1, 1, 1,
227 1, 1, 1, 1, 1, 1, 1, 1,
228 1, 1, 1, 1, 1, 1, 1, 1,
229 1, 1, 1, 1, 1, 1, 1, 1,
230 1, 1, 1, 1, 1, 1, 1, 1,
231 1, 1, 1, 1, 1, 1, 1, 57,
232 1, 58, 58, 58, 58, 58, 1, 1,
233 1, 1, 1, 1, 1, 1, 1, 1,
234 1, 1, 1, 1, 1, 1, 1, 1,
235 58, 1, 1, 59, 1, 1, 1, 1,
236 1, 1, 1, 60, 1, 1, 1, 1,
237 1, 1, 1, 1, 1, 1, 1, 1,
238 1, 1, 1, 1, 1, 1, 1, 1,
239 1, 1, 1, 1, 1, 1, 1, 1,
240 1, 1, 1, 1, 1, 1, 1, 1,
241 1, 1, 1, 1, 1, 1, 1, 1,
242 1, 1, 1, 1, 1, 1, 1, 1,
243 1, 1, 1, 1, 1, 1, 1, 1,
244 1, 1, 1, 1, 1, 1, 1, 1,
245 1, 1, 1, 1, 1, 1, 1, 1,
246 1, 1, 1, 1, 61, 1, 58, 58,
247 58, 58, 58, 1, 1, 1, 1, 1,
248 1, 1, 1, 1, 1, 1, 1, 1,
249 1, 1, 1, 1, 1, 58, 1, 1,
250 59, 1, 1, 1, 1, 1, 1, 1,
251 60, 1, 1, 1, 1, 25, 25, 25,
252 25, 25, 25, 25, 25, 25, 25, 1,
253 1, 1, 1, 1, 1, 1, 1, 1,
254 1, 1, 1, 1, 1, 1, 1, 1,
255 1, 1, 1, 1, 1, 1, 1, 1,
256 1, 1, 1, 1, 1, 1, 1, 1,
257 1, 1, 1, 1, 1, 1, 1, 1,
258 1, 1, 1, 1, 1, 1, 1, 1,
259 1, 1, 1, 1, 1, 1, 1, 1,
260 1, 1, 1, 1, 1, 1, 1, 1,
261 1, 61, 1, 53, 53, 53, 53, 53,
262 1, 1, 1, 1, 1, 1, 1, 1,
263 1, 1, 1, 1, 1, 1, 1, 1,
264 1, 1, 53, 1, 1, 54, 1, 1,
265 1, 1, 1, 1, 1, 55, 1, 1,
266 1, 1, 62, 62, 62, 62, 62, 62,
267 62, 62, 62, 62, 1, 1, 1, 1,
268 1, 1, 56, 1, 1, 1, 1, 1,
269 1, 1, 1, 1, 1, 1, 1, 1,
270 1, 1, 1, 1, 1, 1, 1, 1,
271 1, 1, 1, 1, 1, 1, 1, 1,
272 1, 1, 1, 1, 1, 1, 1, 1,
273 1, 1, 1, 1, 1, 1, 1, 1,
274 1, 1, 1, 1, 1, 1, 1, 1,
275 1, 1, 1, 1, 1, 1, 57, 1,
279 static const char _deserialize_text_glyphs_trans_targs[] = {
280 16, 0, 18, 3, 19, 22, 19, 22,
281 5, 20, 21, 20, 21, 23, 26, 8,
282 9, 12, 9, 12, 10, 11, 24, 25,
283 24, 25, 15, 15, 14, 1, 2, 6,
284 7, 13, 15, 1, 2, 6, 7, 13,
285 14, 17, 14, 17, 14, 18, 17, 1,
286 4, 14, 17, 1, 14, 17, 1, 2,
287 7, 14, 17, 1, 2, 14, 26
290 static const char _deserialize_text_glyphs_trans_actions[] = {
291 1, 0, 1, 1, 1, 1, 0, 0,
292 1, 1, 1, 0, 0, 1, 1, 1,
293 1, 1, 0, 0, 2, 1, 1, 1,
294 0, 0, 0, 4, 3, 5, 5, 5,
295 5, 4, 6, 7, 7, 7, 7, 0,
296 6, 8, 8, 0, 0, 0, 9, 10,
297 10, 9, 11, 12, 11, 13, 14, 14,
298 14, 13, 15, 16, 16, 15, 0
301 static const char _deserialize_text_glyphs_eof_actions[] = {
302 0, 0, 0, 0, 0, 0, 0, 0,
303 0, 0, 0, 0, 0, 0, 3, 6,
304 8, 0, 8, 9, 11, 11, 9, 13,
308 static const int deserialize_text_glyphs_start = 14;
309 static const int deserialize_text_glyphs_first_final = 14;
310 static const int deserialize_text_glyphs_error = 0;
312 static const int deserialize_text_glyphs_en_main = 14;
315 #line 98 "hb-buffer-deserialize-text-glyphs.rl"
319 _hb_buffer_deserialize_text_glyphs (hb_buffer_t *buffer,
321 unsigned int buf_len,
322 const char **end_ptr,
325 const char *p = buf, *pe = buf + buf_len, *eof = pe, *orig_pe = pe;
327 /* Ensure we have positions. */
328 (void) hb_buffer_get_glyph_positions (buffer, nullptr);
330 while (p < pe && ISSPACE (*p))
332 if (p < pe && *p == (buffer->len ? '|' : '['))
335 const char *end = strchr ((char *) p, ']');
340 end = strrchr ((char *) p, '|');
347 const char *tok = nullptr;
349 hb_glyph_info_t info = {0};
350 hb_glyph_position_t pos = {0};
352 #line 353 "hb-buffer-deserialize-text-glyphs.hh"
354 cs = deserialize_text_glyphs_start;
357 #line 358 "hb-buffer-deserialize-text-glyphs.hh"
361 const unsigned char *_keys;
368 _keys = _deserialize_text_glyphs_trans_keys + (cs<<1);
369 _inds = _deserialize_text_glyphs_indicies + _deserialize_text_glyphs_index_offsets[cs];
371 _slen = _deserialize_text_glyphs_key_spans[cs];
372 _trans = _inds[ _slen > 0 && _keys[0] <=(*p) &&
374 (*p) - _keys[0] : _slen ];
376 cs = _deserialize_text_glyphs_trans_targs[_trans];
378 if ( _deserialize_text_glyphs_trans_actions[_trans] == 0 )
381 switch ( _deserialize_text_glyphs_trans_actions[_trans] ) {
383 #line 51 "hb-buffer-deserialize-text-glyphs.rl"
389 #line 55 "hb-buffer-deserialize-text-glyphs.rl"
391 /* TODO Unescape delimiters. */
392 if (!hb_font_glyph_from_string (font,
399 #line 63 "hb-buffer-deserialize-text-glyphs.rl"
400 { if (!parse_uint (tok, p, &info.cluster )) return false; }
403 #line 64 "hb-buffer-deserialize-text-glyphs.rl"
404 { if (!parse_int (tok, p, &pos.x_offset )) return false; }
407 #line 65 "hb-buffer-deserialize-text-glyphs.rl"
408 { if (!parse_int (tok, p, &pos.y_offset )) return false; }
411 #line 66 "hb-buffer-deserialize-text-glyphs.rl"
412 { if (!parse_int (tok, p, &pos.x_advance)) return false; }
415 #line 67 "hb-buffer-deserialize-text-glyphs.rl"
416 { if (!parse_int (tok, p, &pos.y_advance)) return false; }
419 #line 38 "hb-buffer-deserialize-text-glyphs.rl"
421 hb_memset (&info, 0, sizeof (info));
422 hb_memset (&pos , 0, sizeof (pos ));
424 #line 51 "hb-buffer-deserialize-text-glyphs.rl"
430 #line 55 "hb-buffer-deserialize-text-glyphs.rl"
432 /* TODO Unescape delimiters. */
433 if (!hb_font_glyph_from_string (font,
438 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
440 buffer->add_info (info);
441 if (unlikely (!buffer->successful))
443 buffer->pos[buffer->len - 1] = pos;
448 #line 63 "hb-buffer-deserialize-text-glyphs.rl"
449 { if (!parse_uint (tok, p, &info.cluster )) return false; }
450 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
452 buffer->add_info (info);
453 if (unlikely (!buffer->successful))
455 buffer->pos[buffer->len - 1] = pos;
460 #line 65 "hb-buffer-deserialize-text-glyphs.rl"
461 { if (!parse_int (tok, p, &pos.y_offset )) return false; }
462 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
464 buffer->add_info (info);
465 if (unlikely (!buffer->successful))
467 buffer->pos[buffer->len - 1] = pos;
472 #line 66 "hb-buffer-deserialize-text-glyphs.rl"
473 { if (!parse_int (tok, p, &pos.x_advance)) return false; }
474 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
476 buffer->add_info (info);
477 if (unlikely (!buffer->successful))
479 buffer->pos[buffer->len - 1] = pos;
484 #line 67 "hb-buffer-deserialize-text-glyphs.rl"
485 { if (!parse_int (tok, p, &pos.y_advance)) return false; }
486 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
488 buffer->add_info (info);
489 if (unlikely (!buffer->successful))
491 buffer->pos[buffer->len - 1] = pos;
496 #line 68 "hb-buffer-deserialize-text-glyphs.rl"
497 { if (!parse_uint (tok, p, &info.mask )) return false; }
498 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
500 buffer->add_info (info);
501 if (unlikely (!buffer->successful))
503 buffer->pos[buffer->len - 1] = pos;
508 #line 38 "hb-buffer-deserialize-text-glyphs.rl"
510 hb_memset (&info, 0, sizeof (info));
511 hb_memset (&pos , 0, sizeof (pos ));
513 #line 51 "hb-buffer-deserialize-text-glyphs.rl"
517 #line 55 "hb-buffer-deserialize-text-glyphs.rl"
519 /* TODO Unescape delimiters. */
520 if (!hb_font_glyph_from_string (font,
527 #line 38 "hb-buffer-deserialize-text-glyphs.rl"
529 hb_memset (&info, 0, sizeof (info));
530 hb_memset (&pos , 0, sizeof (pos ));
532 #line 51 "hb-buffer-deserialize-text-glyphs.rl"
536 #line 55 "hb-buffer-deserialize-text-glyphs.rl"
538 /* TODO Unescape delimiters. */
539 if (!hb_font_glyph_from_string (font,
544 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
546 buffer->add_info (info);
547 if (unlikely (!buffer->successful))
549 buffer->pos[buffer->len - 1] = pos;
553 #line 554 "hb-buffer-deserialize-text-glyphs.hh"
564 switch ( _deserialize_text_glyphs_eof_actions[cs] ) {
566 #line 55 "hb-buffer-deserialize-text-glyphs.rl"
568 /* TODO Unescape delimiters. */
569 if (!hb_font_glyph_from_string (font,
574 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
576 buffer->add_info (info);
577 if (unlikely (!buffer->successful))
579 buffer->pos[buffer->len - 1] = pos;
584 #line 63 "hb-buffer-deserialize-text-glyphs.rl"
585 { if (!parse_uint (tok, p, &info.cluster )) return false; }
586 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
588 buffer->add_info (info);
589 if (unlikely (!buffer->successful))
591 buffer->pos[buffer->len - 1] = pos;
596 #line 65 "hb-buffer-deserialize-text-glyphs.rl"
597 { if (!parse_int (tok, p, &pos.y_offset )) return false; }
598 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
600 buffer->add_info (info);
601 if (unlikely (!buffer->successful))
603 buffer->pos[buffer->len - 1] = pos;
608 #line 66 "hb-buffer-deserialize-text-glyphs.rl"
609 { if (!parse_int (tok, p, &pos.x_advance)) return false; }
610 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
612 buffer->add_info (info);
613 if (unlikely (!buffer->successful))
615 buffer->pos[buffer->len - 1] = pos;
620 #line 67 "hb-buffer-deserialize-text-glyphs.rl"
621 { if (!parse_int (tok, p, &pos.y_advance)) return false; }
622 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
624 buffer->add_info (info);
625 if (unlikely (!buffer->successful))
627 buffer->pos[buffer->len - 1] = pos;
632 #line 68 "hb-buffer-deserialize-text-glyphs.rl"
633 { if (!parse_uint (tok, p, &info.mask )) return false; }
634 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
636 buffer->add_info (info);
637 if (unlikely (!buffer->successful))
639 buffer->pos[buffer->len - 1] = pos;
644 #line 38 "hb-buffer-deserialize-text-glyphs.rl"
646 hb_memset (&info, 0, sizeof (info));
647 hb_memset (&pos , 0, sizeof (pos ));
649 #line 51 "hb-buffer-deserialize-text-glyphs.rl"
653 #line 55 "hb-buffer-deserialize-text-glyphs.rl"
655 /* TODO Unescape delimiters. */
656 if (!hb_font_glyph_from_string (font,
661 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
663 buffer->add_info (info);
664 if (unlikely (!buffer->successful))
666 buffer->pos[buffer->len - 1] = pos;
670 #line 671 "hb-buffer-deserialize-text-glyphs.hh"
677 #line 136 "hb-buffer-deserialize-text-glyphs.rl"
680 if (pe < orig_pe && *pe == ']')
692 #endif /* HB_BUFFER_DESERIALIZE_TEXT_GLYPHS_HH */