1 /*
2 * Do not edit this file!
3 * This file is generated from:
4 * DerivedCoreProperties.txt (version 6.3.0)
5 */
6
7 #include <stddef.h>
8 #include <idn/utf32.h>
9 #include <idn/auto/cased.h>
10
11 /*
12 * Cased tables.
13 */
14 #define CASED_BITS_0 9
15 #define CASED_BITS_1 7
16 #define CASED_BITS_2 5
17
18 static const unsigned short cased_imap[] = {
19 272, 400, 528, 656, 656, 656, 656, 656,
20 656, 656, 784, 656, 656, 656, 656, 912,
21 1040, 656, 656, 656, 656, 656, 656, 656,
22 656, 656, 656, 656, 656, 1168, 656, 656,
23 656, 656, 656, 656, 656, 656, 656, 656,
24 656, 656, 656, 656, 656, 656, 656, 656,
25 656, 656, 656, 656, 656, 656, 656, 656,
26 656, 656, 656, 656, 656, 656, 656, 656,
27 656, 656, 656, 656, 656, 656, 656, 656,
28 656, 656, 656, 656, 656, 656, 656, 656,
29 656, 656, 656, 656, 656, 656, 656, 656,
30 656, 656, 656, 656, 656, 656, 656, 656,
31 656, 656, 656, 656, 656, 656, 656, 656,
32 656, 656, 656, 656, 656, 656, 656, 656,
33 656, 656, 656, 656, 656, 656, 656, 656,
34 656, 656, 656, 656, 656, 656, 656, 656,
35 656, 656, 656, 656, 656, 656, 656, 656,
36 656, 656, 656, 656, 656, 656, 656, 656,
37 656, 656, 656, 656, 656, 656, 656, 656,
38 656, 656, 656, 656, 656, 656, 656, 656,
39 656, 656, 656, 656, 656, 656, 656, 656,
40 656, 656, 656, 656, 656, 656, 656, 656,
41 656, 656, 656, 656, 656, 656, 656, 656,
42 656, 656, 656, 656, 656, 656, 656, 656,
43 656, 656, 656, 656, 656, 656, 656, 656,
44 656, 656, 656, 656, 656, 656, 656, 656,
45 656, 656, 656, 656, 656, 656, 656, 656,
46 656, 656, 656, 656, 656, 656, 656, 656,
47 656, 656, 656, 656, 656, 656, 656, 656,
48 656, 656, 656, 656, 656, 656, 656, 656,
49 656, 656, 656, 656, 656, 656, 656, 656,
50 656, 656, 656, 656, 656, 656, 656, 656,
51 656, 656, 656, 656, 656, 656, 656, 656,
52 656, 656, 656, 656, 656, 656, 656, 656,
53 0, 0, 1, 1, 0, 2, 3, 3,
54 4, 4, 4, 4, 4, 5, 6, 4,
55 4, 4, 4, 4, 7, 8, 9, 10,
56 0, 0, 11, 12, 13, 14, 4, 15,
57 4, 4, 4, 4, 16, 4, 4, 4,
58 4, 17, 18, 19, 20, 0, 0, 0,
59 0, 0, 0, 0, 0, 0, 0, 0,
60 0, 0, 0, 0, 0, 0, 0, 0,
61 0, 0, 0, 0, 0, 0, 0, 0,
62 0, 0, 0, 0, 0, 0, 0, 0,
63 0, 0, 0, 0, 0, 0, 0, 0,
64 0, 0, 0, 0, 0, 0, 0, 0,
65 0, 0, 0, 0, 0, 0, 0, 0,
66 0, 0, 0, 0, 0, 0, 0, 0,
67 0, 0, 0, 0, 0, 0, 0, 0,
68 0, 0, 0, 0, 0, 0, 0, 0,
69 0, 0, 0, 0, 0, 4, 21, 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, 0, 0, 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, 0, 0, 0, 0, 0, 0,
78 0, 0, 0, 0, 0, 0, 0, 0,
79 0, 0, 0, 0, 0, 0, 0, 0,
80 0, 0, 0, 0, 0, 0, 0, 0,
81 0, 0, 0, 0, 0, 0, 0, 0,
82 4, 4, 4, 4, 4, 4, 0, 0,
83 4, 4, 4, 4, 4, 4, 4, 4,
84 22, 4, 23, 24, 4, 25, 26, 27,
85 0, 0, 0, 28, 29, 0, 0, 0,
86 30, 31, 32, 4, 33, 0, 0, 0,
87 0, 0, 0, 0, 0, 0, 0, 0,
88 0, 0, 0, 0, 0, 0, 0, 0,
89 0, 0, 0, 0, 0, 34, 4, 35,
90 0, 0, 0, 0, 0, 0, 0, 0,
91 0, 0, 0, 0, 0, 0, 0, 0,
92 0, 0, 0, 0, 0, 0, 0, 0,
93 0, 0, 0, 0, 0, 0, 0, 0,
94 0, 0, 0, 0, 0, 0, 0, 0,
95 0, 0, 0, 0, 0, 0, 0, 0,
96 0, 0, 0, 0, 0, 0, 0, 0,
97 4, 36, 37, 4, 4, 4, 4, 38,
98 4, 21, 0, 0, 0, 0, 0, 0,
99 0, 0, 0, 0, 0, 0, 0, 0,
100 0, 0, 0, 0, 0, 0, 0, 0,
101 0, 0, 0, 0, 0, 0, 0, 0,
102 0, 0, 0, 0, 0, 0, 0, 0,
103 0, 0, 0, 0, 0, 0, 0, 0,
104 0, 0, 0, 0, 0, 0, 0, 0,
105 0, 0, 0, 0, 0, 0, 0, 0,
106 0, 0, 0, 0, 0, 0, 0, 0,
107 0, 0, 0, 0, 0, 0, 0, 0,
108 0, 0, 0, 0, 0, 0, 0, 0,
109 0, 0, 0, 0, 0, 0, 0, 0,
110 0, 0, 0, 0, 0, 0, 0, 0,
111 0, 0, 0, 0, 0, 0, 0, 0,
112 0, 0, 0, 0, 0, 0, 0, 0,
113 0, 0, 0, 0, 0, 0, 0, 0,
114 0, 0, 0, 0, 0, 0, 0, 0,
115 0, 0, 0, 0, 0, 0, 0, 0,
116 0, 0, 0, 0, 0, 0, 0, 0,
117 0, 0, 0, 0, 0, 0, 0, 0,
118 0, 0, 0, 0, 0, 0, 0, 0,
119 0, 0, 0, 0, 0, 0, 0, 0,
120 0, 0, 0, 0, 0, 0, 0, 0,
121 0, 0, 0, 0, 0, 0, 0, 0,
122 0, 0, 0, 0, 0, 0, 0, 0,
123 0, 0, 4, 39, 40, 0, 0, 0,
124 0, 41, 4, 4, 42, 43, 0, 44,
125 0, 0, 0, 0, 0, 0, 0, 0,
126 0, 0, 0, 0, 0, 0, 0, 0,
127 0, 0, 0, 0, 0, 0, 0, 0,
128 0, 0, 0, 0, 0, 0, 0, 0,
129 0, 0, 0, 0, 0, 0, 0, 0,
130 0, 0, 0, 0, 0, 0, 0, 0,
131 0, 0, 0, 0, 0, 0, 0, 0,
132 0, 0, 0, 0, 0, 0, 0, 0,
133 0, 0, 0, 0, 0, 0, 0, 0,
134 0, 0, 0, 0, 0, 0, 0, 0,
135 0, 0, 0, 0, 0, 0, 0, 0,
136 0, 0, 0, 0, 0, 0, 0, 0,
137 0, 0, 0, 0, 0, 0, 0, 0,
138 0, 0, 0, 0, 0, 0, 0, 0,
139 0, 0, 0, 0, 0, 0, 0, 0,
140 0, 0, 0, 0, 0, 0, 0, 0,
141 0, 0, 0, 0, 0, 0, 0, 0,
142 0, 0, 0, 0, 0, 0, 0, 0,
143 0, 0, 0, 0, 0, 0, 0, 0,
144 45, 0, 0, 0, 0, 0, 0, 0,
145 0, 0, 0, 0, 0, 0, 0, 0,
146 0, 0, 0, 0, 0, 0, 0, 0,
147 0, 0, 0, 0, 0, 0, 0, 0,
148 0, 1, 1, 0, 0, 0, 0, 0,
149 0, 0, 0, 0, 0, 0, 0, 0,
150 0, 0, 0, 0, 0, 0, 0, 0,
151 0, 0, 0, 0, 0, 0, 0, 0,
152 0, 0, 0, 0, 0, 0, 0, 0,
153 4, 4, 46, 0, 0, 0, 0, 0,
154 0, 0, 0, 0, 0, 0, 0, 0,
155 0, 0, 0, 0, 0, 0, 0, 0,
156 0, 0, 0, 0, 0, 0, 0, 0,
157 0, 0, 0, 0, 0, 0, 0, 0,
158 0, 0, 0, 0, 0, 0, 0, 0,
159 0, 0, 0, 0, 0, 0, 0, 0,
160 0, 0, 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, 0, 0, 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, 0, 0, 0,
168 0, 0, 0, 0, 0, 0, 0, 0,
169 4, 4, 47, 4, 48, 49, 50, 4,
170 51, 52, 53, 4, 4, 4, 4, 4,
171 4, 4, 4, 4, 4, 54, 55, 5,
172 47, 47, 36, 36, 56, 56, 57, 0,
173 0, 0, 0, 0, 0, 0, 0, 0,
174 0, 0, 0, 0, 0, 0, 0, 0,
175 0, 0, 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 0, 0, 0, 0, 0, 0, 0, 0,
180 0, 0, 0, 0, 0, 0, 0, 0,
181 };
182
183 static const struct {
184 unsigned char bm[4];
185 } cased_bitmap[] = {
186 {{
187 0, 0, 0, 0,
188 }},
189 {{
190 254,255,255, 7,
191 }},
192 {{
193 0, 4, 32, 4,
194 }},
195 {{
196 255,255,127,255,
197 }},
198 {{
199 255,255,255,255,
200 }},
201 {{
202 255,255,255,247,
203 }},
204 {{
205 240,255,255,255,
206 }},
207 {{
208 255,255,239,255,
209 }},
210 {{
211 255,255,255, 1,
212 }},
213 {{
214 3, 0, 0, 0,
215 }},
216 {{
217 31, 0, 0, 0,
218 }},
219 {{
220 32, 0, 0, 0,
221 }},
222 {{
223 0, 0,207, 60,
224 }},
225 {{
226 64,215,255,255,
227 }},
228 {{
229 251,255,255,255,
230 }},
231 {{
232 255,255,191,255,
233 }},
234 {{
235 3,252,255,255,
236 }},
237 {{
238 255, 0,254,255,
239 }},
240 {{
241 255,255,127, 0,
242 }},
243 {{
244 254,255,255,255,
245 }},
246 {{
247 255, 0, 0, 0,
248 }},
249 {{
250 191, 32, 0, 0,
251 }},
252 {{
253 255,255, 63, 63,
254 }},
255 {{
256 63, 63,255,170,
257 }},
258 {{
259 255,255,255, 63,
260 }},
261 {{
262 255,255,223, 95,
263 }},
264 {{
265 220, 31,207, 15,
266 }},
267 {{
268 255, 31,220, 31,
269 }},
270 {{
271 0, 0, 2,128,
272 }},
273 {{
274 0, 0,255, 31,
275 }},
276 {{
277 132,252, 47, 62,
278 }},
279 {{
280 80,189, 31,242,
281 }},
282 {{
283 224, 67, 0, 0,
284 }},
285 {{
286 24, 0, 0, 0,
287 }},
288 {{
289 0, 0,192,255,
290 }},
291 {{
292 255, 3, 0, 0,
293 }},
294 {{
295 255,127,255,255,
296 }},
297 {{
298 255,255,255,127,
299 }},
300 {{
301 31,120, 12, 0,
302 }},
303 {{
304 255, 63, 0, 0,
305 }},
306 {{
307 255,255,255, 0,
308 }},
309 {{
310 252,255,255,255,
311 }},
312 {{
313 255,120, 15, 0,
314 }},
315 {{
316 255, 7, 0, 0,
317 }},
318 {{
319 0, 0, 0, 7,
320 }},
321 {{
322 127, 0,248, 0,
323 }},
324 {{
325 255,255, 0, 0,
326 }},
327 {{
328 255,255,223,255,
329 }},
330 {{
331 255,255,255,223,
332 }},
333 {{
334 100,222,255,235,
335 }},
336 {{
337 239,255,255,255,
338 }},
339 {{
340 191,231,223,223,
341 }},
342 {{
343 255,255,255,123,
344 }},
345 {{
346 95,252,253,255,
347 }},
348 {{
349 63,255,255,255,
350 }},
351 {{
352 253,255,255,247,
353 }},
354 {{
355 255,253,255,255,
356 }},
357 {{
358 247, 15, 0, 0,
359 }},
360 };
361
362 /*
363 * Table accessor.
364 */
365 extern int
idn__sparsemap_getcased(unsigned long v)366 idn__sparsemap_getcased(unsigned long v) {
367 int idx0, idx1, idx2, idx3;
368
369 if (v > UTF32_MAX)
370 return (0);
371 idx0 = v >> (CASED_BITS_1 + CASED_BITS_2);
372 idx1 = (v >> CASED_BITS_2) & ((1 << CASED_BITS_1) - 1);
373 idx2 = (v & ((1 << CASED_BITS_2) - 1)) >> 3;
374 idx3 = 1 << (v & 0x07);
375 return cased_bitmap[cased_imap[cased_imap[idx0] + idx1]].bm[idx2] & idx3;
376 }
377