1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gfx/harfbuzz/src/hb-buffer-deserialize-text.hh Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,571 @@ 1.4 + 1.5 +#line 1 "../../src/hb-buffer-deserialize-text.rl" 1.6 +/* 1.7 + * Copyright © 2013 Google, Inc. 1.8 + * 1.9 + * This is part of HarfBuzz, a text shaping library. 1.10 + * 1.11 + * Permission is hereby granted, without written agreement and without 1.12 + * license or royalty fees, to use, copy, modify, and distribute this 1.13 + * software and its documentation for any purpose, provided that the 1.14 + * above copyright notice and the following two paragraphs appear in 1.15 + * all copies of this software. 1.16 + * 1.17 + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR 1.18 + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 1.19 + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN 1.20 + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 1.21 + * DAMAGE. 1.22 + * 1.23 + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, 1.24 + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 1.25 + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 1.26 + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO 1.27 + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 1.28 + * 1.29 + * Google Author(s): Behdad Esfahbod 1.30 + */ 1.31 + 1.32 +#ifndef HB_BUFFER_DESERIALIZE_TEXT_HH 1.33 +#define HB_BUFFER_DESERIALIZE_TEXT_HH 1.34 + 1.35 +#include "hb-private.hh" 1.36 + 1.37 + 1.38 +#line 36 "hb-buffer-deserialize-text.hh.tmp" 1.39 +static const unsigned char _deserialize_text_trans_keys[] = { 1.40 + 0u, 0u, 9u, 122u, 45u, 57u, 48u, 57u, 45u, 57u, 48u, 57u, 48u, 57u, 45u, 57u, 1.41 + 48u, 57u, 44u, 44u, 45u, 57u, 48u, 57u, 44u, 57u, 9u, 124u, 9u, 124u, 0u, 0u, 1.42 + 9u, 122u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 1.43 + 9u, 124u, 9u, 124u, 9u, 124u, 0 1.44 +}; 1.45 + 1.46 +static const char _deserialize_text_key_spans[] = { 1.47 + 0, 114, 13, 10, 13, 10, 10, 13, 1.48 + 10, 1, 13, 10, 14, 116, 116, 0, 1.49 + 114, 116, 116, 116, 116, 116, 116, 116, 1.50 + 116, 116, 116 1.51 +}; 1.52 + 1.53 +static const short _deserialize_text_index_offsets[] = { 1.54 + 0, 0, 115, 129, 140, 154, 165, 176, 1.55 + 190, 201, 203, 217, 228, 243, 360, 477, 1.56 + 478, 593, 710, 827, 944, 1061, 1178, 1295, 1.57 + 1412, 1529, 1646 1.58 +}; 1.59 + 1.60 +static const char _deserialize_text_indicies[] = { 1.61 + 0, 0, 0, 0, 0, 1, 1, 1.62 + 1, 1, 1, 1, 1, 1, 1, 1, 1.63 + 1, 1, 1, 1, 1, 1, 1, 1, 1.64 + 0, 1, 1, 1, 1, 1, 1, 1, 1.65 + 1, 1, 1, 1, 1, 1, 1, 1, 1.66 + 2, 3, 3, 3, 3, 3, 3, 3, 1.67 + 3, 3, 1, 1, 1, 1, 1, 1, 1.68 + 1, 4, 4, 4, 4, 4, 4, 4, 1.69 + 4, 4, 4, 4, 4, 4, 4, 4, 1.70 + 4, 4, 4, 4, 4, 4, 4, 4, 1.71 + 4, 4, 4, 1, 1, 1, 1, 1, 1.72 + 1, 4, 4, 4, 4, 4, 4, 4, 1.73 + 4, 4, 4, 4, 4, 4, 4, 4, 1.74 + 4, 4, 4, 4, 4, 4, 4, 4, 1.75 + 4, 4, 4, 1, 5, 1, 1, 6, 1.76 + 7, 7, 7, 7, 7, 7, 7, 7, 1.77 + 7, 1, 8, 9, 9, 9, 9, 9, 1.78 + 9, 9, 9, 9, 1, 10, 1, 1, 1.79 + 11, 12, 12, 12, 12, 12, 12, 12, 1.80 + 12, 12, 1, 13, 14, 14, 14, 14, 1.81 + 14, 14, 14, 14, 14, 1, 15, 16, 1.82 + 16, 16, 16, 16, 16, 16, 16, 16, 1.83 + 1, 17, 1, 1, 18, 19, 19, 19, 1.84 + 19, 19, 19, 19, 19, 19, 1, 20, 1.85 + 21, 21, 21, 21, 21, 21, 21, 21, 1.86 + 21, 1, 22, 1, 23, 1, 1, 24, 1.87 + 25, 25, 25, 25, 25, 25, 25, 25, 1.88 + 25, 1, 26, 27, 27, 27, 27, 27, 1.89 + 27, 27, 27, 27, 1, 22, 1, 1, 1.90 + 1, 21, 21, 21, 21, 21, 21, 21, 1.91 + 21, 21, 21, 1, 28, 28, 28, 28, 1.92 + 28, 1, 1, 1, 1, 1, 1, 1, 1.93 + 1, 1, 1, 1, 1, 1, 1, 1, 1.94 + 1, 1, 1, 28, 1, 1, 1, 1, 1.95 + 1, 1, 1, 1, 1, 1, 29, 1, 1.96 + 1, 1, 1, 1, 1, 1, 1, 1, 1.97 + 1, 1, 1, 1, 1, 1, 1, 1, 1.98 + 30, 1, 1, 31, 1, 1, 1, 1, 1.99 + 1, 1, 1, 1, 1, 1, 1, 1, 1.100 + 1, 1, 1, 1, 1, 1, 1, 1, 1.101 + 1, 1, 1, 1, 1, 1, 1, 1, 1.102 + 32, 1, 1, 1, 1, 1, 1, 1, 1.103 + 1, 1, 1, 1, 1, 1, 1, 1, 1.104 + 1, 1, 1, 1, 1, 1, 1, 1, 1.105 + 1, 1, 1, 1, 1, 1, 1, 33, 1.106 + 1, 34, 34, 34, 34, 34, 1, 1, 1.107 + 1, 1, 1, 1, 1, 1, 1, 1, 1.108 + 1, 1, 1, 1, 1, 1, 1, 1, 1.109 + 34, 1, 1, 1, 1, 1, 1, 1, 1.110 + 1, 1, 1, 1, 1, 1, 1, 1, 1.111 + 1, 1, 1, 1, 1, 1, 1, 1, 1.112 + 1, 1, 1, 1, 1, 1, 1, 1, 1.113 + 1, 1, 1, 1, 1, 1, 1, 1, 1.114 + 1, 1, 1, 1, 1, 1, 1, 1, 1.115 + 1, 1, 1, 1, 1, 1, 1, 1, 1.116 + 1, 1, 1, 1, 1, 35, 1, 1, 1.117 + 1, 1, 1, 1, 1, 1, 1, 1, 1.118 + 1, 1, 1, 1, 1, 1, 1, 1, 1.119 + 1, 1, 1, 1, 1, 1, 1, 1, 1.120 + 1, 1, 1, 1, 36, 1, 1, 0, 1.121 + 0, 0, 0, 0, 1, 1, 1, 1, 1.122 + 1, 1, 1, 1, 1, 1, 1, 1, 1.123 + 1, 1, 1, 1, 1, 1, 0, 1, 1.124 + 1, 1, 1, 1, 1, 1, 1, 1, 1.125 + 1, 1, 1, 1, 1, 1, 2, 3, 1.126 + 3, 3, 3, 3, 3, 3, 3, 3, 1.127 + 1, 1, 1, 1, 1, 1, 1, 4, 1.128 + 4, 4, 4, 4, 4, 4, 4, 4, 1.129 + 4, 4, 4, 4, 4, 4, 4, 4, 1.130 + 4, 4, 4, 4, 4, 4, 4, 4, 1.131 + 4, 1, 1, 1, 1, 1, 1, 4, 1.132 + 4, 4, 4, 4, 4, 4, 4, 4, 1.133 + 4, 4, 4, 4, 4, 4, 4, 4, 1.134 + 4, 4, 4, 4, 4, 4, 4, 4, 1.135 + 4, 1, 28, 28, 28, 28, 28, 1, 1.136 + 1, 1, 1, 1, 1, 1, 1, 1, 1.137 + 1, 1, 1, 1, 1, 1, 1, 1, 1.138 + 1, 28, 1, 1, 1, 1, 1, 1, 1.139 + 1, 1, 1, 1, 29, 1, 1, 1, 1.140 + 1, 37, 37, 37, 37, 37, 37, 37, 1.141 + 37, 37, 37, 1, 1, 1, 30, 1, 1.142 + 1, 31, 1, 1, 1, 1, 1, 1, 1.143 + 1, 1, 1, 1, 1, 1, 1, 1, 1.144 + 1, 1, 1, 1, 1, 1, 1, 1, 1.145 + 1, 1, 1, 1, 1, 1, 32, 1, 1.146 + 1, 1, 1, 1, 1, 1, 1, 1, 1.147 + 1, 1, 1, 1, 1, 1, 1, 1, 1.148 + 1, 1, 1, 1, 1, 1, 1, 1, 1.149 + 1, 1, 1, 1, 1, 33, 1, 38, 1.150 + 38, 38, 38, 38, 1, 1, 1, 1, 1.151 + 1, 1, 1, 1, 1, 1, 1, 1, 1.152 + 1, 1, 1, 1, 1, 1, 38, 1, 1.153 + 1, 1, 1, 1, 1, 1, 1, 1, 1.154 + 1, 1, 39, 1, 1, 1, 1, 1, 1.155 + 1, 1, 1, 1, 1, 1, 1, 1, 1.156 + 1, 1, 1, 1, 1, 1, 1, 1, 1.157 + 1, 1, 1, 1, 1, 1, 1, 1, 1.158 + 1, 1, 1, 1, 1, 1, 1, 1, 1.159 + 1, 1, 1, 1, 1, 1, 1, 1, 1.160 + 1, 1, 1, 40, 1, 1, 1, 1, 1.161 + 1, 1, 1, 1, 1, 1, 1, 1, 1.162 + 1, 1, 1, 1, 1, 1, 1, 1, 1.163 + 1, 1, 1, 1, 1, 1, 1, 1, 1.164 + 1, 1, 41, 1, 42, 42, 42, 42, 1.165 + 42, 1, 1, 1, 1, 1, 1, 1, 1.166 + 1, 1, 1, 1, 1, 1, 1, 1, 1.167 + 1, 1, 1, 42, 1, 1, 1, 1, 1.168 + 1, 1, 1, 1, 1, 1, 1, 1, 1.169 + 1, 1, 1, 1, 1, 1, 1, 1, 1.170 + 1, 1, 1, 1, 1, 1, 1, 1, 1.171 + 1, 1, 1, 1, 1, 1, 1, 1, 1.172 + 1, 1, 1, 1, 1, 1, 1, 1, 1.173 + 1, 1, 1, 1, 1, 1, 1, 1, 1.174 + 1, 1, 1, 1, 1, 1, 1, 1, 1.175 + 43, 1, 1, 1, 1, 1, 1, 1, 1.176 + 1, 1, 1, 1, 1, 1, 1, 1, 1.177 + 1, 1, 1, 1, 1, 1, 1, 1, 1.178 + 1, 1, 1, 1, 1, 1, 1, 44, 1.179 + 1, 42, 42, 42, 42, 42, 1, 1, 1.180 + 1, 1, 1, 1, 1, 1, 1, 1, 1.181 + 1, 1, 1, 1, 1, 1, 1, 1, 1.182 + 42, 1, 1, 1, 1, 1, 1, 1, 1.183 + 1, 1, 1, 1, 1, 1, 1, 1, 1.184 + 14, 14, 14, 14, 14, 14, 14, 14, 1.185 + 14, 14, 1, 1, 1, 1, 1, 1, 1.186 + 1, 1, 1, 1, 1, 1, 1, 1, 1.187 + 1, 1, 1, 1, 1, 1, 1, 1, 1.188 + 1, 1, 1, 1, 1, 1, 1, 1, 1.189 + 1, 1, 1, 1, 1, 43, 1, 1, 1.190 + 1, 1, 1, 1, 1, 1, 1, 1, 1.191 + 1, 1, 1, 1, 1, 1, 1, 1, 1.192 + 1, 1, 1, 1, 1, 1, 1, 1, 1.193 + 1, 1, 1, 1, 44, 1, 38, 38, 1.194 + 38, 38, 38, 1, 1, 1, 1, 1, 1.195 + 1, 1, 1, 1, 1, 1, 1, 1, 1.196 + 1, 1, 1, 1, 1, 38, 1, 1, 1.197 + 1, 1, 1, 1, 1, 1, 1, 1, 1.198 + 1, 39, 1, 1, 1, 9, 9, 9, 1.199 + 9, 9, 9, 9, 9, 9, 9, 1, 1.200 + 1, 1, 1, 1, 1, 1, 1, 1, 1.201 + 1, 1, 1, 1, 1, 1, 1, 1, 1.202 + 1, 1, 1, 1, 1, 1, 1, 1, 1.203 + 1, 1, 1, 1, 1, 1, 1, 1, 1.204 + 1, 1, 40, 1, 1, 1, 1, 1, 1.205 + 1, 1, 1, 1, 1, 1, 1, 1, 1.206 + 1, 1, 1, 1, 1, 1, 1, 1, 1.207 + 1, 1, 1, 1, 1, 1, 1, 1, 1.208 + 1, 41, 1, 45, 45, 45, 45, 45, 1.209 + 1, 1, 1, 1, 1, 1, 1, 1, 1.210 + 1, 1, 1, 1, 1, 1, 1, 1, 1.211 + 1, 1, 45, 1, 1, 1, 1, 1, 1.212 + 1, 1, 1, 1, 1, 46, 1, 1, 1.213 + 1, 1, 1, 1, 1, 1, 1, 1, 1.214 + 1, 1, 1, 1, 1, 1, 1, 1, 1.215 + 1, 1, 47, 1, 1, 1, 1, 1, 1.216 + 1, 1, 1, 1, 1, 1, 1, 1, 1.217 + 1, 1, 1, 1, 1, 1, 1, 1, 1.218 + 1, 1, 1, 1, 1, 1, 1, 48, 1.219 + 1, 1, 1, 1, 1, 1, 1, 1, 1.220 + 1, 1, 1, 1, 1, 1, 1, 1, 1.221 + 1, 1, 1, 1, 1, 1, 1, 1, 1.222 + 1, 1, 1, 1, 1, 1, 49, 1, 1.223 + 50, 50, 50, 50, 50, 1, 1, 1, 1.224 + 1, 1, 1, 1, 1, 1, 1, 1, 1.225 + 1, 1, 1, 1, 1, 1, 1, 50, 1.226 + 1, 1, 1, 1, 1, 1, 1, 1, 1.227 + 1, 1, 51, 1, 1, 1, 1, 1, 1.228 + 1, 1, 1, 1, 1, 1, 1, 1, 1.229 + 1, 1, 1, 1, 1, 1, 1, 1, 1.230 + 1, 1, 1, 1, 1, 1, 1, 1, 1.231 + 1, 1, 1, 1, 1, 1, 1, 1, 1.232 + 1, 1, 1, 1, 1, 1, 1, 1, 1.233 + 1, 1, 1, 1, 52, 1, 1, 1, 1.234 + 1, 1, 1, 1, 1, 1, 1, 1, 1.235 + 1, 1, 1, 1, 1, 1, 1, 1, 1.236 + 1, 1, 1, 1, 1, 1, 1, 1, 1.237 + 1, 1, 1, 53, 1, 50, 50, 50, 1.238 + 50, 50, 1, 1, 1, 1, 1, 1, 1.239 + 1, 1, 1, 1, 1, 1, 1, 1, 1.240 + 1, 1, 1, 1, 50, 1, 1, 1, 1.241 + 1, 1, 1, 1, 1, 1, 1, 51, 1.242 + 1, 1, 1, 1, 27, 27, 27, 27, 1.243 + 27, 27, 27, 27, 27, 27, 1, 1, 1.244 + 1, 1, 1, 1, 1, 1, 1, 1, 1.245 + 1, 1, 1, 1, 1, 1, 1, 1, 1.246 + 1, 1, 1, 1, 1, 1, 1, 1, 1.247 + 1, 1, 1, 1, 1, 1, 1, 1, 1.248 + 1, 52, 1, 1, 1, 1, 1, 1, 1.249 + 1, 1, 1, 1, 1, 1, 1, 1, 1.250 + 1, 1, 1, 1, 1, 1, 1, 1, 1.251 + 1, 1, 1, 1, 1, 1, 1, 1, 1.252 + 53, 1, 45, 45, 45, 45, 45, 1, 1.253 + 1, 1, 1, 1, 1, 1, 1, 1, 1.254 + 1, 1, 1, 1, 1, 1, 1, 1, 1.255 + 1, 45, 1, 1, 1, 1, 1, 1, 1.256 + 1, 1, 1, 1, 46, 1, 1, 1, 1.257 + 1, 54, 54, 54, 54, 54, 54, 54, 1.258 + 54, 54, 54, 1, 1, 1, 1, 1, 1.259 + 1, 47, 1, 1, 1, 1, 1, 1, 1.260 + 1, 1, 1, 1, 1, 1, 1, 1, 1.261 + 1, 1, 1, 1, 1, 1, 1, 1, 1.262 + 1, 1, 1, 1, 1, 1, 48, 1, 1.263 + 1, 1, 1, 1, 1, 1, 1, 1, 1.264 + 1, 1, 1, 1, 1, 1, 1, 1, 1.265 + 1, 1, 1, 1, 1, 1, 1, 1, 1.266 + 1, 1, 1, 1, 1, 49, 1, 28, 1.267 + 28, 28, 28, 28, 1, 1, 1, 1, 1.268 + 1, 1, 1, 1, 1, 1, 1, 1, 1.269 + 1, 1, 1, 1, 1, 1, 28, 1, 1.270 + 1, 1, 1, 1, 1, 1, 1, 1, 1.271 + 1, 29, 1, 55, 55, 1, 55, 55, 1.272 + 55, 55, 55, 55, 55, 55, 55, 55, 1.273 + 1, 1, 1, 30, 1, 1, 31, 55, 1.274 + 55, 55, 55, 55, 55, 55, 55, 55, 1.275 + 55, 55, 55, 55, 55, 55, 55, 55, 1.276 + 55, 55, 55, 55, 55, 55, 55, 55, 1.277 + 55, 1, 1, 32, 1, 55, 1, 55, 1.278 + 55, 55, 55, 55, 55, 55, 55, 55, 1.279 + 55, 55, 55, 55, 55, 55, 55, 55, 1.280 + 55, 55, 55, 55, 55, 55, 55, 55, 1.281 + 55, 1, 33, 1, 0 1.282 +}; 1.283 + 1.284 +static const char _deserialize_text_trans_targs[] = { 1.285 + 1, 0, 13, 17, 26, 3, 18, 21, 1.286 + 18, 21, 5, 19, 20, 19, 20, 22, 1.287 + 25, 8, 9, 12, 9, 12, 10, 11, 1.288 + 23, 24, 23, 24, 14, 2, 6, 7, 1.289 + 15, 16, 14, 15, 16, 17, 14, 4, 1.290 + 15, 16, 14, 15, 16, 14, 2, 7, 1.291 + 15, 16, 14, 2, 15, 16, 25, 26 1.292 +}; 1.293 + 1.294 +static const char _deserialize_text_trans_actions[] = { 1.295 + 0, 0, 1, 1, 1, 2, 2, 2, 1.296 + 0, 0, 2, 2, 2, 0, 0, 2, 1.297 + 2, 2, 2, 2, 0, 0, 3, 2, 1.298 + 2, 2, 0, 0, 4, 5, 5, 5, 1.299 + 4, 4, 0, 0, 0, 0, 6, 7, 1.300 + 6, 6, 8, 8, 8, 9, 10, 10, 1.301 + 9, 9, 11, 12, 11, 11, 0, 0 1.302 +}; 1.303 + 1.304 +static const char _deserialize_text_eof_actions[] = { 1.305 + 0, 0, 0, 0, 0, 0, 0, 0, 1.306 + 0, 0, 0, 0, 0, 4, 0, 0, 1.307 + 0, 4, 6, 8, 8, 6, 9, 11, 1.308 + 11, 9, 4 1.309 +}; 1.310 + 1.311 +static const int deserialize_text_start = 1; 1.312 +static const int deserialize_text_first_final = 13; 1.313 +static const int deserialize_text_error = 0; 1.314 + 1.315 +static const int deserialize_text_en_main = 1; 1.316 + 1.317 + 1.318 +#line 91 "../../src/hb-buffer-deserialize-text.rl" 1.319 + 1.320 + 1.321 +static hb_bool_t 1.322 +_hb_buffer_deserialize_glyphs_text (hb_buffer_t *buffer, 1.323 + const char *buf, 1.324 + unsigned int buf_len, 1.325 + const char **end_ptr, 1.326 + hb_font_t *font) 1.327 +{ 1.328 + const char *p = buf, *pe = buf + buf_len; 1.329 + 1.330 + /* Ensure we have positions. */ 1.331 + (void) hb_buffer_get_glyph_positions (buffer, NULL); 1.332 + 1.333 + while (p < pe && ISSPACE (*p)) 1.334 + p++; 1.335 + if (p < pe && *p == (buffer->len ? '|' : '[')) 1.336 + { 1.337 + *end_ptr = ++p; 1.338 + } 1.339 + 1.340 + const char *eof = pe, *tok = NULL; 1.341 + int cs; 1.342 + hb_glyph_info_t info; 1.343 + hb_glyph_position_t pos; 1.344 + 1.345 +#line 343 "hb-buffer-deserialize-text.hh.tmp" 1.346 + { 1.347 + cs = deserialize_text_start; 1.348 + } 1.349 + 1.350 +#line 348 "hb-buffer-deserialize-text.hh.tmp" 1.351 + { 1.352 + int _slen; 1.353 + int _trans; 1.354 + const unsigned char *_keys; 1.355 + const char *_inds; 1.356 + if ( p == pe ) 1.357 + goto _test_eof; 1.358 + if ( cs == 0 ) 1.359 + goto _out; 1.360 +_resume: 1.361 + _keys = _deserialize_text_trans_keys + (cs<<1); 1.362 + _inds = _deserialize_text_indicies + _deserialize_text_index_offsets[cs]; 1.363 + 1.364 + _slen = _deserialize_text_key_spans[cs]; 1.365 + _trans = _inds[ _slen > 0 && _keys[0] <=(*p) && 1.366 + (*p) <= _keys[1] ? 1.367 + (*p) - _keys[0] : _slen ]; 1.368 + 1.369 + cs = _deserialize_text_trans_targs[_trans]; 1.370 + 1.371 + if ( _deserialize_text_trans_actions[_trans] == 0 ) 1.372 + goto _again; 1.373 + 1.374 + switch ( _deserialize_text_trans_actions[_trans] ) { 1.375 + case 2: 1.376 +#line 51 "../../src/hb-buffer-deserialize-text.rl" 1.377 + { 1.378 + tok = p; 1.379 +} 1.380 + break; 1.381 + case 5: 1.382 +#line 55 "../../src/hb-buffer-deserialize-text.rl" 1.383 + { 1.384 + if (!hb_font_glyph_from_string (font, 1.385 + tok, p - tok, 1.386 + &info.codepoint)) 1.387 + return false; 1.388 +} 1.389 + break; 1.390 + case 10: 1.391 +#line 62 "../../src/hb-buffer-deserialize-text.rl" 1.392 + { if (!parse_uint (tok, p, &info.cluster )) return false; } 1.393 + break; 1.394 + case 3: 1.395 +#line 63 "../../src/hb-buffer-deserialize-text.rl" 1.396 + { if (!parse_int (tok, p, &pos.x_offset )) return false; } 1.397 + break; 1.398 + case 12: 1.399 +#line 64 "../../src/hb-buffer-deserialize-text.rl" 1.400 + { if (!parse_int (tok, p, &pos.y_offset )) return false; } 1.401 + break; 1.402 + case 7: 1.403 +#line 65 "../../src/hb-buffer-deserialize-text.rl" 1.404 + { if (!parse_int (tok, p, &pos.x_advance)) return false; } 1.405 + break; 1.406 + case 1: 1.407 +#line 38 "../../src/hb-buffer-deserialize-text.rl" 1.408 + { 1.409 + memset (&info, 0, sizeof (info)); 1.410 + memset (&pos , 0, sizeof (pos )); 1.411 +} 1.412 +#line 51 "../../src/hb-buffer-deserialize-text.rl" 1.413 + { 1.414 + tok = p; 1.415 +} 1.416 + break; 1.417 + case 4: 1.418 +#line 55 "../../src/hb-buffer-deserialize-text.rl" 1.419 + { 1.420 + if (!hb_font_glyph_from_string (font, 1.421 + tok, p - tok, 1.422 + &info.codepoint)) 1.423 + return false; 1.424 +} 1.425 +#line 43 "../../src/hb-buffer-deserialize-text.rl" 1.426 + { 1.427 + buffer->add_info (info); 1.428 + if (buffer->in_error) 1.429 + return false; 1.430 + buffer->pos[buffer->len - 1] = pos; 1.431 + *end_ptr = p; 1.432 +} 1.433 + break; 1.434 + case 9: 1.435 +#line 62 "../../src/hb-buffer-deserialize-text.rl" 1.436 + { if (!parse_uint (tok, p, &info.cluster )) return false; } 1.437 +#line 43 "../../src/hb-buffer-deserialize-text.rl" 1.438 + { 1.439 + buffer->add_info (info); 1.440 + if (buffer->in_error) 1.441 + return false; 1.442 + buffer->pos[buffer->len - 1] = pos; 1.443 + *end_ptr = p; 1.444 +} 1.445 + break; 1.446 + case 11: 1.447 +#line 64 "../../src/hb-buffer-deserialize-text.rl" 1.448 + { if (!parse_int (tok, p, &pos.y_offset )) return false; } 1.449 +#line 43 "../../src/hb-buffer-deserialize-text.rl" 1.450 + { 1.451 + buffer->add_info (info); 1.452 + if (buffer->in_error) 1.453 + return false; 1.454 + buffer->pos[buffer->len - 1] = pos; 1.455 + *end_ptr = p; 1.456 +} 1.457 + break; 1.458 + case 6: 1.459 +#line 65 "../../src/hb-buffer-deserialize-text.rl" 1.460 + { if (!parse_int (tok, p, &pos.x_advance)) return false; } 1.461 +#line 43 "../../src/hb-buffer-deserialize-text.rl" 1.462 + { 1.463 + buffer->add_info (info); 1.464 + if (buffer->in_error) 1.465 + return false; 1.466 + buffer->pos[buffer->len - 1] = pos; 1.467 + *end_ptr = p; 1.468 +} 1.469 + break; 1.470 + case 8: 1.471 +#line 66 "../../src/hb-buffer-deserialize-text.rl" 1.472 + { if (!parse_int (tok, p, &pos.y_advance)) return false; } 1.473 +#line 43 "../../src/hb-buffer-deserialize-text.rl" 1.474 + { 1.475 + buffer->add_info (info); 1.476 + if (buffer->in_error) 1.477 + return false; 1.478 + buffer->pos[buffer->len - 1] = pos; 1.479 + *end_ptr = p; 1.480 +} 1.481 + break; 1.482 +#line 480 "hb-buffer-deserialize-text.hh.tmp" 1.483 + } 1.484 + 1.485 +_again: 1.486 + if ( cs == 0 ) 1.487 + goto _out; 1.488 + if ( ++p != pe ) 1.489 + goto _resume; 1.490 + _test_eof: {} 1.491 + if ( p == eof ) 1.492 + { 1.493 + switch ( _deserialize_text_eof_actions[cs] ) { 1.494 + case 4: 1.495 +#line 55 "../../src/hb-buffer-deserialize-text.rl" 1.496 + { 1.497 + if (!hb_font_glyph_from_string (font, 1.498 + tok, p - tok, 1.499 + &info.codepoint)) 1.500 + return false; 1.501 +} 1.502 +#line 43 "../../src/hb-buffer-deserialize-text.rl" 1.503 + { 1.504 + buffer->add_info (info); 1.505 + if (buffer->in_error) 1.506 + return false; 1.507 + buffer->pos[buffer->len - 1] = pos; 1.508 + *end_ptr = p; 1.509 +} 1.510 + break; 1.511 + case 9: 1.512 +#line 62 "../../src/hb-buffer-deserialize-text.rl" 1.513 + { if (!parse_uint (tok, p, &info.cluster )) return false; } 1.514 +#line 43 "../../src/hb-buffer-deserialize-text.rl" 1.515 + { 1.516 + buffer->add_info (info); 1.517 + if (buffer->in_error) 1.518 + return false; 1.519 + buffer->pos[buffer->len - 1] = pos; 1.520 + *end_ptr = p; 1.521 +} 1.522 + break; 1.523 + case 11: 1.524 +#line 64 "../../src/hb-buffer-deserialize-text.rl" 1.525 + { if (!parse_int (tok, p, &pos.y_offset )) return false; } 1.526 +#line 43 "../../src/hb-buffer-deserialize-text.rl" 1.527 + { 1.528 + buffer->add_info (info); 1.529 + if (buffer->in_error) 1.530 + return false; 1.531 + buffer->pos[buffer->len - 1] = pos; 1.532 + *end_ptr = p; 1.533 +} 1.534 + break; 1.535 + case 6: 1.536 +#line 65 "../../src/hb-buffer-deserialize-text.rl" 1.537 + { if (!parse_int (tok, p, &pos.x_advance)) return false; } 1.538 +#line 43 "../../src/hb-buffer-deserialize-text.rl" 1.539 + { 1.540 + buffer->add_info (info); 1.541 + if (buffer->in_error) 1.542 + return false; 1.543 + buffer->pos[buffer->len - 1] = pos; 1.544 + *end_ptr = p; 1.545 +} 1.546 + break; 1.547 + case 8: 1.548 +#line 66 "../../src/hb-buffer-deserialize-text.rl" 1.549 + { if (!parse_int (tok, p, &pos.y_advance)) return false; } 1.550 +#line 43 "../../src/hb-buffer-deserialize-text.rl" 1.551 + { 1.552 + buffer->add_info (info); 1.553 + if (buffer->in_error) 1.554 + return false; 1.555 + buffer->pos[buffer->len - 1] = pos; 1.556 + *end_ptr = p; 1.557 +} 1.558 + break; 1.559 +#line 557 "hb-buffer-deserialize-text.hh.tmp" 1.560 + } 1.561 + } 1.562 + 1.563 + _out: {} 1.564 + } 1.565 + 1.566 +#line 119 "../../src/hb-buffer-deserialize-text.rl" 1.567 + 1.568 + 1.569 + *end_ptr = p; 1.570 + 1.571 + return p == pe && *(p-1) != ']'; 1.572 +} 1.573 + 1.574 +#endif /* HB_BUFFER_DESERIALIZE_TEXT_HH */