1 | /**************************************************************************** |
2 | * |
3 | * afranges.c |
4 | * |
5 | * Auto-fitter Unicode script ranges (body). |
6 | * |
7 | * Copyright (C) 2013-2023 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 */ |
1073 | |