"Fossies" - the Fresh Open Source Software Archive 
Member "SDL2_ttf-2.20.2/external/freetype/src/autofit/afranges.c" (25 May 2022, 34997 Bytes) of package /linux/misc/SDL2_ttf-2.20.2.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
For more information about "afranges.c" see the
Fossies "Dox" file reference documentation.
1 /****************************************************************************
2 *
3 * afranges.c
4 *
5 * Auto-fitter Unicode script ranges (body).
6 *
7 * Copyright (C) 2013-2022 by
8 * David Turner, Robert Wilhelm, and Werner Lemberg.
9 *
10 * This file is part of the FreeType project, and may only be used,
11 * modified, and distributed under the terms of the FreeType project
12 * license, LICENSE.TXT. By continuing to use, modify, or distribute
13 * this file you indicate that you have read the license and
14 * understand and accept it fully.
15 *
16 */
17
18
19 #include "afranges.h"
20
21 /*
22 * The algorithm for assigning properties and styles to the `glyph_styles'
23 * array is as follows (cf. the implementation in
24 * `af_face_globals_compute_style_coverage').
25 *
26 * Walk over all scripts (as listed in `afscript.h').
27 *
28 * For a given script, walk over all styles (as listed in `afstyles.h').
29 * The order of styles is important and should be as follows.
30 *
31 * - First come styles based on OpenType features (small caps, for
32 * example). Since features rely on glyph indices, thus completely
33 * bypassing character codes, no properties are assigned.
34 *
35 * - Next comes the default style, using the character ranges as defined
36 * below. This also assigns properties.
37 *
38 * Note that there also exist fallback scripts, mainly covering
39 * superscript and subscript glyphs of a script that are not present as
40 * OpenType features. Fallback scripts are defined below, also
41 * assigning properties; they are applied after the corresponding
42 * script.
43 *
44 */
45
46
47 /* XXX Check base character ranges again: */
48 /* Right now, they are quickly derived by visual inspection. */
49 /* I can imagine that fine-tuning is necessary. */
50
51 /* for the auto-hinter, a `non-base character' is something that should */
52 /* not be affected by blue zones, regardless of whether this is a */
53 /* spacing or no-spacing glyph */
54
55 /* the `af_xxxx_nonbase_uniranges' ranges must be strict subsets */
56 /* of the corresponding `af_xxxx_uniranges' ranges */
57
58
59 const AF_Script_UniRangeRec af_adlm_uniranges[] =
60 {
61 AF_UNIRANGE_REC( 0x1E900, 0x1E95F ), /* Adlam */
62 AF_UNIRANGE_REC( 0, 0 )
63 };
64
65 const AF_Script_UniRangeRec af_adlm_nonbase_uniranges[] =
66 {
67 AF_UNIRANGE_REC( 0x1D944, 0x1E94A ),
68 AF_UNIRANGE_REC( 0, 0 )
69 };
70
71
72 const AF_Script_UniRangeRec af_arab_uniranges[] =
73 {
74 AF_UNIRANGE_REC( 0x0600, 0x06FF ), /* Arabic */
75 AF_UNIRANGE_REC( 0x0750, 0x07FF ), /* Arabic Supplement */
76 AF_UNIRANGE_REC( 0x08A0, 0x08FF ), /* Arabic Extended-A */
77 AF_UNIRANGE_REC( 0xFB50, 0xFDFF ), /* Arabic Presentation Forms-A */
78 AF_UNIRANGE_REC( 0xFE70, 0xFEFF ), /* Arabic Presentation Forms-B */
79 AF_UNIRANGE_REC( 0x1EE00, 0x1EEFF ), /* Arabic Mathematical Alphabetic Symbols */
80 AF_UNIRANGE_REC( 0, 0 )
81 };
82
83 const AF_Script_UniRangeRec af_arab_nonbase_uniranges[] =
84 {
85 AF_UNIRANGE_REC( 0x0600, 0x0605 ),
86 AF_UNIRANGE_REC( 0x0610, 0x061A ),
87 AF_UNIRANGE_REC( 0x064B, 0x065F ),
88 AF_UNIRANGE_REC( 0x0670, 0x0670 ),
89 AF_UNIRANGE_REC( 0x06D6, 0x06DC ),
90 AF_UNIRANGE_REC( 0x06DF, 0x06E4 ),
91 AF_UNIRANGE_REC( 0x06E7, 0x06E8 ),
92 AF_UNIRANGE_REC( 0x06EA, 0x06ED ),
93 AF_UNIRANGE_REC( 0x08D4, 0x08E1 ),
94 AF_UNIRANGE_REC( 0x08D3, 0x08FF ),
95 AF_UNIRANGE_REC( 0xFBB2, 0xFBC1 ),
96 AF_UNIRANGE_REC( 0xFE70, 0xFE70 ),
97 AF_UNIRANGE_REC( 0xFE72, 0xFE72 ),
98 AF_UNIRANGE_REC( 0xFE74, 0xFE74 ),
99 AF_UNIRANGE_REC( 0xFE76, 0xFE76 ),
100 AF_UNIRANGE_REC( 0xFE78, 0xFE78 ),
101 AF_UNIRANGE_REC( 0xFE7A, 0xFE7A ),
102 AF_UNIRANGE_REC( 0xFE7C, 0xFE7C ),
103 AF_UNIRANGE_REC( 0xFE7E, 0xFE7E ),
104 AF_UNIRANGE_REC( 0, 0 )
105 };
106
107
108 const AF_Script_UniRangeRec af_armn_uniranges[] =
109 {
110 AF_UNIRANGE_REC( 0x0530, 0x058F ), /* Armenian */
111 AF_UNIRANGE_REC( 0xFB13, 0xFB17 ), /* Alphab. Present. Forms (Armenian) */
112 AF_UNIRANGE_REC( 0, 0 )
113 };
114
115 const AF_Script_UniRangeRec af_armn_nonbase_uniranges[] =
116 {
117 AF_UNIRANGE_REC( 0x0559, 0x055F ),
118 AF_UNIRANGE_REC( 0, 0 )
119 };
120
121
122 const AF_Script_UniRangeRec af_avst_uniranges[] =
123 {
124 AF_UNIRANGE_REC( 0x10B00, 0x10B3F ), /* Avestan */
125 AF_UNIRANGE_REC( 0, 0 )
126 };
127
128 const AF_Script_UniRangeRec af_avst_nonbase_uniranges[] =
129 {
130 AF_UNIRANGE_REC( 0x10B39, 0x10B3F ),
131 AF_UNIRANGE_REC( 0, 0 )
132 };
133
134
135 const AF_Script_UniRangeRec af_bamu_uniranges[] =
136 {
137 AF_UNIRANGE_REC( 0xA6A0, 0xA6FF ), /* Bamum */
138 #if 0
139 /* The characters in the Bamum supplement are pictograms, */
140 /* not (directly) related to the syllabic Bamum script */
141 AF_UNIRANGE_REC( 0x16800, 0x16A3F ), /* Bamum Supplement */
142 #endif
143 AF_UNIRANGE_REC( 0, 0 )
144 };
145
146 const AF_Script_UniRangeRec af_bamu_nonbase_uniranges[] =
147 {
148 AF_UNIRANGE_REC( 0xA6F0, 0xA6F1 ),
149 AF_UNIRANGE_REC( 0, 0 )
150 };
151
152
153 const AF_Script_UniRangeRec af_beng_uniranges[] =
154 {
155 AF_UNIRANGE_REC( 0x0980, 0x09FF ), /* Bengali */
156 AF_UNIRANGE_REC( 0, 0 )
157 };
158
159 const AF_Script_UniRangeRec af_beng_nonbase_uniranges[] =
160 {
161 AF_UNIRANGE_REC( 0x0981, 0x0981 ),
162 AF_UNIRANGE_REC( 0x09BC, 0x09BC ),
163 AF_UNIRANGE_REC( 0x09C1, 0x09C4 ),
164 AF_UNIRANGE_REC( 0x09CD, 0x09CD ),
165 AF_UNIRANGE_REC( 0x09E2, 0x09E3 ),
166 AF_UNIRANGE_REC( 0x09FE, 0x09FE ),
167 AF_UNIRANGE_REC( 0, 0 )
168 };
169
170
171 const AF_Script_UniRangeRec af_buhd_uniranges[] =
172 {
173 AF_UNIRANGE_REC( 0x1740, 0x175F ), /* Buhid */
174 AF_UNIRANGE_REC( 0, 0 )
175 };
176
177 const AF_Script_UniRangeRec af_buhd_nonbase_uniranges[] =
178 {
179 AF_UNIRANGE_REC( 0x1752, 0x1753 ),
180 AF_UNIRANGE_REC( 0, 0 )
181 };
182
183
184 const AF_Script_UniRangeRec af_cakm_uniranges[] =
185 {
186 AF_UNIRANGE_REC( 0x11100, 0x1114F ), /* Chakma */
187 AF_UNIRANGE_REC( 0, 0 )
188 };
189
190 const AF_Script_UniRangeRec af_cakm_nonbase_uniranges[] =
191 {
192 AF_UNIRANGE_REC( 0x11100, 0x11102 ),
193 AF_UNIRANGE_REC( 0x11127, 0x11134 ),
194 AF_UNIRANGE_REC( 0x11146, 0x11146 ),
195 AF_UNIRANGE_REC( 0, 0 )
196 };
197
198
199 const AF_Script_UniRangeRec af_cans_uniranges[] =
200 {
201 AF_UNIRANGE_REC( 0x1400, 0x167F ), /* Unified Canadian Aboriginal Syllabics */
202 AF_UNIRANGE_REC( 0x18B0, 0x18FF ), /* Unified Canadian Aboriginal Syllabics Extended */
203 AF_UNIRANGE_REC( 0, 0 )
204 };
205
206 const AF_Script_UniRangeRec af_cans_nonbase_uniranges[] =
207 {
208 AF_UNIRANGE_REC( 0, 0 )
209 };
210
211
212 const AF_Script_UniRangeRec af_cari_uniranges[] =
213 {
214 AF_UNIRANGE_REC( 0x102A0, 0x102DF ), /* Carian */
215 AF_UNIRANGE_REC( 0, 0 )
216 };
217
218 const AF_Script_UniRangeRec af_cari_nonbase_uniranges[] =
219 {
220 AF_UNIRANGE_REC( 0, 0 )
221 };
222
223
224 const AF_Script_UniRangeRec af_cher_uniranges[] =
225 {
226 AF_UNIRANGE_REC( 0x13A0, 0x13FF ), /* Cherokee */
227 AF_UNIRANGE_REC( 0xAB70, 0xABBF ), /* Cherokee Supplement */
228 AF_UNIRANGE_REC( 0, 0 )
229 };
230
231 const AF_Script_UniRangeRec af_cher_nonbase_uniranges[] =
232 {
233 AF_UNIRANGE_REC( 0, 0 )
234 };
235
236
237 const AF_Script_UniRangeRec af_copt_uniranges[] =
238 {
239 AF_UNIRANGE_REC( 0x2C80, 0x2CFF ), /* Coptic */
240 AF_UNIRANGE_REC( 0, 0 )
241 };
242
243 const AF_Script_UniRangeRec af_copt_nonbase_uniranges[] =
244 {
245 AF_UNIRANGE_REC( 0x2CEF, 0x2CF1 ),
246 AF_UNIRANGE_REC( 0, 0 )
247 };
248
249
250 const AF_Script_UniRangeRec af_cprt_uniranges[] =
251 {
252 AF_UNIRANGE_REC( 0x10800, 0x1083F ), /* Cypriot */
253 AF_UNIRANGE_REC( 0, 0 )
254 };
255
256 const AF_Script_UniRangeRec af_cprt_nonbase_uniranges[] =
257 {
258 AF_UNIRANGE_REC( 0, 0 )
259 };
260
261
262 const AF_Script_UniRangeRec af_cyrl_uniranges[] =
263 {
264 AF_UNIRANGE_REC( 0x0400, 0x04FF ), /* Cyrillic */
265 AF_UNIRANGE_REC( 0x0500, 0x052F ), /* Cyrillic Supplement */
266 AF_UNIRANGE_REC( 0x2DE0, 0x2DFF ), /* Cyrillic Extended-A */
267 AF_UNIRANGE_REC( 0xA640, 0xA69F ), /* Cyrillic Extended-B */
268 AF_UNIRANGE_REC( 0x1C80, 0x1C8F ), /* Cyrillic Extended-C */
269 AF_UNIRANGE_REC( 0, 0 )
270 };
271
272 const AF_Script_UniRangeRec af_cyrl_nonbase_uniranges[] =
273 {
274 AF_UNIRANGE_REC( 0x0483, 0x0489 ),
275 AF_UNIRANGE_REC( 0x2DE0, 0x2DFF ),
276 AF_UNIRANGE_REC( 0xA66F, 0xA67F ),
277 AF_UNIRANGE_REC( 0xA69E, 0xA69F ),
278 AF_UNIRANGE_REC( 0, 0 )
279 };
280
281
282 /* There are some characters in the Devanagari Unicode block that are */
283 /* generic to Indic scripts; we omit them so that their presence doesn't */
284 /* trigger Devanagari. */
285
286 const AF_Script_UniRangeRec af_deva_uniranges[] =
287 {
288 AF_UNIRANGE_REC( 0x0900, 0x093B ), /* Devanagari */
289 /* omitting U+093C nukta */
290 AF_UNIRANGE_REC( 0x093D, 0x0950 ), /* ... continued */
291 /* omitting U+0951 udatta, U+0952 anudatta */
292 AF_UNIRANGE_REC( 0x0953, 0x0963 ), /* ... continued */
293 /* omitting U+0964 danda, U+0965 double danda */
294 AF_UNIRANGE_REC( 0x0966, 0x097F ), /* ... continued */
295 AF_UNIRANGE_REC( 0x20B9, 0x20B9 ), /* (new) Rupee sign */
296 AF_UNIRANGE_REC( 0xA8E0, 0xA8FF ), /* Devanagari Extended */
297 AF_UNIRANGE_REC( 0, 0 )
298 };
299
300 const AF_Script_UniRangeRec af_deva_nonbase_uniranges[] =
301 {
302 AF_UNIRANGE_REC( 0x0900, 0x0902 ),
303 AF_UNIRANGE_REC( 0x093A, 0x093A ),
304 AF_UNIRANGE_REC( 0x0941, 0x0948 ),
305 AF_UNIRANGE_REC( 0x094D, 0x094D ),
306 AF_UNIRANGE_REC( 0x0953, 0x0957 ),
307 AF_UNIRANGE_REC( 0x0962, 0x0963 ),
308 AF_UNIRANGE_REC( 0xA8E0, 0xA8F1 ),
309 AF_UNIRANGE_REC( 0xA8FF, 0xA8FF ),
310 AF_UNIRANGE_REC( 0, 0 )
311 };
312
313
314 const AF_Script_UniRangeRec af_dsrt_uniranges[] =
315 {
316 AF_UNIRANGE_REC( 0x10400, 0x1044F ), /* Deseret */
317 AF_UNIRANGE_REC( 0, 0 )
318 };
319
320 const AF_Script_UniRangeRec af_dsrt_nonbase_uniranges[] =
321 {
322 AF_UNIRANGE_REC( 0, 0 )
323 };
324
325
326 const AF_Script_UniRangeRec af_ethi_uniranges[] =
327 {
328 AF_UNIRANGE_REC( 0x1200, 0x137F ), /* Ethiopic */
329 AF_UNIRANGE_REC( 0x1380, 0x139F ), /* Ethiopic Supplement */
330 AF_UNIRANGE_REC( 0x2D80, 0x2DDF ), /* Ethiopic Extended */
331 AF_UNIRANGE_REC( 0xAB00, 0xAB2F ), /* Ethiopic Extended-A */
332 AF_UNIRANGE_REC( 0, 0 )
333 };
334
335 const AF_Script_UniRangeRec af_ethi_nonbase_uniranges[] =
336 {
337 AF_UNIRANGE_REC( 0x135D, 0x135F ),
338 AF_UNIRANGE_REC( 0, 0 )
339 };
340
341
342 const AF_Script_UniRangeRec af_geor_uniranges[] =
343 {
344 AF_UNIRANGE_REC( 0x10D0, 0x10FF ), /* Georgian (Mkhedruli) */
345 AF_UNIRANGE_REC( 0x1C90, 0x1CBF ), /* Georgian Extended (Mtavruli) */
346 AF_UNIRANGE_REC( 0, 0 )
347 };
348
349 const AF_Script_UniRangeRec af_geor_nonbase_uniranges[] =
350 {
351 AF_UNIRANGE_REC( 0, 0 )
352 };
353
354
355 const AF_Script_UniRangeRec af_geok_uniranges[] =
356 {
357 /* Khutsuri */
358 AF_UNIRANGE_REC( 0x10A0, 0x10CD ), /* Georgian (Asomtavruli) */
359 AF_UNIRANGE_REC( 0x2D00, 0x2D2D ), /* Georgian Supplement (Nuskhuri) */
360 AF_UNIRANGE_REC( 0, 0 )
361 };
362
363 const AF_Script_UniRangeRec af_geok_nonbase_uniranges[] =
364 {
365 AF_UNIRANGE_REC( 0, 0 )
366 };
367
368
369 const AF_Script_UniRangeRec af_glag_uniranges[] =
370 {
371 AF_UNIRANGE_REC( 0x2C00, 0x2C5F ), /* Glagolitic */
372 AF_UNIRANGE_REC( 0x1E000, 0x1E02F ), /* Glagolitic Supplement */
373 AF_UNIRANGE_REC( 0, 0 )
374 };
375
376 const AF_Script_UniRangeRec af_glag_nonbase_uniranges[] =
377 {
378 AF_UNIRANGE_REC( 0x1E000, 0x1E02F ),
379 AF_UNIRANGE_REC( 0, 0 )
380 };
381
382
383 const AF_Script_UniRangeRec af_goth_uniranges[] =
384 {
385 AF_UNIRANGE_REC( 0x10330, 0x1034F ), /* Gothic */
386 AF_UNIRANGE_REC( 0, 0 )
387 };
388
389 const AF_Script_UniRangeRec af_goth_nonbase_uniranges[] =
390 {
391 AF_UNIRANGE_REC( 0, 0 )
392 };
393
394
395 const AF_Script_UniRangeRec af_grek_uniranges[] =
396 {
397 AF_UNIRANGE_REC( 0x0370, 0x03FF ), /* Greek and Coptic */
398 AF_UNIRANGE_REC( 0x1F00, 0x1FFF ), /* Greek Extended */
399 AF_UNIRANGE_REC( 0, 0 )
400 };
401
402 const AF_Script_UniRangeRec af_grek_nonbase_uniranges[] =
403 {
404 AF_UNIRANGE_REC( 0x037A, 0x037A ),
405 AF_UNIRANGE_REC( 0x0384, 0x0385 ),
406 AF_UNIRANGE_REC( 0x1FBD, 0x1FC1 ),
407 AF_UNIRANGE_REC( 0x1FCD, 0x1FCF ),
408 AF_UNIRANGE_REC( 0x1FDD, 0x1FDF ),
409 AF_UNIRANGE_REC( 0x1FED, 0x1FEF ),
410 AF_UNIRANGE_REC( 0x1FFD, 0x1FFE ),
411 AF_UNIRANGE_REC( 0, 0 )
412 };
413
414
415 const AF_Script_UniRangeRec af_gujr_uniranges[] =
416 {
417 AF_UNIRANGE_REC( 0x0A80, 0x0AFF ), /* Gujarati */
418 AF_UNIRANGE_REC( 0, 0 )
419 };
420
421 const AF_Script_UniRangeRec af_gujr_nonbase_uniranges[] =
422 {
423 AF_UNIRANGE_REC( 0x0A81, 0x0A82 ),
424 AF_UNIRANGE_REC( 0x0ABC, 0x0ABC ),
425 AF_UNIRANGE_REC( 0x0AC1, 0x0AC8 ),
426 AF_UNIRANGE_REC( 0x0ACD, 0x0ACD ),
427 AF_UNIRANGE_REC( 0x0AE2, 0x0AE3 ),
428 AF_UNIRANGE_REC( 0x0AFA, 0x0AFF ),
429 AF_UNIRANGE_REC( 0, 0 )
430 };
431
432
433 const AF_Script_UniRangeRec af_guru_uniranges[] =
434 {
435 AF_UNIRANGE_REC( 0x0A00, 0x0A7F ), /* Gurmukhi */
436 AF_UNIRANGE_REC( 0, 0 )
437 };
438
439 const AF_Script_UniRangeRec af_guru_nonbase_uniranges[] =
440 {
441 AF_UNIRANGE_REC( 0x0A01, 0x0A02 ),
442 AF_UNIRANGE_REC( 0x0A3C, 0x0A3C ),
443 AF_UNIRANGE_REC( 0x0A41, 0x0A51 ),
444 AF_UNIRANGE_REC( 0x0A70, 0x0A71 ),
445 AF_UNIRANGE_REC( 0x0A75, 0x0A75 ),
446 AF_UNIRANGE_REC( 0, 0 )
447 };
448
449
450 const AF_Script_UniRangeRec af_hebr_uniranges[] =
451 {
452 AF_UNIRANGE_REC( 0x0590, 0x05FF ), /* Hebrew */
453 AF_UNIRANGE_REC( 0xFB1D, 0xFB4F ), /* Alphab. Present. Forms (Hebrew) */
454 AF_UNIRANGE_REC( 0, 0 )
455 };
456
457 const AF_Script_UniRangeRec af_hebr_nonbase_uniranges[] =
458 {
459 AF_UNIRANGE_REC( 0x0591, 0x05BF ),
460 AF_UNIRANGE_REC( 0x05C1, 0x05C2 ),
461 AF_UNIRANGE_REC( 0x05C4, 0x05C5 ),
462 AF_UNIRANGE_REC( 0x05C7, 0x05C7 ),
463 AF_UNIRANGE_REC( 0xFB1E, 0xFB1E ),
464 AF_UNIRANGE_REC( 0, 0 )
465 };
466
467
468 const AF_Script_UniRangeRec af_kali_uniranges[] =
469 {
470 AF_UNIRANGE_REC( 0xA900, 0xA92F ), /* Kayah Li */
471 AF_UNIRANGE_REC( 0, 0 )
472 };
473
474 const AF_Script_UniRangeRec af_kali_nonbase_uniranges[] =
475 {
476 AF_UNIRANGE_REC( 0xA926, 0xA92D ),
477 AF_UNIRANGE_REC( 0, 0 )
478 };
479
480
481 const AF_Script_UniRangeRec af_knda_uniranges[] =
482 {
483 AF_UNIRANGE_REC( 0x0C80, 0x0CFF ), /* Kannada */
484 AF_UNIRANGE_REC( 0, 0 )
485 };
486
487 const AF_Script_UniRangeRec af_knda_nonbase_uniranges[] =
488 {
489 AF_UNIRANGE_REC( 0x0C81, 0x0C81 ),
490 AF_UNIRANGE_REC( 0x0CBC, 0x0CBC ),
491 AF_UNIRANGE_REC( 0x0CBF, 0x0CBF ),
492 AF_UNIRANGE_REC( 0x0CC6, 0x0CC6 ),
493 AF_UNIRANGE_REC( 0x0CCC, 0x0CCD ),
494 AF_UNIRANGE_REC( 0x0CE2, 0x0CE3 ),
495 AF_UNIRANGE_REC( 0, 0 )
496 };
497
498
499 const AF_Script_UniRangeRec af_khmr_uniranges[] =
500 {
501 AF_UNIRANGE_REC( 0x1780, 0x17FF ), /* Khmer */
502 AF_UNIRANGE_REC( 0, 0 )
503 };
504
505 const AF_Script_UniRangeRec af_khmr_nonbase_uniranges[] =
506 {
507 AF_UNIRANGE_REC( 0x17B7, 0x17BD ),
508 AF_UNIRANGE_REC( 0x17C6, 0x17C6 ),
509 AF_UNIRANGE_REC( 0x17C9, 0x17D3 ),
510 AF_UNIRANGE_REC( 0x17DD, 0x17DD ),
511 AF_UNIRANGE_REC( 0, 0 )
512 };
513
514
515 const AF_Script_UniRangeRec af_khms_uniranges[] =
516 {
517 AF_UNIRANGE_REC( 0x19E0, 0x19FF ), /* Khmer Symbols */
518 AF_UNIRANGE_REC( 0, 0 )
519 };
520
521 const AF_Script_UniRangeRec af_khms_nonbase_uniranges[] =
522 {
523 AF_UNIRANGE_REC( 0, 0 )
524 };
525
526
527 const AF_Script_UniRangeRec af_lao_uniranges[] =
528 {
529 AF_UNIRANGE_REC( 0x0E80, 0x0EFF ), /* Lao */
530 AF_UNIRANGE_REC( 0, 0 )
531 };
532
533 const AF_Script_UniRangeRec af_lao_nonbase_uniranges[] =
534 {
535 AF_UNIRANGE_REC( 0x0EB1, 0x0EB1 ),
536 AF_UNIRANGE_REC( 0x0EB4, 0x0EBC ),
537 AF_UNIRANGE_REC( 0x0EC8, 0x0ECD ),
538 AF_UNIRANGE_REC( 0, 0 )
539 };
540
541
542 const AF_Script_UniRangeRec af_latn_uniranges[] =
543 {
544 AF_UNIRANGE_REC( 0x0020, 0x007F ), /* Basic Latin (no control chars) */
545 AF_UNIRANGE_REC( 0x00A0, 0x00A9 ), /* Latin-1 Supplement (no control chars) */
546 AF_UNIRANGE_REC( 0x00AB, 0x00B1 ), /* ... continued */
547 AF_UNIRANGE_REC( 0x00B4, 0x00B8 ), /* ... continued */
548 AF_UNIRANGE_REC( 0x00BB, 0x00FF ), /* ... continued */
549 AF_UNIRANGE_REC( 0x0100, 0x017F ), /* Latin Extended-A */
550 AF_UNIRANGE_REC( 0x0180, 0x024F ), /* Latin Extended-B */
551 AF_UNIRANGE_REC( 0x0250, 0x02AF ), /* IPA Extensions */
552 AF_UNIRANGE_REC( 0x02B9, 0x02DF ), /* Spacing Modifier Letters */
553 AF_UNIRANGE_REC( 0x02E5, 0x02FF ), /* ... continued */
554 AF_UNIRANGE_REC( 0x0300, 0x036F ), /* Combining Diacritical Marks */
555 AF_UNIRANGE_REC( 0x1AB0, 0x1ABE ), /* Combining Diacritical Marks Extended */
556 AF_UNIRANGE_REC( 0x1D00, 0x1D2B ), /* Phonetic Extensions */
557 AF_UNIRANGE_REC( 0x1D6B, 0x1D77 ), /* ... continued */
558 AF_UNIRANGE_REC( 0x1D79, 0x1D7F ), /* ... continued */
559 AF_UNIRANGE_REC( 0x1D80, 0x1D9A ), /* Phonetic Extensions Supplement */
560 AF_UNIRANGE_REC( 0x1DC0, 0x1DFF ), /* Combining Diacritical Marks Supplement */
561 AF_UNIRANGE_REC( 0x1E00, 0x1EFF ), /* Latin Extended Additional */
562 AF_UNIRANGE_REC( 0x2000, 0x206F ), /* General Punctuation */
563 AF_UNIRANGE_REC( 0x20A0, 0x20B8 ), /* Currency Symbols ... */
564 AF_UNIRANGE_REC( 0x20BA, 0x20CF ), /* ... except new Rupee sign */
565 AF_UNIRANGE_REC( 0x2150, 0x218F ), /* Number Forms */
566 AF_UNIRANGE_REC( 0x2C60, 0x2C7B ), /* Latin Extended-C */
567 AF_UNIRANGE_REC( 0x2C7E, 0x2C7F ), /* ... continued */
568 AF_UNIRANGE_REC( 0x2E00, 0x2E7F ), /* Supplemental Punctuation */
569 AF_UNIRANGE_REC( 0xA720, 0xA76F ), /* Latin Extended-D */
570 AF_UNIRANGE_REC( 0xA771, 0xA7F7 ), /* ... continued */
571 AF_UNIRANGE_REC( 0xA7FA, 0xA7FF ), /* ... continued */
572 AF_UNIRANGE_REC( 0xAB30, 0xAB5B ), /* Latin Extended-E */
573 AF_UNIRANGE_REC( 0xAB60, 0xAB6F ), /* ... continued */
574 AF_UNIRANGE_REC( 0xFB00, 0xFB06 ), /* Alphab. Present. Forms (Latin Ligs) */
575 AF_UNIRANGE_REC( 0x1D400, 0x1D7FF ), /* Mathematical Alphanumeric Symbols */
576 AF_UNIRANGE_REC( 0, 0 )
577 };
578
579 const AF_Script_UniRangeRec af_latn_nonbase_uniranges[] =
580 {
581 AF_UNIRANGE_REC( 0x005E, 0x0060 ),
582 AF_UNIRANGE_REC( 0x007E, 0x007E ),
583 AF_UNIRANGE_REC( 0x00A8, 0x00A9 ),
584 AF_UNIRANGE_REC( 0x00AE, 0x00B0 ),
585 AF_UNIRANGE_REC( 0x00B4, 0x00B4 ),
586 AF_UNIRANGE_REC( 0x00B8, 0x00B8 ),
587 AF_UNIRANGE_REC( 0x00BC, 0x00BE ),
588 AF_UNIRANGE_REC( 0x02B9, 0x02DF ),
589 AF_UNIRANGE_REC( 0x02E5, 0x02FF ),
590 AF_UNIRANGE_REC( 0x0300, 0x036F ),
591 AF_UNIRANGE_REC( 0x1AB0, 0x1ABE ),
592 AF_UNIRANGE_REC( 0x1DC0, 0x1DFF ),
593 AF_UNIRANGE_REC( 0x2017, 0x2017 ),
594 AF_UNIRANGE_REC( 0x203E, 0x203E ),
595 AF_UNIRANGE_REC( 0xA788, 0xA788 ),
596 AF_UNIRANGE_REC( 0xA7F8, 0xA7FA ),
597 AF_UNIRANGE_REC( 0, 0 )
598 };
599
600
601 const AF_Script_UniRangeRec af_latb_uniranges[] =
602 {
603 AF_UNIRANGE_REC( 0x1D62, 0x1D6A ), /* some small subscript letters */
604 AF_UNIRANGE_REC( 0x2080, 0x209C ), /* subscript digits and letters */
605 AF_UNIRANGE_REC( 0x2C7C, 0x2C7C ), /* latin subscript small letter j */
606 AF_UNIRANGE_REC( 0, 0 )
607 };
608
609 const AF_Script_UniRangeRec af_latb_nonbase_uniranges[] =
610 {
611 AF_UNIRANGE_REC( 0, 0 )
612 };
613
614
615 const AF_Script_UniRangeRec af_latp_uniranges[] =
616 {
617 AF_UNIRANGE_REC( 0x00AA, 0x00AA ), /* feminine ordinal indicator */
618 AF_UNIRANGE_REC( 0x00B2, 0x00B3 ), /* superscript two and three */
619 AF_UNIRANGE_REC( 0x00B9, 0x00BA ), /* superscript one, masc. ord. indic. */
620 AF_UNIRANGE_REC( 0x02B0, 0x02B8 ), /* some latin superscript mod. letters */
621 AF_UNIRANGE_REC( 0x02E0, 0x02E4 ), /* some IPA modifier letters */
622 AF_UNIRANGE_REC( 0x1D2C, 0x1D61 ), /* latin superscript modifier letters */
623 AF_UNIRANGE_REC( 0x1D78, 0x1D78 ), /* modifier letter cyrillic en */
624 AF_UNIRANGE_REC( 0x1D9B, 0x1DBF ), /* more modifier letters */
625 AF_UNIRANGE_REC( 0x2070, 0x207F ), /* superscript digits and letters */
626 AF_UNIRANGE_REC( 0x2C7D, 0x2C7D ), /* modifier letter capital v */
627 AF_UNIRANGE_REC( 0xA770, 0xA770 ), /* modifier letter us */
628 AF_UNIRANGE_REC( 0xA7F8, 0xA7F9 ), /* more modifier letters */
629 AF_UNIRANGE_REC( 0xAB5C, 0xAB5F ), /* more modifier letters */
630 AF_UNIRANGE_REC( 0, 0 )
631 };
632
633 const AF_Script_UniRangeRec af_latp_nonbase_uniranges[] =
634 {
635 AF_UNIRANGE_REC( 0, 0 )
636 };
637
638
639 const AF_Script_UniRangeRec af_lisu_uniranges[] =
640 {
641 AF_UNIRANGE_REC( 0xA4D0, 0xA4FF ), /* Lisu */
642 AF_UNIRANGE_REC( 0, 0 )
643 };
644
645 const AF_Script_UniRangeRec af_lisu_nonbase_uniranges[] =
646 {
647 AF_UNIRANGE_REC( 0, 0 )
648 };
649
650
651 const AF_Script_UniRangeRec af_mlym_uniranges[] =
652 {
653 AF_UNIRANGE_REC( 0x0D00, 0x0D7F ), /* Malayalam */
654 AF_UNIRANGE_REC( 0, 0 )
655 };
656
657 const AF_Script_UniRangeRec af_mlym_nonbase_uniranges[] =
658 {
659 AF_UNIRANGE_REC( 0x0D00, 0x0D01 ),
660 AF_UNIRANGE_REC( 0x0D3B, 0x0D3C ),
661 AF_UNIRANGE_REC( 0x0D4D, 0x0D4E ),
662 AF_UNIRANGE_REC( 0x0D62, 0x0D63 ),
663 AF_UNIRANGE_REC( 0, 0 )
664 };
665
666
667 const AF_Script_UniRangeRec af_medf_uniranges[] =
668 {
669 AF_UNIRANGE_REC( 0x16E40, 0x16E9F ), /* Medefaidrin */
670 AF_UNIRANGE_REC( 0, 0 )
671 };
672
673 const AF_Script_UniRangeRec af_medf_nonbase_uniranges[] =
674 {
675 AF_UNIRANGE_REC( 0, 0 )
676 };
677
678
679 const AF_Script_UniRangeRec af_mong_uniranges[] =
680 {
681 AF_UNIRANGE_REC( 0x1800, 0x18AF ), /* Mongolian */
682 AF_UNIRANGE_REC( 0x11660, 0x1167F ), /* Mongolian Supplement */
683 AF_UNIRANGE_REC( 0, 0 )
684 };
685
686 const AF_Script_UniRangeRec af_mong_nonbase_uniranges[] =
687 {
688 AF_UNIRANGE_REC( 0x1885, 0x1886 ),
689 AF_UNIRANGE_REC( 0x18A9, 0x18A9 ),
690 AF_UNIRANGE_REC( 0, 0 )
691 };
692
693
694 const AF_Script_UniRangeRec af_mymr_uniranges[] =
695 {
696 AF_UNIRANGE_REC( 0x1000, 0x109F ), /* Myanmar */
697 AF_UNIRANGE_REC( 0xA9E0, 0xA9FF ), /* Myanmar Extended-B */
698 AF_UNIRANGE_REC( 0xAA60, 0xAA7F ), /* Myanmar Extended-A */
699 AF_UNIRANGE_REC( 0, 0 )
700 };
701
702 const AF_Script_UniRangeRec af_mymr_nonbase_uniranges[] =
703 {
704 AF_UNIRANGE_REC( 0x102D, 0x1030 ),
705 AF_UNIRANGE_REC( 0x1032, 0x1037 ),
706 AF_UNIRANGE_REC( 0x103A, 0x103A ),
707 AF_UNIRANGE_REC( 0x103D, 0x103E ),
708 AF_UNIRANGE_REC( 0x1058, 0x1059 ),
709 AF_UNIRANGE_REC( 0x105E, 0x1060 ),
710 AF_UNIRANGE_REC( 0x1071, 0x1074 ),
711 AF_UNIRANGE_REC( 0x1082, 0x1082 ),
712 AF_UNIRANGE_REC( 0x1085, 0x1086 ),
713 AF_UNIRANGE_REC( 0x108D, 0x108D ),
714 AF_UNIRANGE_REC( 0xA9E5, 0xA9E5 ),
715 AF_UNIRANGE_REC( 0xAA7C, 0xAA7C ),
716 AF_UNIRANGE_REC( 0, 0 )
717 };
718
719
720 const AF_Script_UniRangeRec af_nkoo_uniranges[] =
721 {
722 AF_UNIRANGE_REC( 0x07C0, 0x07FF ), /* N'Ko */
723 AF_UNIRANGE_REC( 0, 0 )
724 };
725
726 const AF_Script_UniRangeRec af_nkoo_nonbase_uniranges[] =
727 {
728 AF_UNIRANGE_REC( 0x07EB, 0x07F5 ),
729 AF_UNIRANGE_REC( 0x07FD, 0x07FD ),
730 AF_UNIRANGE_REC( 0, 0 )
731 };
732
733
734 const AF_Script_UniRangeRec af_none_uniranges[] =
735 {
736 AF_UNIRANGE_REC( 0, 0 )
737 };
738
739 const AF_Script_UniRangeRec af_none_nonbase_uniranges[] =
740 {
741 AF_UNIRANGE_REC( 0, 0 )
742 };
743
744
745 const AF_Script_UniRangeRec af_olck_uniranges[] =
746 {
747 AF_UNIRANGE_REC( 0x1C50, 0x1C7F ), /* Ol Chiki */
748 AF_UNIRANGE_REC( 0, 0 )
749 };
750
751 const AF_Script_UniRangeRec af_olck_nonbase_uniranges[] =
752 {
753 AF_UNIRANGE_REC( 0, 0 )
754 };
755
756
757 const AF_Script_UniRangeRec af_orkh_uniranges[] =
758 {
759 AF_UNIRANGE_REC( 0x10C00, 0x10C4F ), /* Old Turkic */
760 AF_UNIRANGE_REC( 0, 0 )
761 };
762
763 const AF_Script_UniRangeRec af_orkh_nonbase_uniranges[] =
764 {
765 AF_UNIRANGE_REC( 0, 0 )
766 };
767
768
769 const AF_Script_UniRangeRec af_osge_uniranges[] =
770 {
771 AF_UNIRANGE_REC( 0x104B0, 0x104FF ), /* Osage */
772 AF_UNIRANGE_REC( 0, 0 )
773 };
774
775 const AF_Script_UniRangeRec af_osge_nonbase_uniranges[] =
776 {
777 AF_UNIRANGE_REC( 0, 0 )
778 };
779
780
781 const AF_Script_UniRangeRec af_osma_uniranges[] =
782 {
783 AF_UNIRANGE_REC( 0x10480, 0x104AF ), /* Osmanya */
784 AF_UNIRANGE_REC( 0, 0 )
785 };
786
787 const AF_Script_UniRangeRec af_osma_nonbase_uniranges[] =
788 {
789 AF_UNIRANGE_REC( 0, 0 )
790 };
791
792
793 const AF_Script_UniRangeRec af_rohg_uniranges[] =
794 {
795 AF_UNIRANGE_REC( 0x10D00, 0x10D3F ), /* Hanifi Rohingya */
796 AF_UNIRANGE_REC( 0, 0 )
797 };
798
799 const AF_Script_UniRangeRec af_rohg_nonbase_uniranges[] =
800 {
801 AF_UNIRANGE_REC( 0, 0 )
802 };
803
804
805 const AF_Script_UniRangeRec af_saur_uniranges[] =
806 {
807 AF_UNIRANGE_REC( 0xA880, 0xA8DF ), /* Saurashtra */
808 AF_UNIRANGE_REC( 0, 0 )
809 };
810
811 const AF_Script_UniRangeRec af_saur_nonbase_uniranges[] =
812 {
813 AF_UNIRANGE_REC( 0xA880, 0xA881 ),
814 AF_UNIRANGE_REC( 0xA8B4, 0xA8C5 ),
815 AF_UNIRANGE_REC( 0, 0 )
816 };
817
818
819 const AF_Script_UniRangeRec af_shaw_uniranges[] =
820 {
821 AF_UNIRANGE_REC( 0x10450, 0x1047F ), /* Shavian */
822 AF_UNIRANGE_REC( 0, 0 )
823 };
824
825 const AF_Script_UniRangeRec af_shaw_nonbase_uniranges[] =
826 {
827 AF_UNIRANGE_REC( 0, 0 )
828 };
829
830
831 const AF_Script_UniRangeRec af_sinh_uniranges[] =
832 {
833 AF_UNIRANGE_REC( 0x0D80, 0x0DFF ), /* Sinhala */
834 AF_UNIRANGE_REC( 0, 0 )
835 };
836
837 const AF_Script_UniRangeRec af_sinh_nonbase_uniranges[] =
838 {
839 AF_UNIRANGE_REC( 0x0DCA, 0x0DCA ),
840 AF_UNIRANGE_REC( 0x0DD2, 0x0DD6 ),
841 AF_UNIRANGE_REC( 0, 0 )
842 };
843
844
845 const AF_Script_UniRangeRec af_sund_uniranges[] =
846 {
847 AF_UNIRANGE_REC( 0x1B80, 0x1BBF ), /* Sundanese */
848 AF_UNIRANGE_REC( 0x1CC0, 0x1CCF ), /* Sundanese Supplement */
849 AF_UNIRANGE_REC( 0, 0 )
850 };
851
852 const AF_Script_UniRangeRec af_sund_nonbase_uniranges[] =
853 {
854 AF_UNIRANGE_REC( 0x1B80, 0x1B82 ),
855 AF_UNIRANGE_REC( 0x1BA1, 0x1BAD ),
856 AF_UNIRANGE_REC( 0, 0 )
857 };
858
859
860 const AF_Script_UniRangeRec af_taml_uniranges[] =
861 {
862 AF_UNIRANGE_REC( 0x0B80, 0x0BFF ), /* Tamil */
863 AF_UNIRANGE_REC( 0, 0 )
864 };
865
866 const AF_Script_UniRangeRec af_taml_nonbase_uniranges[] =
867 {
868 AF_UNIRANGE_REC( 0x0B82, 0x0B82 ),
869 AF_UNIRANGE_REC( 0x0BC0, 0x0BC2 ),
870 AF_UNIRANGE_REC( 0x0BCD, 0x0BCD ),
871 AF_UNIRANGE_REC( 0, 0 )
872 };
873
874
875 const AF_Script_UniRangeRec af_tavt_uniranges[] =
876 {
877 AF_UNIRANGE_REC( 0xAA80, 0xAADF ), /* Tai Viet */
878 AF_UNIRANGE_REC( 0, 0 )
879 };
880
881 const AF_Script_UniRangeRec af_tavt_nonbase_uniranges[] =
882 {
883 AF_UNIRANGE_REC( 0xAAB0, 0xAAB0 ),
884 AF_UNIRANGE_REC( 0xAAB2, 0xAAB4 ),
885 AF_UNIRANGE_REC( 0xAAB7, 0xAAB8 ),
886 AF_UNIRANGE_REC( 0xAABE, 0xAABF ),
887 AF_UNIRANGE_REC( 0xAAC1, 0xAAC1 ),
888 AF_UNIRANGE_REC( 0, 0 )
889 };
890
891
892 const AF_Script_UniRangeRec af_telu_uniranges[] =
893 {
894 AF_UNIRANGE_REC( 0x0C00, 0x0C7F ), /* Telugu */
895 AF_UNIRANGE_REC( 0, 0 )
896 };
897
898 const AF_Script_UniRangeRec af_telu_nonbase_uniranges[] =
899 {
900 AF_UNIRANGE_REC( 0x0C00, 0x0C00 ),
901 AF_UNIRANGE_REC( 0x0C04, 0x0C04 ),
902 AF_UNIRANGE_REC( 0x0C3E, 0x0C40 ),
903 AF_UNIRANGE_REC( 0x0C46, 0x0C56 ),
904 AF_UNIRANGE_REC( 0x0C62, 0x0C63 ),
905 AF_UNIRANGE_REC( 0, 0 )
906 };
907
908
909 const AF_Script_UniRangeRec af_thai_uniranges[] =
910 {
911 AF_UNIRANGE_REC( 0x0E00, 0x0E7F ), /* Thai */
912 AF_UNIRANGE_REC( 0, 0 )
913 };
914
915 const AF_Script_UniRangeRec af_thai_nonbase_uniranges[] =
916 {
917 AF_UNIRANGE_REC( 0x0E31, 0x0E31 ),
918 AF_UNIRANGE_REC( 0x0E34, 0x0E3A ),
919 AF_UNIRANGE_REC( 0x0E47, 0x0E4E ),
920 AF_UNIRANGE_REC( 0, 0 )
921 };
922
923
924 const AF_Script_UniRangeRec af_tfng_uniranges[] =
925 {
926 AF_UNIRANGE_REC( 0x2D30, 0x2D7F ), /* Tifinagh */
927 AF_UNIRANGE_REC( 0, 0 )
928 };
929
930 const AF_Script_UniRangeRec af_tfng_nonbase_uniranges[] =
931 {
932 AF_UNIRANGE_REC( 0, 0 )
933 };
934
935
936 const AF_Script_UniRangeRec af_vaii_uniranges[] =
937 {
938 AF_UNIRANGE_REC( 0xA500, 0xA63F ), /* Vai */
939 AF_UNIRANGE_REC( 0, 0 )
940 };
941
942 const AF_Script_UniRangeRec af_vaii_nonbase_uniranges[] =
943 {
944 AF_UNIRANGE_REC( 0, 0 )
945 };
946
947
948 #ifdef AF_CONFIG_OPTION_INDIC
949
950 const AF_Script_UniRangeRec af_limb_uniranges[] =
951 {
952 AF_UNIRANGE_REC( 0x1900, 0x194F ), /* Limbu */
953 AF_UNIRANGE_REC( 0, 0 )
954 };
955
956 const AF_Script_UniRangeRec af_limb_nonbase_uniranges[] =
957 {
958 AF_UNIRANGE_REC( 0x1920, 0x1922 ),
959 AF_UNIRANGE_REC( 0x1927, 0x1934 ),
960 AF_UNIRANGE_REC( 0x1937, 0x193B ),
961 AF_UNIRANGE_REC( 0, 0 )
962 };
963
964
965 const AF_Script_UniRangeRec af_orya_uniranges[] =
966 {
967 AF_UNIRANGE_REC( 0x0B00, 0x0B7F ), /* Oriya */
968 AF_UNIRANGE_REC( 0, 0 )
969 };
970
971 const AF_Script_UniRangeRec af_orya_nonbase_uniranges[] =
972 {
973 AF_UNIRANGE_REC( 0x0B01, 0x0B02 ),
974 AF_UNIRANGE_REC( 0x0B3C, 0x0B3C ),
975 AF_UNIRANGE_REC( 0x0B3F, 0x0B3F ),
976 AF_UNIRANGE_REC( 0x0B41, 0x0B44 ),
977 AF_UNIRANGE_REC( 0x0B4D, 0x0B56 ),
978 AF_UNIRANGE_REC( 0x0B62, 0x0B63 ),
979 AF_UNIRANGE_REC( 0, 0 )
980 };
981
982
983 const AF_Script_UniRangeRec af_sylo_uniranges[] =
984 {
985 AF_UNIRANGE_REC( 0xA800, 0xA82F ), /* Syloti Nagri */
986 AF_UNIRANGE_REC( 0, 0 )
987 };
988
989 const AF_Script_UniRangeRec af_sylo_nonbase_uniranges[] =
990 {
991 AF_UNIRANGE_REC( 0xA802, 0xA802 ),
992 AF_UNIRANGE_REC( 0xA806, 0xA806 ),
993 AF_UNIRANGE_REC( 0xA80B, 0xA80B ),
994 AF_UNIRANGE_REC( 0xA825, 0xA826 ),
995 AF_UNIRANGE_REC( 0, 0 )
996 };
997
998
999 const AF_Script_UniRangeRec af_tibt_uniranges[] =
1000 {
1001 AF_UNIRANGE_REC( 0x0F00, 0x0FFF ), /* Tibetan */
1002 AF_UNIRANGE_REC( 0, 0 )
1003 };
1004
1005 const AF_Script_UniRangeRec af_tibt_nonbase_uniranges[] =
1006 {
1007 AF_UNIRANGE_REC( 0x0F18, 0x0F19 ),
1008 AF_UNIRANGE_REC( 0x0F35, 0x0F35 ),
1009 AF_UNIRANGE_REC( 0x0F37, 0x0F37 ),
1010 AF_UNIRANGE_REC( 0x0F39, 0x0F39 ),
1011 AF_UNIRANGE_REC( 0x0F3E, 0x0F3F ),
1012 AF_UNIRANGE_REC( 0x0F71, 0x0F7E ),
1013 AF_UNIRANGE_REC( 0x0F80, 0x0F84 ),
1014 AF_UNIRANGE_REC( 0x0F86, 0x0F87 ),
1015 AF_UNIRANGE_REC( 0x0F8D, 0x0FBC ),
1016 AF_UNIRANGE_REC( 0, 0 )
1017 };
1018
1019 #endif /* !AF_CONFIG_OPTION_INDIC */
1020
1021 #ifdef AF_CONFIG_OPTION_CJK
1022
1023 /* this corresponds to Unicode 6.0 */
1024
1025 const AF_Script_UniRangeRec af_hani_uniranges[] =
1026 {
1027 AF_UNIRANGE_REC( 0x1100, 0x11FF ), /* Hangul Jamo */
1028 AF_UNIRANGE_REC( 0x2E80, 0x2EFF ), /* CJK Radicals Supplement */
1029 AF_UNIRANGE_REC( 0x2F00, 0x2FDF ), /* Kangxi Radicals */
1030 AF_UNIRANGE_REC( 0x2FF0, 0x2FFF ), /* Ideographic Description Characters */
1031 AF_UNIRANGE_REC( 0x3000, 0x303F ), /* CJK Symbols and Punctuation */
1032 AF_UNIRANGE_REC( 0x3040, 0x309F ), /* Hiragana */
1033 AF_UNIRANGE_REC( 0x30A0, 0x30FF ), /* Katakana */
1034 AF_UNIRANGE_REC( 0x3100, 0x312F ), /* Bopomofo */
1035 AF_UNIRANGE_REC( 0x3130, 0x318F ), /* Hangul Compatibility Jamo */
1036 AF_UNIRANGE_REC( 0x3190, 0x319F ), /* Kanbun */
1037 AF_UNIRANGE_REC( 0x31A0, 0x31BF ), /* Bopomofo Extended */
1038 AF_UNIRANGE_REC( 0x31C0, 0x31EF ), /* CJK Strokes */
1039 AF_UNIRANGE_REC( 0x31F0, 0x31FF ), /* Katakana Phonetic Extensions */
1040 AF_UNIRANGE_REC( 0x3300, 0x33FF ), /* CJK Compatibility */
1041 AF_UNIRANGE_REC( 0x3400, 0x4DBF ), /* CJK Unified Ideographs Extension A */
1042 AF_UNIRANGE_REC( 0x4DC0, 0x4DFF ), /* Yijing Hexagram Symbols */
1043 AF_UNIRANGE_REC( 0x4E00, 0x9FFF ), /* CJK Unified Ideographs */
1044 AF_UNIRANGE_REC( 0xA960, 0xA97F ), /* Hangul Jamo Extended-A */
1045 AF_UNIRANGE_REC( 0xAC00, 0xD7AF ), /* Hangul Syllables */
1046 AF_UNIRANGE_REC( 0xD7B0, 0xD7FF ), /* Hangul Jamo Extended-B */
1047 AF_UNIRANGE_REC( 0xF900, 0xFAFF ), /* CJK Compatibility Ideographs */
1048 AF_UNIRANGE_REC( 0xFE10, 0xFE1F ), /* Vertical forms */
1049 AF_UNIRANGE_REC( 0xFE30, 0xFE4F ), /* CJK Compatibility Forms */
1050 AF_UNIRANGE_REC( 0xFF00, 0xFFEF ), /* Halfwidth and Fullwidth Forms */
1051 AF_UNIRANGE_REC( 0x1B000, 0x1B0FF ), /* Kana Supplement */
1052 AF_UNIRANGE_REC( 0x1B100, 0x1B12F ), /* Kana Extended-A */
1053 AF_UNIRANGE_REC( 0x1D300, 0x1D35F ), /* Tai Xuan Hing Symbols */
1054 AF_UNIRANGE_REC( 0x20000, 0x2A6DF ), /* CJK Unified Ideographs Extension B */
1055 AF_UNIRANGE_REC( 0x2A700, 0x2B73F ), /* CJK Unified Ideographs Extension C */
1056 AF_UNIRANGE_REC( 0x2B740, 0x2B81F ), /* CJK Unified Ideographs Extension D */
1057 AF_UNIRANGE_REC( 0x2B820, 0x2CEAF ), /* CJK Unified Ideographs Extension E */
1058 AF_UNIRANGE_REC( 0x2CEB0, 0x2EBEF ), /* CJK Unified Ideographs Extension F */
1059 AF_UNIRANGE_REC( 0x2F800, 0x2FA1F ), /* CJK Compatibility Ideographs Supplement */
1060 AF_UNIRANGE_REC( 0, 0 )
1061 };
1062
1063 const AF_Script_UniRangeRec af_hani_nonbase_uniranges[] =
1064 {
1065 AF_UNIRANGE_REC( 0x302A, 0x302F ),
1066 AF_UNIRANGE_REC( 0x3190, 0x319F ),
1067 AF_UNIRANGE_REC( 0, 0 )
1068 };
1069
1070 #endif /* !AF_CONFIG_OPTION_CJK */
1071
1072 /* END */