Branch data Line data Source code
1 : : /* -*- mode: C -*-
2 : : *
3 : : * File: pdf-text-ucd-combclass.c
4 : : * Date: Sun Mar 09 12:59:01 2008
5 : : *
6 : : * GNU PDF Library - Unicode Character Database - Combining Class
7 : : *
8 : : * WARNING! The contents of the arrays in this file are self-generated
9 : : * from the UnicodeData.txt file, using the `pdf_text_generate_ucd'
10 : : * utility
11 : : *
12 : : */
13 : :
14 : : /* Copyright (C) 2008-2011 Free Software Foundation, Inc. */
15 : :
16 : : /* This program is free software: you can redistribute it and/or modify
17 : : * it under the terms of the GNU General Public License as published by
18 : : * the Free Software Foundation, either version 3 of the License, or
19 : : * (at your option) any later version.
20 : : *
21 : : * This program is distributed in the hope that it will be useful,
22 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 : : * GNU General Public License for more details.
25 : : *
26 : : * You should have received a copy of the GNU General Public License
27 : : * along with this program. If not, see <http://www.gnu.org/licenses/>.
28 : : */
29 : :
30 : : #include <config.h>
31 : :
32 : : #include <pdf-text-ucd-combclass.h>
33 : :
34 : : typedef struct _unicode_combclass_info_s {
35 : : pdf_u32_t unicode_point;
36 : : pdf_u8_t combining_class;
37 : : } unicode_combclass_info_t;
38 : :
39 : : typedef struct _unicode_combclass_interval_s {
40 : : pdf_u32_t interval_start;
41 : : pdf_u32_t interval_stop;
42 : : long delta;
43 : : } unicode_combclass_interval_t;
44 : :
45 : : /*************** START OF SELF-GENERATED DATA *********************************/
46 : :
47 : : /* Constant length of arrays */
48 : : #define UCD_COMBCLASS_INFO_N 501
49 : : #define UCD_COMBCLASS_INT_N 94
50 : :
51 : : static unicode_combclass_info_t unicode_combclass_info[UCD_COMBCLASS_INFO_N] = {
52 : : { 0x0300, 230},
53 : : { 0x0301, 230},
54 : : { 0x0302, 230},
55 : : { 0x0303, 230},
56 : : { 0x0304, 230},
57 : : { 0x0305, 230},
58 : : { 0x0306, 230},
59 : : { 0x0307, 230},
60 : : { 0x0308, 230},
61 : : { 0x0309, 230},
62 : : { 0x030A, 230},
63 : : { 0x030B, 230},
64 : : { 0x030C, 230},
65 : : { 0x030D, 230},
66 : : { 0x030E, 230},
67 : : { 0x030F, 230},
68 : : { 0x0310, 230},
69 : : { 0x0311, 230},
70 : : { 0x0312, 230},
71 : : { 0x0313, 230},
72 : : { 0x0314, 230},
73 : : { 0x0315, 232},
74 : : { 0x0316, 220},
75 : : { 0x0317, 220},
76 : : { 0x0318, 220},
77 : : { 0x0319, 220},
78 : : { 0x031A, 232},
79 : : { 0x031B, 216},
80 : : { 0x031C, 220},
81 : : { 0x031D, 220},
82 : : { 0x031E, 220},
83 : : { 0x031F, 220},
84 : : { 0x0320, 220},
85 : : { 0x0321, 202},
86 : : { 0x0322, 202},
87 : : { 0x0323, 220},
88 : : { 0x0324, 220},
89 : : { 0x0325, 220},
90 : : { 0x0326, 220},
91 : : { 0x0327, 202},
92 : : { 0x0328, 202},
93 : : { 0x0329, 220},
94 : : { 0x032A, 220},
95 : : { 0x032B, 220},
96 : : { 0x032C, 220},
97 : : { 0x032D, 220},
98 : : { 0x032E, 220},
99 : : { 0x032F, 220},
100 : : { 0x0330, 220},
101 : : { 0x0331, 220},
102 : : { 0x0332, 220},
103 : : { 0x0333, 220},
104 : : { 0x0334, 1},
105 : : { 0x0335, 1},
106 : : { 0x0336, 1},
107 : : { 0x0337, 1},
108 : : { 0x0338, 1},
109 : : { 0x0339, 220},
110 : : { 0x033A, 220},
111 : : { 0x033B, 220},
112 : : { 0x033C, 220},
113 : : { 0x033D, 230},
114 : : { 0x033E, 230},
115 : : { 0x033F, 230},
116 : : { 0x0340, 230},
117 : : { 0x0341, 230},
118 : : { 0x0342, 230},
119 : : { 0x0343, 230},
120 : : { 0x0344, 230},
121 : : { 0x0345, 240},
122 : : { 0x0346, 230},
123 : : { 0x0347, 220},
124 : : { 0x0348, 220},
125 : : { 0x0349, 220},
126 : : { 0x034A, 230},
127 : : { 0x034B, 230},
128 : : { 0x034C, 230},
129 : : { 0x034D, 220},
130 : : { 0x034E, 220},
131 : : { 0x0350, 230},
132 : : { 0x0351, 230},
133 : : { 0x0352, 230},
134 : : { 0x0353, 220},
135 : : { 0x0354, 220},
136 : : { 0x0355, 220},
137 : : { 0x0356, 220},
138 : : { 0x0357, 230},
139 : : { 0x0358, 232},
140 : : { 0x0359, 220},
141 : : { 0x035A, 220},
142 : : { 0x035B, 230},
143 : : { 0x035C, 233},
144 : : { 0x035D, 234},
145 : : { 0x035E, 234},
146 : : { 0x035F, 233},
147 : : { 0x0360, 234},
148 : : { 0x0361, 234},
149 : : { 0x0362, 233},
150 : : { 0x0363, 230},
151 : : { 0x0364, 230},
152 : : { 0x0365, 230},
153 : : { 0x0366, 230},
154 : : { 0x0367, 230},
155 : : { 0x0368, 230},
156 : : { 0x0369, 230},
157 : : { 0x036A, 230},
158 : : { 0x036B, 230},
159 : : { 0x036C, 230},
160 : : { 0x036D, 230},
161 : : { 0x036E, 230},
162 : : { 0x036F, 230},
163 : : { 0x0483, 230},
164 : : { 0x0484, 230},
165 : : { 0x0485, 230},
166 : : { 0x0486, 230},
167 : : { 0x0487, 230},
168 : : { 0x0591, 220},
169 : : { 0x0592, 230},
170 : : { 0x0593, 230},
171 : : { 0x0594, 230},
172 : : { 0x0595, 230},
173 : : { 0x0596, 220},
174 : : { 0x0597, 230},
175 : : { 0x0598, 230},
176 : : { 0x0599, 230},
177 : : { 0x059A, 222},
178 : : { 0x059B, 220},
179 : : { 0x059C, 230},
180 : : { 0x059D, 230},
181 : : { 0x059E, 230},
182 : : { 0x059F, 230},
183 : : { 0x05A0, 230},
184 : : { 0x05A1, 230},
185 : : { 0x05A2, 220},
186 : : { 0x05A3, 220},
187 : : { 0x05A4, 220},
188 : : { 0x05A5, 220},
189 : : { 0x05A6, 220},
190 : : { 0x05A7, 220},
191 : : { 0x05A8, 230},
192 : : { 0x05A9, 230},
193 : : { 0x05AA, 220},
194 : : { 0x05AB, 230},
195 : : { 0x05AC, 230},
196 : : { 0x05AD, 222},
197 : : { 0x05AE, 228},
198 : : { 0x05AF, 230},
199 : : { 0x05B0, 10},
200 : : { 0x05B1, 11},
201 : : { 0x05B2, 12},
202 : : { 0x05B3, 13},
203 : : { 0x05B4, 14},
204 : : { 0x05B5, 15},
205 : : { 0x05B6, 16},
206 : : { 0x05B7, 17},
207 : : { 0x05B8, 18},
208 : : { 0x05B9, 19},
209 : : { 0x05BA, 19},
210 : : { 0x05BB, 20},
211 : : { 0x05BC, 21},
212 : : { 0x05BD, 22},
213 : : { 0x05BF, 23},
214 : : { 0x05C1, 24},
215 : : { 0x05C2, 25},
216 : : { 0x05C4, 230},
217 : : { 0x05C5, 220},
218 : : { 0x05C7, 18},
219 : : { 0x0610, 230},
220 : : { 0x0611, 230},
221 : : { 0x0612, 230},
222 : : { 0x0613, 230},
223 : : { 0x0614, 230},
224 : : { 0x0615, 230},
225 : : { 0x0616, 230},
226 : : { 0x0617, 230},
227 : : { 0x0618, 30},
228 : : { 0x0619, 31},
229 : : { 0x061A, 32},
230 : : { 0x064B, 27},
231 : : { 0x064C, 28},
232 : : { 0x064D, 29},
233 : : { 0x064E, 30},
234 : : { 0x064F, 31},
235 : : { 0x0650, 32},
236 : : { 0x0651, 33},
237 : : { 0x0652, 34},
238 : : { 0x0653, 230},
239 : : { 0x0654, 230},
240 : : { 0x0655, 220},
241 : : { 0x0656, 220},
242 : : { 0x0657, 230},
243 : : { 0x0658, 230},
244 : : { 0x0659, 230},
245 : : { 0x065A, 230},
246 : : { 0x065B, 230},
247 : : { 0x065C, 220},
248 : : { 0x065D, 230},
249 : : { 0x065E, 230},
250 : : { 0x0670, 35},
251 : : { 0x06D6, 230},
252 : : { 0x06D7, 230},
253 : : { 0x06D8, 230},
254 : : { 0x06D9, 230},
255 : : { 0x06DA, 230},
256 : : { 0x06DB, 230},
257 : : { 0x06DC, 230},
258 : : { 0x06DF, 230},
259 : : { 0x06E0, 230},
260 : : { 0x06E1, 230},
261 : : { 0x06E2, 230},
262 : : { 0x06E3, 220},
263 : : { 0x06E4, 230},
264 : : { 0x06E7, 230},
265 : : { 0x06E8, 230},
266 : : { 0x06EA, 220},
267 : : { 0x06EB, 230},
268 : : { 0x06EC, 230},
269 : : { 0x06ED, 220},
270 : : { 0x0711, 36},
271 : : { 0x0730, 230},
272 : : { 0x0731, 220},
273 : : { 0x0732, 230},
274 : : { 0x0733, 230},
275 : : { 0x0734, 220},
276 : : { 0x0735, 230},
277 : : { 0x0736, 230},
278 : : { 0x0737, 220},
279 : : { 0x0738, 220},
280 : : { 0x0739, 220},
281 : : { 0x073A, 230},
282 : : { 0x073B, 220},
283 : : { 0x073C, 220},
284 : : { 0x073D, 230},
285 : : { 0x073E, 220},
286 : : { 0x073F, 230},
287 : : { 0x0740, 230},
288 : : { 0x0741, 230},
289 : : { 0x0742, 220},
290 : : { 0x0743, 230},
291 : : { 0x0744, 220},
292 : : { 0x0745, 230},
293 : : { 0x0746, 220},
294 : : { 0x0747, 230},
295 : : { 0x0748, 220},
296 : : { 0x0749, 230},
297 : : { 0x074A, 230},
298 : : { 0x07EB, 230},
299 : : { 0x07EC, 230},
300 : : { 0x07ED, 230},
301 : : { 0x07EE, 230},
302 : : { 0x07EF, 230},
303 : : { 0x07F0, 230},
304 : : { 0x07F1, 230},
305 : : { 0x07F2, 220},
306 : : { 0x07F3, 230},
307 : : { 0x093C, 7},
308 : : { 0x094D, 9},
309 : : { 0x0951, 230},
310 : : { 0x0952, 220},
311 : : { 0x0953, 230},
312 : : { 0x0954, 230},
313 : : { 0x09BC, 7},
314 : : { 0x09CD, 9},
315 : : { 0x0A3C, 7},
316 : : { 0x0A4D, 9},
317 : : { 0x0ABC, 7},
318 : : { 0x0ACD, 9},
319 : : { 0x0B3C, 7},
320 : : { 0x0B4D, 9},
321 : : { 0x0BCD, 9},
322 : : { 0x0C4D, 9},
323 : : { 0x0C55, 84},
324 : : { 0x0C56, 91},
325 : : { 0x0CBC, 7},
326 : : { 0x0CCD, 9},
327 : : { 0x0D4D, 9},
328 : : { 0x0DCA, 9},
329 : : { 0x0E38, 103},
330 : : { 0x0E39, 103},
331 : : { 0x0E3A, 9},
332 : : { 0x0E48, 107},
333 : : { 0x0E49, 107},
334 : : { 0x0E4A, 107},
335 : : { 0x0E4B, 107},
336 : : { 0x0EB8, 118},
337 : : { 0x0EB9, 118},
338 : : { 0x0EC8, 122},
339 : : { 0x0EC9, 122},
340 : : { 0x0ECA, 122},
341 : : { 0x0ECB, 122},
342 : : { 0x0F18, 220},
343 : : { 0x0F19, 220},
344 : : { 0x0F35, 220},
345 : : { 0x0F37, 220},
346 : : { 0x0F39, 216},
347 : : { 0x0F71, 129},
348 : : { 0x0F72, 130},
349 : : { 0x0F74, 132},
350 : : { 0x0F7A, 130},
351 : : { 0x0F7B, 130},
352 : : { 0x0F7C, 130},
353 : : { 0x0F7D, 130},
354 : : { 0x0F80, 130},
355 : : { 0x0F82, 230},
356 : : { 0x0F83, 230},
357 : : { 0x0F84, 9},
358 : : { 0x0F86, 230},
359 : : { 0x0F87, 230},
360 : : { 0x0FC6, 220},
361 : : { 0x1037, 7},
362 : : { 0x1039, 9},
363 : : { 0x103A, 9},
364 : : { 0x108D, 220},
365 : : { 0x135F, 230},
366 : : { 0x1714, 9},
367 : : { 0x1734, 9},
368 : : { 0x17D2, 9},
369 : : { 0x17DD, 230},
370 : : { 0x18A9, 228},
371 : : { 0x1939, 222},
372 : : { 0x193A, 230},
373 : : { 0x193B, 220},
374 : : { 0x1A17, 230},
375 : : { 0x1A18, 220},
376 : : { 0x1B34, 7},
377 : : { 0x1B44, 9},
378 : : { 0x1B6B, 230},
379 : : { 0x1B6C, 220},
380 : : { 0x1B6D, 230},
381 : : { 0x1B6E, 230},
382 : : { 0x1B6F, 230},
383 : : { 0x1B70, 230},
384 : : { 0x1B71, 230},
385 : : { 0x1B72, 230},
386 : : { 0x1B73, 230},
387 : : { 0x1BAA, 9},
388 : : { 0x1C37, 7},
389 : : { 0x1DC0, 230},
390 : : { 0x1DC1, 230},
391 : : { 0x1DC2, 220},
392 : : { 0x1DC3, 230},
393 : : { 0x1DC4, 230},
394 : : { 0x1DC5, 230},
395 : : { 0x1DC6, 230},
396 : : { 0x1DC7, 230},
397 : : { 0x1DC8, 230},
398 : : { 0x1DC9, 230},
399 : : { 0x1DCA, 220},
400 : : { 0x1DCB, 230},
401 : : { 0x1DCC, 230},
402 : : { 0x1DCD, 234},
403 : : { 0x1DCE, 214},
404 : : { 0x1DCF, 220},
405 : : { 0x1DD0, 202},
406 : : { 0x1DD1, 230},
407 : : { 0x1DD2, 230},
408 : : { 0x1DD3, 230},
409 : : { 0x1DD4, 230},
410 : : { 0x1DD5, 230},
411 : : { 0x1DD6, 230},
412 : : { 0x1DD7, 230},
413 : : { 0x1DD8, 230},
414 : : { 0x1DD9, 230},
415 : : { 0x1DDA, 230},
416 : : { 0x1DDB, 230},
417 : : { 0x1DDC, 230},
418 : : { 0x1DDD, 230},
419 : : { 0x1DDE, 230},
420 : : { 0x1DDF, 230},
421 : : { 0x1DE0, 230},
422 : : { 0x1DE1, 230},
423 : : { 0x1DE2, 230},
424 : : { 0x1DE3, 230},
425 : : { 0x1DE4, 230},
426 : : { 0x1DE5, 230},
427 : : { 0x1DE6, 230},
428 : : { 0x1DFE, 230},
429 : : { 0x1DFF, 220},
430 : : { 0x20D0, 230},
431 : : { 0x20D1, 230},
432 : : { 0x20D2, 1},
433 : : { 0x20D3, 1},
434 : : { 0x20D4, 230},
435 : : { 0x20D5, 230},
436 : : { 0x20D6, 230},
437 : : { 0x20D7, 230},
438 : : { 0x20D8, 1},
439 : : { 0x20D9, 1},
440 : : { 0x20DA, 1},
441 : : { 0x20DB, 230},
442 : : { 0x20DC, 230},
443 : : { 0x20E1, 230},
444 : : { 0x20E5, 1},
445 : : { 0x20E6, 1},
446 : : { 0x20E7, 230},
447 : : { 0x20E8, 220},
448 : : { 0x20E9, 230},
449 : : { 0x20EA, 1},
450 : : { 0x20EB, 1},
451 : : { 0x20EC, 220},
452 : : { 0x20ED, 220},
453 : : { 0x20EE, 220},
454 : : { 0x20EF, 220},
455 : : { 0x20F0, 230},
456 : : { 0x2DE0, 230},
457 : : { 0x2DE1, 230},
458 : : { 0x2DE2, 230},
459 : : { 0x2DE3, 230},
460 : : { 0x2DE4, 230},
461 : : { 0x2DE5, 230},
462 : : { 0x2DE6, 230},
463 : : { 0x2DE7, 230},
464 : : { 0x2DE8, 230},
465 : : { 0x2DE9, 230},
466 : : { 0x2DEA, 230},
467 : : { 0x2DEB, 230},
468 : : { 0x2DEC, 230},
469 : : { 0x2DED, 230},
470 : : { 0x2DEE, 230},
471 : : { 0x2DEF, 230},
472 : : { 0x2DF0, 230},
473 : : { 0x2DF1, 230},
474 : : { 0x2DF2, 230},
475 : : { 0x2DF3, 230},
476 : : { 0x2DF4, 230},
477 : : { 0x2DF5, 230},
478 : : { 0x2DF6, 230},
479 : : { 0x2DF7, 230},
480 : : { 0x2DF8, 230},
481 : : { 0x2DF9, 230},
482 : : { 0x2DFA, 230},
483 : : { 0x2DFB, 230},
484 : : { 0x2DFC, 230},
485 : : { 0x2DFD, 230},
486 : : { 0x2DFE, 230},
487 : : { 0x2DFF, 230},
488 : : { 0x302A, 218},
489 : : { 0x302B, 228},
490 : : { 0x302C, 232},
491 : : { 0x302D, 222},
492 : : { 0x302E, 224},
493 : : { 0x302F, 224},
494 : : { 0x3099, 8},
495 : : { 0x309A, 8},
496 : : { 0xA66F, 230},
497 : : { 0xA67C, 230},
498 : : { 0xA67D, 230},
499 : : { 0xA806, 9},
500 : : { 0xA8C4, 9},
501 : : { 0xA92B, 220},
502 : : { 0xA92C, 220},
503 : : { 0xA92D, 220},
504 : : { 0xA953, 9},
505 : : { 0xFB1E, 26},
506 : : { 0xFE20, 230},
507 : : { 0xFE21, 230},
508 : : { 0xFE22, 230},
509 : : { 0xFE23, 230},
510 : : { 0xFE24, 230},
511 : : { 0xFE25, 230},
512 : : { 0xFE26, 230},
513 : : { 0x101FD, 220},
514 : : { 0x10A0D, 220},
515 : : { 0x10A0F, 230},
516 : : { 0x10A38, 230},
517 : : { 0x10A39, 1},
518 : : { 0x10A3A, 220},
519 : : { 0x10A3F, 9},
520 : : { 0x1D165, 216},
521 : : { 0x1D166, 216},
522 : : { 0x1D167, 1},
523 : : { 0x1D168, 1},
524 : : { 0x1D169, 1},
525 : : { 0x1D16D, 226},
526 : : { 0x1D16E, 216},
527 : : { 0x1D16F, 216},
528 : : { 0x1D170, 216},
529 : : { 0x1D171, 216},
530 : : { 0x1D172, 216},
531 : : { 0x1D17B, 220},
532 : : { 0x1D17C, 220},
533 : : { 0x1D17D, 220},
534 : : { 0x1D17E, 220},
535 : : { 0x1D17F, 220},
536 : : { 0x1D180, 220},
537 : : { 0x1D181, 220},
538 : : { 0x1D182, 220},
539 : : { 0x1D185, 230},
540 : : { 0x1D186, 230},
541 : : { 0x1D187, 230},
542 : : { 0x1D188, 230},
543 : : { 0x1D189, 230},
544 : : { 0x1D18A, 220},
545 : : { 0x1D18B, 220},
546 : : { 0x1D1AA, 230},
547 : : { 0x1D1AB, 230},
548 : : { 0x1D1AC, 230},
549 : : { 0x1D1AD, 230},
550 : : { 0x1D242, 230},
551 : : { 0x1D243, 230},
552 : : { 0x1D244, 230},
553 : : };
554 : :
555 : : static unicode_combclass_interval_t unicode_combclass_interval[UCD_COMBCLASS_INT_N] = {
556 : : { 0x000300, 0x00034E, 768 },
557 : : { 0x000350, 0x00036F, 769 },
558 : : { 0x000483, 0x000487, 1044 },
559 : : { 0x000591, 0x0005BD, 1309 },
560 : : { 0x0005BF, 0x0005BF, 1310 },
561 : : { 0x0005C1, 0x0005C2, 1311 },
562 : : { 0x0005C4, 0x0005C5, 1312 },
563 : : { 0x0005C7, 0x0005C7, 1313 },
564 : : { 0x000610, 0x00061A, 1385 },
565 : : { 0x00064B, 0x00065E, 1433 },
566 : : { 0x000670, 0x000670, 1450 },
567 : : { 0x0006D6, 0x0006DC, 1551 },
568 : : { 0x0006DF, 0x0006E4, 1553 },
569 : : { 0x0006E7, 0x0006E8, 1555 },
570 : : { 0x0006EA, 0x0006ED, 1556 },
571 : : { 0x000711, 0x000711, 1591 },
572 : : { 0x000730, 0x00074A, 1621 },
573 : : { 0x0007EB, 0x0007F3, 1781 },
574 : : { 0x00093C, 0x00093C, 2109 },
575 : : { 0x00094D, 0x00094D, 2125 },
576 : : { 0x000951, 0x000954, 2128 },
577 : : { 0x0009BC, 0x0009BC, 2231 },
578 : : { 0x0009CD, 0x0009CD, 2247 },
579 : : { 0x000A3C, 0x000A3C, 2357 },
580 : : { 0x000A4D, 0x000A4D, 2373 },
581 : : { 0x000ABC, 0x000ABC, 2483 },
582 : : { 0x000ACD, 0x000ACD, 2499 },
583 : : { 0x000B3C, 0x000B3C, 2609 },
584 : : { 0x000B4D, 0x000B4D, 2625 },
585 : : { 0x000BCD, 0x000BCD, 2752 },
586 : : { 0x000C4D, 0x000C4D, 2879 },
587 : : { 0x000C55, 0x000C56, 2886 },
588 : : { 0x000CBC, 0x000CBC, 2987 },
589 : : { 0x000CCD, 0x000CCD, 3003 },
590 : : { 0x000D4D, 0x000D4D, 3130 },
591 : : { 0x000DCA, 0x000DCA, 3254 },
592 : : { 0x000E38, 0x000E3A, 3363 },
593 : : { 0x000E48, 0x000E4B, 3376 },
594 : : { 0x000EB8, 0x000EB9, 3484 },
595 : : { 0x000EC8, 0x000ECB, 3498 },
596 : : { 0x000F18, 0x000F19, 3574 },
597 : : { 0x000F35, 0x000F35, 3601 },
598 : : { 0x000F37, 0x000F37, 3602 },
599 : : { 0x000F39, 0x000F39, 3603 },
600 : : { 0x000F71, 0x000F72, 3658 },
601 : : { 0x000F74, 0x000F74, 3659 },
602 : : { 0x000F7A, 0x000F7D, 3664 },
603 : : { 0x000F80, 0x000F80, 3666 },
604 : : { 0x000F82, 0x000F84, 3667 },
605 : : { 0x000F86, 0x000F87, 3668 },
606 : : { 0x000FC6, 0x000FC6, 3730 },
607 : : { 0x001037, 0x001037, 3842 },
608 : : { 0x001039, 0x00103A, 3843 },
609 : : { 0x00108D, 0x00108D, 3925 },
610 : : { 0x00135F, 0x00135F, 4646 },
611 : : { 0x001714, 0x001714, 5594 },
612 : : { 0x001734, 0x001734, 5625 },
613 : : { 0x0017D2, 0x0017D2, 5782 },
614 : : { 0x0017DD, 0x0017DD, 5792 },
615 : : { 0x0018A9, 0x0018A9, 5995 },
616 : : { 0x001939, 0x00193B, 6138 },
617 : : { 0x001A17, 0x001A18, 6357 },
618 : : { 0x001B34, 0x001B34, 6640 },
619 : : { 0x001B44, 0x001B44, 6655 },
620 : : { 0x001B6B, 0x001B73, 6693 },
621 : : { 0x001BAA, 0x001BAA, 6747 },
622 : : { 0x001C37, 0x001C37, 6887 },
623 : : { 0x001DC0, 0x001DE6, 7279 },
624 : : { 0x001DFE, 0x001DFF, 7302 },
625 : : { 0x0020D0, 0x0020DC, 8022 },
626 : : { 0x0020E1, 0x0020E1, 8026 },
627 : : { 0x0020E5, 0x0020F0, 8029 },
628 : : { 0x002DE0, 0x002DFF, 11340 },
629 : : { 0x00302A, 0x00302F, 11894 },
630 : : { 0x003099, 0x00309A, 11999 },
631 : : { 0x00A66F, 0x00A66F, 42163 },
632 : : { 0x00A67C, 0x00A67D, 42175 },
633 : : { 0x00A806, 0x00A806, 42567 },
634 : : { 0x00A8C4, 0x00A8C4, 42756 },
635 : : { 0x00A92B, 0x00A92D, 42858 },
636 : : { 0x00A953, 0x00A953, 42895 },
637 : : { 0x00FB1E, 0x00FB1E, 63833 },
638 : : { 0x00FE20, 0x00FE26, 64602 },
639 : : { 0x0101FD, 0x0101FD, 65584 },
640 : : { 0x010A0D, 0x010A0D, 67647 },
641 : : { 0x010A0F, 0x010A0F, 67648 },
642 : : { 0x010A38, 0x010A3A, 67688 },
643 : : { 0x010A3F, 0x010A3F, 67692 },
644 : : { 0x01D165, 0x01D169, 118673 },
645 : : { 0x01D16D, 0x01D172, 118676 },
646 : : { 0x01D17B, 0x01D182, 118684 },
647 : : { 0x01D185, 0x01D18B, 118686 },
648 : : { 0x01D1AA, 0x01D1AD, 118716 },
649 : : { 0x01D242, 0x01D244, 118864 },
650 : : };
651 : :
652 : : /***************** END OF SELF-GENERATED DATA *********************************/
653 : :
654 : : pdf_u8_t
655 : 16 : pdf_text_ucd_get_combining_class (const pdf_u32_t character)
656 : : {
657 : : pdf_bool_t found;
658 : : int index;
659 : 16 : long delta = 0;
660 : :
661 : : /* Look for input unicode point in intervals */
662 : 16 : index = 0;
663 : 16 : found = PDF_FALSE;
664 [ + + ][ + + ]: 32 : while ((!found) &&
665 : : (index < UCD_COMBCLASS_INT_N))
666 : : {
667 : : /* First, check if the input point is not within the interval, but between
668 : : * two given intervals */
669 [ + + ]: 16 : if (character < unicode_combclass_interval[index].interval_start)
670 : : {
671 : : /* Ok, no combining class information for this point. Force
672 : : * loop exit without having found the point */
673 : 2 : index = UCD_COMBCLASS_INT_N;
674 : : }
675 [ + - ]: 14 : else if (character <= unicode_combclass_interval[index].interval_stop)
676 : : {
677 : : /* Found!! Set deltaToIndex */
678 : 14 : found = PDF_TRUE;
679 : 14 : delta = unicode_combclass_interval[index].delta;
680 : : }
681 : : else
682 : : {
683 : 0 : index++;
684 : : }
685 : : }
686 : :
687 [ + + ]: 16 : return (found ?
688 : 14 : (unicode_combclass_info[character - delta].combining_class) :
689 : : 0);
690 : : }
691 : :
692 : : /* End of pdf-text-ucd-combclass.c */
|