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