tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

hb-buffer-deserialize-text-glyphs.hh (15939B)


      1 #line 1 "hb-buffer-deserialize-text-glyphs.rl"
      2 /*
      3 * Copyright © 2013  Google, Inc.
      4 *
      5 *  This is part of HarfBuzz, a text shaping library.
      6 *
      7 * Permission is hereby granted, without written agreement and without
      8 * license or royalty fees, to use, copy, modify, and distribute this
      9 * software and its documentation for any purpose, provided that the
     10 * above copyright notice and the following two paragraphs appear in
     11 * all copies of this software.
     12 *
     13 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
     14 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
     15 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
     16 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
     17 * DAMAGE.
     18 *
     19 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
     20 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
     21 * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
     22 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
     23 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
     24 *
     25 * Google Author(s): Behdad Esfahbod
     26 */
     27 
     28 #ifndef HB_BUFFER_DESERIALIZE_TEXT_GLYPHS_HH
     29 #define HB_BUFFER_DESERIALIZE_TEXT_GLYPHS_HH
     30 
     31 #include "hb.hh"
     32 
     33 
     34 #line 33 "hb-buffer-deserialize-text-glyphs.hh"
     35 static const unsigned char _deserialize_text_glyphs_trans_keys[] = {
     36 0u, 0u, 35u, 124u, 48u, 57u, 60u, 124u, 45u, 57u, 48u, 57u, 44u, 44u, 45u, 57u, 
     37 48u, 57u, 44u, 44u, 45u, 57u, 48u, 57u, 44u, 44u, 45u, 57u, 48u, 57u, 62u, 62u, 
     38 93u, 124u, 45u, 57u, 48u, 57u, 35u, 124u, 45u, 57u, 48u, 57u, 35u, 124u, 35u, 124u, 
     39 35u, 124u, 35u, 124u, 35u, 124u, 35u, 124u, 48u, 57u, 35u, 124u, 45u, 57u, 48u, 57u, 
     40 44u, 44u, 45u, 57u, 48u, 57u, 35u, 124u, 35u, 124u, 44u, 57u, 35u, 124u, 43u, 124u, 
     41 35u, 124u, 48u, 62u, 44u, 57u, 44u, 57u, 44u, 57u, 48u, 124u, 35u, 124u, 35u, 124u, 
     42 35u, 124u, 0
     43 };
     44 
     45 static const char _deserialize_text_glyphs_key_spans[] = {
     46 0, 90, 10, 65, 13, 10, 1, 13, 
     47 10, 1, 13, 10, 1, 13, 10, 1, 
     48 32, 13, 10, 90, 13, 10, 90, 90, 
     49 90, 90, 90, 90, 10, 90, 13, 10, 
     50 1, 13, 10, 90, 90, 14, 90, 82, 
     51 90, 15, 14, 14, 14, 77, 90, 90, 
     52 90
     53 };
     54 
     55 static const short _deserialize_text_glyphs_index_offsets[] = {
     56 0, 0, 91, 102, 168, 182, 193, 195, 
     57 209, 220, 222, 236, 247, 249, 263, 274, 
     58 276, 309, 323, 334, 425, 439, 450, 541, 
     59 632, 723, 814, 905, 996, 1007, 1098, 1112, 
     60 1123, 1125, 1139, 1150, 1241, 1332, 1347, 1438, 
     61 1521, 1612, 1628, 1643, 1658, 1673, 1751, 1842, 
     62 1933
     63 };
     64 
     65 static const char _deserialize_text_glyphs_indicies[] = {
     66 1, 0, 0, 0, 0, 0, 0, 
     67 0, 2, 3, 0, 0, 0, 0, 0, 
     68 0, 0, 0, 0, 0, 0, 0, 0, 
     69 0, 0, 4, 5, 0, 0, 6, 0, 
     70 0, 0, 0, 0, 0, 0, 0, 0, 
     71 0, 0, 0, 0, 0, 0, 0, 0, 
     72 0, 0, 0, 0, 0, 0, 0, 0, 
     73 0, 0, 7, 8, 0, 0, 0, 0, 
     74 0, 0, 0, 0, 0, 0, 0, 0, 
     75 0, 0, 0, 0, 0, 0, 0, 0, 
     76 0, 0, 0, 0, 0, 0, 0, 0, 
     77 0, 0, 8, 0, 9, 10, 10, 10, 
     78 10, 10, 10, 10, 10, 10, 3, 11, 
     79 3, 3, 3, 3, 3, 3, 3, 3, 
     80 3, 3, 3, 3, 3, 3, 3, 3, 
     81 3, 3, 3, 3, 3, 3, 3, 3, 
     82 3, 3, 3, 3, 3, 3, 3, 3, 
     83 12, 3, 3, 3, 3, 3, 3, 3, 
     84 3, 3, 3, 3, 3, 3, 3, 3, 
     85 3, 3, 3, 3, 3, 3, 3, 3, 
     86 3, 3, 3, 3, 3, 3, 3, 12, 
     87 3, 13, 3, 3, 14, 15, 15, 15, 
     88 15, 15, 15, 15, 15, 15, 3, 14, 
     89 15, 15, 15, 15, 15, 15, 15, 15, 
     90 15, 3, 16, 3, 17, 3, 3, 18, 
     91 19, 19, 19, 19, 19, 19, 19, 19, 
     92 19, 3, 18, 19, 19, 19, 19, 19, 
     93 19, 19, 19, 19, 3, 20, 3, 21, 
     94 3, 3, 22, 23, 23, 23, 23, 23, 
     95 23, 23, 23, 23, 3, 22, 23, 23, 
     96 23, 23, 23, 23, 23, 23, 23, 3, 
     97 24, 3, 25, 3, 3, 26, 27, 27, 
     98 27, 27, 27, 27, 27, 27, 27, 3, 
     99 26, 27, 27, 27, 27, 27, 27, 27, 
    100 27, 27, 3, 28, 3, 29, 3, 3, 
    101 3, 3, 3, 3, 3, 3, 3, 3, 
    102 3, 3, 3, 3, 3, 3, 3, 3, 
    103 3, 3, 3, 3, 3, 3, 3, 3, 
    104 3, 3, 3, 3, 29, 3, 30, 3, 
    105 3, 31, 32, 32, 32, 32, 32, 32, 
    106 32, 32, 32, 3, 33, 34, 34, 34, 
    107 34, 34, 34, 34, 34, 34, 3, 35, 
    108 3, 3, 3, 3, 3, 3, 3, 3, 
    109 36, 3, 3, 3, 3, 3, 3, 3, 
    110 3, 3, 3, 3, 3, 3, 3, 3, 
    111 37, 3, 3, 3, 3, 3, 3, 3, 
    112 3, 3, 3, 3, 3, 3, 3, 3, 
    113 3, 3, 3, 3, 3, 3, 3, 3, 
    114 3, 3, 3, 3, 3, 3, 3, 3, 
    115 3, 38, 3, 3, 3, 3, 3, 3, 
    116 3, 3, 3, 3, 3, 3, 3, 3, 
    117 3, 3, 3, 3, 3, 3, 3, 3, 
    118 3, 3, 3, 3, 3, 3, 3, 3, 
    119 38, 3, 39, 3, 3, 40, 41, 41, 
    120 41, 41, 41, 41, 41, 41, 41, 3, 
    121 42, 43, 43, 43, 43, 43, 43, 43, 
    122 43, 43, 3, 44, 3, 3, 3, 3, 
    123 3, 3, 3, 3, 3, 3, 3, 3, 
    124 3, 3, 3, 3, 3, 3, 3, 3, 
    125 3, 3, 3, 3, 45, 3, 3, 3, 
    126 3, 3, 3, 3, 3, 3, 3, 3, 
    127 3, 3, 3, 3, 3, 3, 3, 3, 
    128 3, 3, 3, 3, 3, 3, 3, 3, 
    129 3, 3, 3, 3, 3, 46, 3, 3, 
    130 3, 3, 3, 3, 3, 3, 3, 3, 
    131 3, 3, 3, 3, 3, 3, 3, 3, 
    132 3, 3, 3, 3, 3, 3, 3, 3, 
    133 3, 3, 3, 3, 46, 3, 44, 3, 
    134 3, 3, 3, 3, 3, 3, 3, 3, 
    135 3, 3, 3, 43, 43, 43, 43, 43, 
    136 43, 43, 43, 43, 43, 3, 3, 45, 
    137 3, 3, 3, 3, 3, 3, 3, 3, 
    138 3, 3, 3, 3, 3, 3, 3, 3, 
    139 3, 3, 3, 3, 3, 3, 3, 3, 
    140 3, 3, 3, 3, 3, 3, 3, 3, 
    141 46, 3, 3, 3, 3, 3, 3, 3, 
    142 3, 3, 3, 3, 3, 3, 3, 3, 
    143 3, 3, 3, 3, 3, 3, 3, 3, 
    144 3, 3, 3, 3, 3, 3, 3, 46, 
    145 3, 35, 3, 3, 3, 3, 3, 3, 
    146 3, 3, 36, 3, 3, 3, 34, 34, 
    147 34, 34, 34, 34, 34, 34, 34, 34, 
    148 3, 3, 37, 3, 3, 3, 3, 3, 
    149 3, 3, 3, 3, 3, 3, 3, 3, 
    150 3, 3, 3, 3, 3, 3, 3, 3, 
    151 3, 3, 3, 3, 3, 3, 3, 3, 
    152 3, 3, 3, 38, 3, 3, 3, 3, 
    153 3, 3, 3, 3, 3, 3, 3, 3, 
    154 3, 3, 3, 3, 3, 3, 3, 3, 
    155 3, 3, 3, 3, 3, 3, 3, 3, 
    156 3, 3, 38, 3, 1, 0, 0, 0, 
    157 0, 0, 0, 0, 2, 3, 47, 0, 
    158 0, 48, 49, 49, 49, 49, 49, 49, 
    159 49, 49, 49, 0, 0, 4, 5, 0, 
    160 0, 6, 0, 0, 0, 0, 0, 0, 
    161 0, 0, 0, 0, 0, 0, 0, 0, 
    162 0, 0, 0, 0, 0, 0, 0, 0, 
    163 0, 0, 0, 0, 0, 7, 8, 0, 
    164 0, 0, 0, 0, 0, 0, 0, 0, 
    165 0, 0, 0, 0, 0, 0, 0, 0, 
    166 0, 0, 0, 0, 0, 0, 0, 0, 
    167 0, 0, 0, 0, 0, 8, 0, 1, 
    168 0, 0, 0, 0, 0, 0, 0, 2, 
    169 3, 0, 0, 0, 48, 49, 49, 49, 
    170 49, 49, 49, 49, 49, 49, 0, 0, 
    171 4, 5, 0, 0, 6, 0, 0, 0, 
    172 0, 0, 0, 0, 0, 0, 0, 0, 
    173 0, 0, 0, 0, 0, 0, 0, 0, 
    174 0, 0, 0, 0, 0, 0, 0, 0, 
    175 7, 8, 0, 0, 0, 0, 0, 0, 
    176 0, 0, 0, 0, 0, 0, 0, 0, 
    177 0, 0, 0, 0, 0, 0, 0, 0, 
    178 0, 0, 0, 0, 0, 0, 0, 0, 
    179 8, 0, 1, 0, 0, 0, 0, 0, 
    180 0, 0, 2, 16, 0, 0, 0, 0, 
    181 0, 0, 0, 0, 0, 0, 0, 0, 
    182 0, 0, 0, 4, 5, 0, 0, 6, 
    183 0, 0, 0, 0, 0, 0, 0, 0, 
    184 0, 0, 0, 0, 0, 0, 0, 0, 
    185 0, 0, 0, 0, 0, 0, 0, 0, 
    186 0, 0, 0, 7, 8, 0, 0, 0, 
    187 0, 0, 0, 0, 0, 0, 0, 0, 
    188 0, 0, 0, 0, 0, 0, 0, 0, 
    189 0, 0, 0, 0, 0, 0, 0, 0, 
    190 0, 0, 0, 8, 0, 50, 51, 51, 
    191 51, 51, 51, 51, 51, 51, 51, 3, 
    192 52, 3, 3, 3, 3, 3, 3, 3, 
    193 53, 3, 3, 3, 3, 3, 3, 3, 
    194 3, 3, 3, 3, 3, 3, 3, 3, 
    195 3, 54, 3, 3, 3, 55, 3, 3, 
    196 3, 3, 3, 3, 3, 3, 3, 3, 
    197 3, 3, 3, 3, 3, 3, 3, 3, 
    198 3, 3, 3, 3, 3, 3, 3, 3, 
    199 3, 3, 56, 3, 3, 3, 3, 3, 
    200 3, 3, 3, 3, 3, 3, 3, 3, 
    201 3, 3, 3, 3, 3, 3, 3, 3, 
    202 3, 3, 3, 3, 3, 3, 3, 3, 
    203 3, 56, 3, 57, 3, 3, 58, 59, 
    204 59, 59, 59, 59, 59, 59, 59, 59, 
    205 3, 60, 61, 61, 61, 61, 61, 61, 
    206 61, 61, 61, 3, 62, 3, 63, 3, 
    207 3, 64, 65, 65, 65, 65, 65, 65, 
    208 65, 65, 65, 3, 66, 67, 67, 67, 
    209 67, 67, 67, 67, 67, 67, 3, 68, 
    210 3, 3, 3, 3, 3, 3, 3, 69, 
    211 3, 3, 3, 3, 3, 3, 3, 3, 
    212 3, 3, 3, 3, 3, 3, 3, 3, 
    213 70, 3, 3, 3, 3, 3, 3, 3, 
    214 3, 3, 3, 3, 3, 3, 3, 3, 
    215 3, 3, 3, 3, 3, 3, 3, 3, 
    216 3, 3, 3, 3, 3, 3, 3, 3, 
    217 3, 71, 3, 3, 3, 3, 3, 3, 
    218 3, 3, 3, 3, 3, 3, 3, 3, 
    219 3, 3, 3, 3, 3, 3, 3, 3, 
    220 3, 3, 3, 3, 3, 3, 3, 3, 
    221 71, 3, 68, 3, 3, 3, 3, 3, 
    222 3, 3, 69, 3, 3, 3, 3, 67, 
    223 67, 67, 67, 67, 67, 67, 67, 67, 
    224 67, 3, 3, 70, 3, 3, 3, 3, 
    225 3, 3, 3, 3, 3, 3, 3, 3, 
    226 3, 3, 3, 3, 3, 3, 3, 3, 
    227 3, 3, 3, 3, 3, 3, 3, 3, 
    228 3, 3, 3, 3, 71, 3, 3, 3, 
    229 3, 3, 3, 3, 3, 3, 3, 3, 
    230 3, 3, 3, 3, 3, 3, 3, 3, 
    231 3, 3, 3, 3, 3, 3, 3, 3, 
    232 3, 3, 3, 71, 3, 62, 3, 3, 
    233 3, 61, 61, 61, 61, 61, 61, 61, 
    234 61, 61, 61, 3, 52, 3, 3, 3, 
    235 3, 3, 3, 3, 53, 3, 3, 3, 
    236 3, 72, 72, 72, 72, 72, 72, 72, 
    237 72, 72, 72, 3, 3, 54, 3, 3, 
    238 3, 55, 3, 3, 3, 3, 3, 3, 
    239 3, 3, 3, 3, 3, 3, 3, 3, 
    240 3, 3, 3, 3, 3, 3, 3, 3, 
    241 3, 3, 3, 3, 3, 3, 56, 3, 
    242 3, 3, 3, 3, 3, 3, 3, 3, 
    243 3, 3, 3, 3, 3, 3, 3, 3, 
    244 3, 3, 3, 3, 3, 3, 3, 3, 
    245 3, 3, 3, 3, 3, 56, 3, 0, 
    246 0, 3, 3, 3, 3, 3, 3, 3, 
    247 3, 3, 3, 3, 3, 3, 3, 3, 
    248 3, 0, 3, 3, 0, 3, 3, 3, 
    249 3, 3, 3, 3, 3, 3, 3, 3, 
    250 3, 3, 3, 3, 3, 3, 3, 3, 
    251 3, 3, 3, 3, 3, 3, 3, 3, 
    252 0, 0, 3, 3, 3, 3, 3, 3, 
    253 3, 3, 3, 3, 3, 3, 3, 3, 
    254 3, 3, 3, 3, 3, 3, 3, 3, 
    255 3, 3, 3, 3, 3, 3, 3, 3, 
    256 0, 3, 1, 0, 0, 0, 0, 0, 
    257 0, 0, 2, 16, 0, 0, 0, 49, 
    258 49, 49, 49, 49, 49, 49, 49, 49, 
    259 49, 0, 0, 4, 5, 0, 0, 6, 
    260 0, 0, 0, 0, 0, 0, 0, 0, 
    261 0, 0, 0, 0, 0, 0, 0, 0, 
    262 0, 0, 0, 0, 0, 0, 0, 0, 
    263 0, 0, 0, 7, 8, 0, 0, 0, 
    264 0, 0, 0, 0, 0, 0, 0, 0, 
    265 0, 0, 0, 0, 0, 0, 0, 0, 
    266 0, 0, 0, 0, 0, 0, 0, 0, 
    267 0, 0, 0, 8, 0, 27, 27, 27, 
    268 27, 27, 27, 27, 27, 27, 27, 3, 
    269 3, 3, 3, 28, 3, 24, 3, 3, 
    270 3, 23, 23, 23, 23, 23, 23, 23, 
    271 23, 23, 23, 3, 20, 3, 3, 3, 
    272 19, 19, 19, 19, 19, 19, 19, 19, 
    273 19, 19, 3, 16, 3, 3, 3, 15, 
    274 15, 15, 15, 15, 15, 15, 15, 15, 
    275 15, 3, 73, 73, 73, 73, 73, 73, 
    276 73, 73, 73, 73, 3, 3, 11, 3, 
    277 3, 3, 3, 3, 3, 3, 3, 3, 
    278 3, 3, 3, 3, 3, 3, 3, 3, 
    279 3, 3, 3, 3, 3, 3, 3, 3, 
    280 3, 3, 3, 3, 3, 3, 3, 12, 
    281 3, 3, 3, 3, 3, 3, 3, 3, 
    282 3, 3, 3, 3, 3, 3, 3, 3, 
    283 3, 3, 3, 3, 3, 3, 3, 3, 
    284 3, 3, 3, 3, 3, 3, 12, 3, 
    285 75, 74, 74, 74, 74, 74, 74, 74, 
    286 76, 3, 74, 74, 74, 74, 74, 74, 
    287 74, 74, 74, 74, 74, 74, 74, 74, 
    288 74, 77, 78, 74, 74, 79, 74, 74, 
    289 74, 74, 74, 74, 74, 74, 74, 74, 
    290 74, 74, 74, 74, 74, 74, 74, 74, 
    291 74, 74, 74, 74, 74, 74, 74, 74, 
    292 80, 81, 82, 74, 74, 74, 74, 74, 
    293 74, 74, 74, 74, 74, 74, 74, 74, 
    294 74, 74, 74, 74, 74, 74, 74, 74, 
    295 74, 74, 74, 74, 74, 74, 74, 74, 
    296 74, 82, 74, 84, 83, 83, 83, 83, 
    297 83, 83, 83, 85, 3, 83, 83, 83, 
    298 83, 83, 83, 83, 83, 83, 83, 83, 
    299 83, 83, 83, 83, 86, 87, 83, 83, 
    300 88, 83, 83, 83, 83, 83, 83, 83, 
    301 83, 83, 83, 83, 83, 83, 83, 83, 
    302 83, 83, 83, 83, 83, 83, 83, 83, 
    303 83, 83, 83, 83, 89, 90, 83, 83, 
    304 83, 83, 83, 83, 83, 83, 83, 83, 
    305 83, 83, 83, 83, 83, 83, 83, 83, 
    306 83, 83, 83, 83, 83, 83, 83, 83, 
    307 83, 83, 83, 83, 90, 83, 91, 74, 
    308 74, 74, 74, 74, 74, 74, 92, 3, 
    309 74, 74, 74, 74, 74, 74, 74, 74, 
    310 74, 74, 74, 74, 74, 74, 74, 93, 
    311 94, 74, 74, 95, 74, 74, 74, 74, 
    312 74, 74, 74, 74, 74, 74, 74, 74, 
    313 74, 74, 74, 74, 74, 74, 74, 74, 
    314 74, 74, 74, 74, 74, 74, 74, 81, 
    315 96, 74, 74, 74, 74, 74, 74, 74, 
    316 74, 74, 74, 74, 74, 74, 74, 74, 
    317 74, 74, 74, 74, 74, 74, 74, 74, 
    318 74, 74, 74, 74, 74, 74, 74, 96, 
    319 74, 0
    320 };
    321 
    322 static const char _deserialize_text_glyphs_trans_targs[] = {
    323 1, 2, 17, 0, 25, 28, 30, 39, 
    324 47, 3, 45, 4, 47, 5, 6, 44, 
    325 7, 8, 9, 43, 10, 11, 12, 42, 
    326 13, 14, 15, 41, 16, 47, 18, 19, 
    327 24, 19, 24, 2, 20, 4, 47, 21, 
    328 22, 23, 22, 23, 2, 4, 47, 26, 
    329 27, 40, 29, 38, 2, 17, 4, 30, 
    330 47, 31, 32, 37, 32, 37, 33, 34, 
    331 35, 36, 35, 36, 2, 17, 4, 47, 
    332 38, 45, 1, 2, 17, 25, 28, 30, 
    333 48, 39, 47, 1, 2, 17, 25, 28, 
    334 30, 39, 47, 2, 17, 25, 28, 30, 
    335 47
    336 };
    337 
    338 static const char _deserialize_text_glyphs_trans_actions[] = {
    339 0, 1, 1, 0, 1, 1, 1, 0, 
    340 1, 2, 2, 3, 3, 0, 0, 0, 
    341 0, 0, 0, 0, 0, 0, 0, 0, 
    342 0, 0, 0, 0, 0, 0, 2, 2, 
    343 2, 0, 0, 4, 4, 4, 4, 2, 
    344 2, 2, 0, 0, 5, 5, 5, 0, 
    345 0, 0, 2, 2, 6, 6, 6, 6, 
    346 6, 2, 2, 2, 0, 0, 7, 2, 
    347 2, 2, 0, 0, 8, 8, 8, 8, 
    348 0, 0, 9, 10, 10, 10, 10, 10, 
    349 9, 9, 10, 12, 13, 13, 13, 13, 
    350 13, 12, 13, 14, 14, 14, 14, 14, 
    351 14
    352 };
    353 
    354 static const char _deserialize_text_glyphs_eof_actions[] = {
    355 0, 0, 0, 0, 0, 0, 0, 0, 
    356 0, 0, 0, 0, 0, 0, 0, 0, 
    357 0, 0, 0, 0, 0, 0, 0, 0, 
    358 0, 0, 0, 0, 0, 0, 0, 0, 
    359 0, 0, 0, 0, 0, 0, 0, 0, 
    360 0, 0, 0, 0, 0, 0, 0, 11, 
    361 0
    362 };
    363 
    364 static const int deserialize_text_glyphs_start = 46;
    365 static const int deserialize_text_glyphs_first_final = 46;
    366 static const int deserialize_text_glyphs_error = 0;
    367 
    368 static const int deserialize_text_glyphs_en_main = 46;
    369 
    370 
    371 #line 101 "hb-buffer-deserialize-text-glyphs.rl"
    372 
    373 
    374 static hb_bool_t
    375 _hb_buffer_deserialize_text_glyphs (hb_buffer_t *buffer,
    376 			    const char *buf,
    377 			    unsigned int buf_len,
    378 			    const char **end_ptr,
    379 			    hb_font_t *font)
    380 {
    381  const char *p = buf, *pe = buf + buf_len, *eof = pe;
    382 
    383  /* Ensure we have positions. */
    384  (void) hb_buffer_get_glyph_positions (buffer, nullptr);
    385 
    386  const char *tok = nullptr;
    387  int cs;
    388  hb_glyph_info_t info = {0};
    389  hb_glyph_position_t pos = {0};
    390  
    391 #line 386 "hb-buffer-deserialize-text-glyphs.hh"
    392 {
    393 cs = deserialize_text_glyphs_start;
    394 }
    395 
    396 #line 389 "hb-buffer-deserialize-text-glyphs.hh"
    397 {
    398 int _slen;
    399 int _trans;
    400 const unsigned char *_keys;
    401 const char *_inds;
    402 if ( p == pe )
    403 	goto _test_eof;
    404 if ( cs == 0 )
    405 	goto _out;
    406 _resume:
    407 _keys = _deserialize_text_glyphs_trans_keys + (cs<<1);
    408 _inds = _deserialize_text_glyphs_indicies + _deserialize_text_glyphs_index_offsets[cs];
    409 
    410 _slen = _deserialize_text_glyphs_key_spans[cs];
    411 _trans = _inds[ _slen > 0 && _keys[0] <=(*p) &&
    412 	(*p) <= _keys[1] ?
    413 	(*p) - _keys[0] : _slen ];
    414 
    415 cs = _deserialize_text_glyphs_trans_targs[_trans];
    416 
    417 if ( _deserialize_text_glyphs_trans_actions[_trans] == 0 )
    418 	goto _again;
    419 
    420 switch ( _deserialize_text_glyphs_trans_actions[_trans] ) {
    421 case 2:
    422 #line 50 "hb-buffer-deserialize-text-glyphs.rl"
    423 {
    424 tok = p;
    425 }
    426 break;
    427 case 1:
    428 #line 54 "hb-buffer-deserialize-text-glyphs.rl"
    429 {
    430 /* TODO Unescape delimiters. */
    431 if (!hb_font_glyph_from_string (font,
    432 				tok, p - tok,
    433 				&info.codepoint))
    434   return false;
    435 }
    436 break;
    437 case 6:
    438 #line 62 "hb-buffer-deserialize-text-glyphs.rl"
    439 { if (!parse_uint (tok, p, &info.cluster )) return false; }
    440 break;
    441 case 7:
    442 #line 63 "hb-buffer-deserialize-text-glyphs.rl"
    443 { if (!parse_int  (tok, p, &pos.x_offset )) return false; }
    444 break;
    445 case 8:
    446 #line 64 "hb-buffer-deserialize-text-glyphs.rl"
    447 { if (!parse_int  (tok, p, &pos.y_offset )) return false; }
    448 break;
    449 case 4:
    450 #line 65 "hb-buffer-deserialize-text-glyphs.rl"
    451 { if (!parse_int  (tok, p, &pos.x_advance)) return false; }
    452 break;
    453 case 5:
    454 #line 66 "hb-buffer-deserialize-text-glyphs.rl"
    455 { if (!parse_int  (tok, p, &pos.y_advance)) return false; }
    456 break;
    457 case 3:
    458 #line 67 "hb-buffer-deserialize-text-glyphs.rl"
    459 { if (!parse_uint (tok, p, &info.mask    )) return false; }
    460 break;
    461 case 9:
    462 #line 38 "hb-buffer-deserialize-text-glyphs.rl"
    463 {
    464 hb_memset (&info, 0, sizeof (info));
    465 hb_memset (&pos , 0, sizeof (pos ));
    466 }
    467 #line 50 "hb-buffer-deserialize-text-glyphs.rl"
    468 {
    469 tok = p;
    470 }
    471 break;
    472 case 10:
    473 #line 38 "hb-buffer-deserialize-text-glyphs.rl"
    474 {
    475 hb_memset (&info, 0, sizeof (info));
    476 hb_memset (&pos , 0, sizeof (pos ));
    477 }
    478 #line 50 "hb-buffer-deserialize-text-glyphs.rl"
    479 {
    480 tok = p;
    481 }
    482 #line 54 "hb-buffer-deserialize-text-glyphs.rl"
    483 {
    484 /* TODO Unescape delimiters. */
    485 if (!hb_font_glyph_from_string (font,
    486 				tok, p - tok,
    487 				&info.codepoint))
    488   return false;
    489 }
    490 break;
    491 case 12:
    492 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
    493 {
    494 buffer->add_info_and_pos (info, pos);
    495 if (unlikely (!buffer->successful))
    496   return false;
    497 *end_ptr = p;
    498 }
    499 #line 38 "hb-buffer-deserialize-text-glyphs.rl"
    500 {
    501 hb_memset (&info, 0, sizeof (info));
    502 hb_memset (&pos , 0, sizeof (pos ));
    503 }
    504 #line 50 "hb-buffer-deserialize-text-glyphs.rl"
    505 {
    506 tok = p;
    507 }
    508 break;
    509 case 14:
    510 #line 54 "hb-buffer-deserialize-text-glyphs.rl"
    511 {
    512 /* TODO Unescape delimiters. */
    513 if (!hb_font_glyph_from_string (font,
    514 				tok, p - tok,
    515 				&info.codepoint))
    516   return false;
    517 }
    518 #line 38 "hb-buffer-deserialize-text-glyphs.rl"
    519 {
    520 hb_memset (&info, 0, sizeof (info));
    521 hb_memset (&pos , 0, sizeof (pos ));
    522 }
    523 #line 50 "hb-buffer-deserialize-text-glyphs.rl"
    524 {
    525 tok = p;
    526 }
    527 break;
    528 case 13:
    529 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
    530 {
    531 buffer->add_info_and_pos (info, pos);
    532 if (unlikely (!buffer->successful))
    533   return false;
    534 *end_ptr = p;
    535 }
    536 #line 38 "hb-buffer-deserialize-text-glyphs.rl"
    537 {
    538 hb_memset (&info, 0, sizeof (info));
    539 hb_memset (&pos , 0, sizeof (pos ));
    540 }
    541 #line 50 "hb-buffer-deserialize-text-glyphs.rl"
    542 {
    543 tok = p;
    544 }
    545 #line 54 "hb-buffer-deserialize-text-glyphs.rl"
    546 {
    547 /* TODO Unescape delimiters. */
    548 if (!hb_font_glyph_from_string (font,
    549 				tok, p - tok,
    550 				&info.codepoint))
    551   return false;
    552 }
    553 break;
    554 #line 523 "hb-buffer-deserialize-text-glyphs.hh"
    555 }
    556 
    557 _again:
    558 if ( cs == 0 )
    559 	goto _out;
    560 if ( ++p != pe )
    561 	goto _resume;
    562 _test_eof: {}
    563 if ( p == eof )
    564 {
    565 switch ( _deserialize_text_glyphs_eof_actions[cs] ) {
    566 case 11:
    567 #line 43 "hb-buffer-deserialize-text-glyphs.rl"
    568 {
    569 buffer->add_info_and_pos (info, pos);
    570 if (unlikely (!buffer->successful))
    571   return false;
    572 *end_ptr = p;
    573 }
    574 break;
    575 #line 542 "hb-buffer-deserialize-text-glyphs.hh"
    576 }
    577 }
    578 
    579 _out: {}
    580 }
    581 
    582 #line 122 "hb-buffer-deserialize-text-glyphs.rl"
    583 
    584 
    585  *end_ptr = p;
    586 
    587  return p == pe;
    588 }
    589 
    590 #endif /* HB_BUFFER_DESERIALIZE_TEXT_GLYPHS_HH */