Fix OTS warning about `maxp.maxSizeOfInstructions`.
[ttfautohint.git] / lib / taranges.c
blobf2032134c5c3046827b3ff39e37f2e804a70f744
1 /* taranges.c */
3 /*
4 * Copyright (C) 2014-2022 by Werner Lemberg.
6 * This file is part of the ttfautohint library, and may only be used,
7 * modified, and distributed under the terms given in `COPYING'. By
8 * continuing to use, modify, or distribute this file you indicate that you
9 * have read `COPYING' and understand and accept it fully.
11 * The file `COPYING' mentioned in the previous paragraph is distributed
12 * with the ttfautohint library.
16 /* originally file `afranges.c' (2014-Jan-11) from FreeType */
18 /* heavily modified 2014 by Werner Lemberg <wl@gnu.org> */
20 #include "taranges.h"
23 * This file gets also processed with the `taranges.sed' script to produce
24 * documentation of character ranges. To make this simple approach work,
25 * don't change the formatting in this file!
27 * - Everything before the first `const' keyword (starting a line) gets
28 * removed.
30 * - The line containing `none_uniranges' and everything after it gets
31 * removed, too.
33 * - Comments after a `TA_UNIRANGE_REC' entry are used for character range
34 * documentation within a table.
36 * - Comments indented by two spaces are also used within a table.
38 * - Other comments are inserted into the documentation as-is (after
39 * stripping off the comment characters).
44 * The algorithm for assigning properties and styles to the `glyph_styles'
45 * array is as follows (cf. the implementation in
46 * `ta_face_globals_compute_style_coverage').
48 * Walk over all scripts (as listed in `tascript.h').
50 * For a given script, walk over all styles (as listed in `tastyles.h').
51 * The order of styles is important and should be as follows.
53 * - First come styles based on OpenType features (small caps, for
54 * example). Since features rely on glyph indices, thus completely
55 * bypassing character codes, no properties are assigned.
57 * - Next comes the default style, using the character ranges as defined
58 * below. This also assigns properties.
60 * Note that there also exist fallback scripts, mainly covering
61 * superscript and subscript glyphs of a script that are not present as
62 * OpenType features. Fallback scripts are defined below, also
63 * assigning properties; they are applied after the corresponding
64 * script.
69 /* XXX Check base character ranges again: */
70 /* Right now, they are quickly derived by visual inspection. */
71 /* I can imagine that fine-tuning is necessary. */
73 /* for the auto-hinter, a `non-base character' is something that should */
74 /* not be affected by blue zones, regardless of whether this is a */
75 /* spacing or no-spacing glyph */
77 /* the `ta_xxxx_nonbase_uniranges' ranges must be strict subsets */
78 /* of the corresponding `ta_xxxx_uniranges' ranges */
81 const TA_Script_UniRangeRec ta_adlm_uniranges[] =
83 TA_UNIRANGE_REC(0x1E900, 0x1E95F), /* Adlam */
84 TA_UNIRANGE_REC( 0, 0)
87 const TA_Script_UniRangeRec ta_adlm_nonbase_uniranges[] =
89 TA_UNIRANGE_REC(0x1D944, 0x1E94A),
90 TA_UNIRANGE_REC( 0, 0)
94 const TA_Script_UniRangeRec ta_arab_uniranges[] =
96 TA_UNIRANGE_REC( 0x0600, 0x06FF), /* Arabic */
97 TA_UNIRANGE_REC( 0x0750, 0x07FF), /* Arabic Supplement */
98 TA_UNIRANGE_REC( 0x08A0, 0x08FF), /* Arabic Extended-A */
99 TA_UNIRANGE_REC( 0xFB50, 0xFDFF), /* Arabic Presentation Forms-A */
100 TA_UNIRANGE_REC( 0xFE70, 0xFEFF), /* Arabic Presentation Forms-B */
101 TA_UNIRANGE_REC(0x1EE00, 0x1EEFF), /* Arabic Mathematical Alphabetic Symbols */
102 TA_UNIRANGE_REC( 0, 0)
105 const TA_Script_UniRangeRec ta_arab_nonbase_uniranges[] =
107 TA_UNIRANGE_REC(0x0600, 0x0605),
108 TA_UNIRANGE_REC(0x0610, 0x061A),
109 TA_UNIRANGE_REC(0x064B, 0x065F),
110 TA_UNIRANGE_REC(0x0670, 0x0670),
111 TA_UNIRANGE_REC(0x06D6, 0x06DC),
112 TA_UNIRANGE_REC(0x06DF, 0x06E4),
113 TA_UNIRANGE_REC(0x06E7, 0x06E8),
114 TA_UNIRANGE_REC(0x06EA, 0x06ED),
115 TA_UNIRANGE_REC(0x08D3, 0x08FF),
116 TA_UNIRANGE_REC(0xFBB2, 0xFBC1),
117 TA_UNIRANGE_REC(0xFE70, 0xFE70),
118 TA_UNIRANGE_REC(0xFE72, 0xFE72),
119 TA_UNIRANGE_REC(0xFE74, 0xFE74),
120 TA_UNIRANGE_REC(0xFE76, 0xFE76),
121 TA_UNIRANGE_REC(0xFE78, 0xFE78),
122 TA_UNIRANGE_REC(0xFE7A, 0xFE7A),
123 TA_UNIRANGE_REC(0xFE7C, 0xFE7C),
124 TA_UNIRANGE_REC(0xFE7E, 0xFE7E),
125 TA_UNIRANGE_REC( 0, 0)
129 const TA_Script_UniRangeRec ta_armn_uniranges[] =
131 TA_UNIRANGE_REC(0x0530, 0x058F), /* Armenian */
132 TA_UNIRANGE_REC(0xFB13, 0xFB17), /* Alphab. Present. Forms (Armenian) */
133 TA_UNIRANGE_REC( 0, 0)
136 const TA_Script_UniRangeRec ta_armn_nonbase_uniranges[] =
138 TA_UNIRANGE_REC(0x0559, 0x055F),
139 TA_UNIRANGE_REC( 0, 0)
143 const TA_Script_UniRangeRec ta_avst_uniranges[] =
145 TA_UNIRANGE_REC(0x10B00, 0x10B3F), /* Avestan */
146 TA_UNIRANGE_REC( 0, 0)
149 const TA_Script_UniRangeRec ta_avst_nonbase_uniranges[] =
151 TA_UNIRANGE_REC(0x10B39, 0x10B3F),
152 TA_UNIRANGE_REC( 0, 0)
156 const TA_Script_UniRangeRec ta_bamu_uniranges[] =
158 TA_UNIRANGE_REC( 0xA6A0, 0xA6FF), /* Bamum */
159 #if 0
160 /* The characters in the Bamum supplement are pictograms, */
161 /* not (directly) related to the syllabic Bamum script */
162 TA_UNIRANGE_REC(0x16800, 0x16A3F), /* Bamum Supplement */
163 #endif
164 TA_UNIRANGE_REC( 0, 0)
167 const TA_Script_UniRangeRec ta_bamu_nonbase_uniranges[] =
169 TA_UNIRANGE_REC(0xA6F0, 0xA6F1),
170 TA_UNIRANGE_REC( 0, 0)
174 const TA_Script_UniRangeRec ta_beng_uniranges[] =
176 TA_UNIRANGE_REC(0x0980, 0x09FF), /* Bengali */
177 TA_UNIRANGE_REC( 0, 0)
180 const TA_Script_UniRangeRec ta_beng_nonbase_uniranges[] =
182 TA_UNIRANGE_REC(0x0981, 0x0981),
183 TA_UNIRANGE_REC(0x09BC, 0x09BC),
184 TA_UNIRANGE_REC(0x09C1, 0x09C4),
185 TA_UNIRANGE_REC(0x09CD, 0x09CD),
186 TA_UNIRANGE_REC(0x09E2, 0x09E3),
187 TA_UNIRANGE_REC(0x09FE, 0x09FE),
188 TA_UNIRANGE_REC( 0, 0)
192 const TA_Script_UniRangeRec ta_buhd_uniranges[] =
194 TA_UNIRANGE_REC(0x1740, 0x175F), /* Buhid */
195 TA_UNIRANGE_REC( 0, 0)
198 const TA_Script_UniRangeRec ta_buhd_nonbase_uniranges[] =
200 TA_UNIRANGE_REC(0x1752, 0x1753),
201 TA_UNIRANGE_REC( 0, 0)
205 const TA_Script_UniRangeRec ta_cakm_uniranges[] =
207 TA_UNIRANGE_REC(0x11100, 0x1114F), /* Chakma */
208 TA_UNIRANGE_REC( 0, 0)
211 const TA_Script_UniRangeRec ta_cakm_nonbase_uniranges[] =
213 TA_UNIRANGE_REC(0x11100, 0x11102),
214 TA_UNIRANGE_REC(0x11127, 0x11134),
215 TA_UNIRANGE_REC(0x11146, 0x11146),
216 TA_UNIRANGE_REC( 0, 0)
220 const TA_Script_UniRangeRec ta_cans_uniranges[] =
222 TA_UNIRANGE_REC(0x1400, 0x167F), /* Unified Canadian Aboriginal Syllabics */
223 TA_UNIRANGE_REC(0x18B0, 0x18FF), /* Unified Canadian Aboriginal Syllabics Extended */
224 TA_UNIRANGE_REC( 0, 0)
227 const TA_Script_UniRangeRec ta_cans_nonbase_uniranges[] =
229 TA_UNIRANGE_REC(0, 0)
233 const TA_Script_UniRangeRec ta_cari_uniranges[] =
235 TA_UNIRANGE_REC(0x102A0, 0x102DF), /* Carian */
236 TA_UNIRANGE_REC( 0, 0)
239 const TA_Script_UniRangeRec ta_cari_nonbase_uniranges[] =
241 TA_UNIRANGE_REC(0, 0)
245 const TA_Script_UniRangeRec ta_cher_uniranges[] =
247 TA_UNIRANGE_REC(0x13A0, 0x13FF), /* Cherokee */
248 TA_UNIRANGE_REC(0xAB70, 0xABBF), /* Cherokee Supplement */
249 TA_UNIRANGE_REC( 0, 0)
252 const TA_Script_UniRangeRec ta_cher_nonbase_uniranges[] =
254 TA_UNIRANGE_REC(0, 0)
258 const TA_Script_UniRangeRec ta_copt_uniranges[] =
260 TA_UNIRANGE_REC(0x2C80, 0x2CFF), /* Coptic */
261 TA_UNIRANGE_REC( 0, 0)
264 const TA_Script_UniRangeRec ta_copt_nonbase_uniranges[] =
266 TA_UNIRANGE_REC(0x2CEF, 0x2CF1),
267 TA_UNIRANGE_REC( 0, 0)
271 const TA_Script_UniRangeRec ta_cprt_uniranges[] =
273 TA_UNIRANGE_REC(0x10800, 0x1083F), /* Cypriot */
274 TA_UNIRANGE_REC( 0, 0)
277 const TA_Script_UniRangeRec ta_cprt_nonbase_uniranges[] =
279 TA_UNIRANGE_REC(0, 0)
283 const TA_Script_UniRangeRec ta_cyrl_uniranges[] =
285 TA_UNIRANGE_REC(0x0400, 0x04FF), /* Cyrillic */
286 TA_UNIRANGE_REC(0x0500, 0x052F), /* Cyrillic Supplement */
287 TA_UNIRANGE_REC(0x2DE0, 0x2DFF), /* Cyrillic Extended-A */
288 TA_UNIRANGE_REC(0xA640, 0xA69F), /* Cyrillic Extended-B */
289 TA_UNIRANGE_REC( 0, 0)
292 const TA_Script_UniRangeRec ta_cyrl_nonbase_uniranges[] =
294 TA_UNIRANGE_REC(0x0483, 0x0489),
295 TA_UNIRANGE_REC(0x2DE0, 0x2DFF),
296 TA_UNIRANGE_REC(0xA66F, 0xA67F),
297 TA_UNIRANGE_REC(0xA69E, 0xA69F),
298 TA_UNIRANGE_REC( 0, 0)
302 /* There are some characters in the Devanagari Unicode block that are */
303 /* generic to Indic scripts; we omit them so that their presence doesn't */
304 /* trigger Devanagari. */
306 const TA_Script_UniRangeRec ta_deva_uniranges[] =
308 TA_UNIRANGE_REC(0x0900, 0x093B), /* Devanagari */
309 /* omitting U+093C nukta */
310 TA_UNIRANGE_REC(0x093D, 0x0950), /* ... continued */
311 /* omitting U+0951 udatta, U+0952 anudatta */
312 TA_UNIRANGE_REC(0x0953, 0x0963), /* ... continued */
313 /* omitting U+0964 danda, U+0965 double danda */
314 TA_UNIRANGE_REC(0x0966, 0x097F), /* ... continued */
315 TA_UNIRANGE_REC(0x20B9, 0x20B9), /* (new) Rupee sign */
316 TA_UNIRANGE_REC(0xA8E0, 0xA8FF), /* Devanagari Extended */
317 TA_UNIRANGE_REC( 0, 0)
320 const TA_Script_UniRangeRec ta_deva_nonbase_uniranges[] =
322 TA_UNIRANGE_REC(0x0900, 0x0902),
323 TA_UNIRANGE_REC(0x093A, 0x093A),
324 TA_UNIRANGE_REC(0x0941, 0x0948),
325 TA_UNIRANGE_REC(0x094D, 0x094D),
326 TA_UNIRANGE_REC(0x0953, 0x0957),
327 TA_UNIRANGE_REC(0x0962, 0x0963),
328 TA_UNIRANGE_REC(0xA8E0, 0xA8F1),
329 TA_UNIRANGE_REC(0xA8FF, 0xA8FF),
330 TA_UNIRANGE_REC( 0, 0)
334 const TA_Script_UniRangeRec ta_dsrt_uniranges[] =
336 TA_UNIRANGE_REC(0x10400, 0x1044F), /* Deseret */
337 TA_UNIRANGE_REC( 0, 0)
340 const TA_Script_UniRangeRec ta_dsrt_nonbase_uniranges[] =
342 TA_UNIRANGE_REC(0, 0)
346 const TA_Script_UniRangeRec ta_ethi_uniranges[] =
348 TA_UNIRANGE_REC(0x1200, 0x137F), /* Ethiopic */
349 TA_UNIRANGE_REC(0x1380, 0x139F), /* Ethiopic Supplement */
350 TA_UNIRANGE_REC(0x2D80, 0x2DDF), /* Ethiopic Extended */
351 TA_UNIRANGE_REC(0xAB00, 0xAB2F), /* Ethiopic Extended-A */
352 TA_UNIRANGE_REC( 0, 0)
355 const TA_Script_UniRangeRec ta_ethi_nonbase_uniranges[] =
357 TA_UNIRANGE_REC(0x135D, 0x135F),
358 TA_UNIRANGE_REC( 0, 0)
362 const TA_Script_UniRangeRec ta_geor_uniranges[] =
364 TA_UNIRANGE_REC(0x10D0, 0x10FF), /* Georgian (Mkhedruli) */
365 TA_UNIRANGE_REC(0x1C90, 0x1CBF), /* Georgian Extended (Mtavruli) */
366 TA_UNIRANGE_REC( 0, 0)
369 const TA_Script_UniRangeRec ta_geor_nonbase_uniranges[] =
371 TA_UNIRANGE_REC(0, 0)
375 const TA_Script_UniRangeRec ta_geok_uniranges[] =
377 /* Khutsuri */
378 TA_UNIRANGE_REC(0x10A0, 0x10CD), /* Georgian (Asomtavruli) */
379 TA_UNIRANGE_REC(0x2D00, 0x2D2D), /* Georgian Supplement (Nuskhuri) */
380 TA_UNIRANGE_REC( 0, 0)
383 const TA_Script_UniRangeRec ta_geok_nonbase_uniranges[] =
385 TA_UNIRANGE_REC(0, 0)
389 const TA_Script_UniRangeRec ta_glag_uniranges[] =
391 TA_UNIRANGE_REC( 0x2C00, 0x2C5F), /* Glagolitic */
392 TA_UNIRANGE_REC(0x1E000, 0x1E02F), /* Glagolitic Supplement */
393 TA_UNIRANGE_REC( 0, 0)
396 const TA_Script_UniRangeRec ta_glag_nonbase_uniranges[] =
398 TA_UNIRANGE_REC(0x1E000, 0x1E02F),
399 TA_UNIRANGE_REC( 0, 0)
403 const TA_Script_UniRangeRec ta_goth_uniranges[] =
405 TA_UNIRANGE_REC(0x10330, 0x1034F), /* Gothic */
406 TA_UNIRANGE_REC( 0, 0)
409 const TA_Script_UniRangeRec ta_goth_nonbase_uniranges[] =
411 TA_UNIRANGE_REC(0, 0)
415 const TA_Script_UniRangeRec ta_grek_uniranges[] =
417 TA_UNIRANGE_REC(0x0370, 0x03FF), /* Greek and Coptic */
418 TA_UNIRANGE_REC(0x1F00, 0x1FFF), /* Greek Extended */
419 TA_UNIRANGE_REC( 0, 0)
422 const TA_Script_UniRangeRec ta_grek_nonbase_uniranges[] =
424 TA_UNIRANGE_REC(0x037A, 0x037A),
425 TA_UNIRANGE_REC(0x0384, 0x0385),
426 TA_UNIRANGE_REC(0x1FBD, 0x1FC1),
427 TA_UNIRANGE_REC(0x1FCD, 0x1FCF),
428 TA_UNIRANGE_REC(0x1FDD, 0x1FDF),
429 TA_UNIRANGE_REC(0x1FED, 0x1FEF),
430 TA_UNIRANGE_REC(0x1FFD, 0x1FFE),
431 TA_UNIRANGE_REC( 0, 0)
435 const TA_Script_UniRangeRec ta_gujr_uniranges[] =
437 TA_UNIRANGE_REC(0x0A80, 0x0AFF), /* Gujarati */
438 TA_UNIRANGE_REC( 0, 0)
441 const TA_Script_UniRangeRec ta_gujr_nonbase_uniranges[] =
443 TA_UNIRANGE_REC(0x0A81, 0x0A82),
444 TA_UNIRANGE_REC(0x0ABC, 0x0ABC),
445 TA_UNIRANGE_REC(0x0AC1, 0x0AC8),
446 TA_UNIRANGE_REC(0x0ACD, 0x0ACD),
447 TA_UNIRANGE_REC(0x0AE2, 0x0AE3),
448 TA_UNIRANGE_REC(0x0AFA, 0x0AFF),
449 TA_UNIRANGE_REC( 0, 0)
453 const TA_Script_UniRangeRec ta_guru_uniranges[] =
455 TA_UNIRANGE_REC(0x0A00, 0x0A7F), /* Gurmukhi */
456 TA_UNIRANGE_REC( 0, 0)
459 const TA_Script_UniRangeRec ta_guru_nonbase_uniranges[] =
461 TA_UNIRANGE_REC(0x0A01, 0x0A02),
462 TA_UNIRANGE_REC(0x0A3C, 0x0A3C),
463 TA_UNIRANGE_REC(0x0A41, 0x0A51),
464 TA_UNIRANGE_REC(0x0A70, 0x0A71),
465 TA_UNIRANGE_REC(0x0A75, 0x0A75),
466 TA_UNIRANGE_REC( 0, 0)
470 const TA_Script_UniRangeRec ta_hebr_uniranges[] =
472 TA_UNIRANGE_REC(0x0590, 0x05FF), /* Hebrew */
473 TA_UNIRANGE_REC(0xFB1D, 0xFB4F), /* Alphab. Present. Forms (Hebrew) */
474 TA_UNIRANGE_REC( 0, 0)
477 const TA_Script_UniRangeRec ta_hebr_nonbase_uniranges[] =
479 TA_UNIRANGE_REC(0x0591, 0x05BF),
480 TA_UNIRANGE_REC(0x05C1, 0x05C2),
481 TA_UNIRANGE_REC(0x05C4, 0x05C5),
482 TA_UNIRANGE_REC(0x05C7, 0x05C7),
483 TA_UNIRANGE_REC(0xFB1E, 0xFB1E),
484 TA_UNIRANGE_REC( 0, 0)
488 const TA_Script_UniRangeRec ta_hmnp_uniranges[] =
490 TA_UNIRANGE_REC(0x1E100, 0x1E14F), /* Nyiakeng Puachue Hmong */
491 TA_UNIRANGE_REC( 0, 0)
494 const TA_Script_UniRangeRec ta_hmnp_nonbase_uniranges[] =
496 TA_UNIRANGE_REC(0x1E130, 0x1E13B),
497 TA_UNIRANGE_REC( 0, 0)
501 const TA_Script_UniRangeRec ta_kali_uniranges[] =
503 TA_UNIRANGE_REC(0xA900, 0xA92F), /* Kayah Li */
504 TA_UNIRANGE_REC( 0, 0)
507 const TA_Script_UniRangeRec ta_kali_nonbase_uniranges[] =
509 TA_UNIRANGE_REC(0xA926, 0xA92D),
510 TA_UNIRANGE_REC( 0, 0)
514 const TA_Script_UniRangeRec ta_knda_uniranges[] =
516 TA_UNIRANGE_REC(0x0C80, 0x0CFF), /* Kannada */
517 TA_UNIRANGE_REC( 0, 0)
520 const TA_Script_UniRangeRec ta_knda_nonbase_uniranges[] =
522 TA_UNIRANGE_REC(0x0C81, 0x0C81),
523 TA_UNIRANGE_REC(0x0CBC, 0x0CBC),
524 TA_UNIRANGE_REC(0x0CBF, 0x0CBF),
525 TA_UNIRANGE_REC(0x0CC6, 0x0CC6),
526 TA_UNIRANGE_REC(0x0CCC, 0x0CCD),
527 TA_UNIRANGE_REC(0x0CE2, 0x0CE3),
528 TA_UNIRANGE_REC( 0, 0)
532 const TA_Script_UniRangeRec ta_khmr_uniranges[] =
534 TA_UNIRANGE_REC(0x1780, 0x17FF), /* Khmer */
535 TA_UNIRANGE_REC( 0, 0)
538 const TA_Script_UniRangeRec ta_khmr_nonbase_uniranges[] =
540 TA_UNIRANGE_REC(0x17B7, 0x17BD),
541 TA_UNIRANGE_REC(0x17C6, 0x17C6),
542 TA_UNIRANGE_REC(0x17C9, 0x17D3),
543 TA_UNIRANGE_REC(0x17DD, 0x17DD),
544 TA_UNIRANGE_REC( 0, 0)
548 const TA_Script_UniRangeRec ta_khms_uniranges[] =
550 TA_UNIRANGE_REC(0x19E0, 0x19FF), /* Khmer Symbols */
551 TA_UNIRANGE_REC( 0, 0)
554 const TA_Script_UniRangeRec ta_khms_nonbase_uniranges[] =
556 TA_UNIRANGE_REC(0, 0)
560 const TA_Script_UniRangeRec ta_lao_uniranges[] =
562 TA_UNIRANGE_REC(0x0E80, 0x0EFF), /* Lao */
563 TA_UNIRANGE_REC( 0, 0)
566 const TA_Script_UniRangeRec ta_lao_nonbase_uniranges[] =
568 TA_UNIRANGE_REC(0x0EB1, 0x0EB1),
569 TA_UNIRANGE_REC(0x0EB4, 0x0EBC),
570 TA_UNIRANGE_REC(0x0EC8, 0x0ECD),
571 TA_UNIRANGE_REC( 0, 0)
575 const TA_Script_UniRangeRec ta_latn_uniranges[] =
577 TA_UNIRANGE_REC( 0x0020, 0x007F), /* Basic Latin (no control chars) */
578 TA_UNIRANGE_REC( 0x00A0, 0x00A9), /* Latin-1 Supplement (no control chars) */
579 TA_UNIRANGE_REC( 0x00AB, 0x00B1), /* ... continued */
580 TA_UNIRANGE_REC( 0x00B4, 0x00B8), /* ... continued */
581 TA_UNIRANGE_REC( 0x00BB, 0x00FF), /* ... continued */
582 TA_UNIRANGE_REC( 0x0100, 0x017F), /* Latin Extended-A */
583 TA_UNIRANGE_REC( 0x0180, 0x024F), /* Latin Extended-B */
584 TA_UNIRANGE_REC( 0x0250, 0x02AF), /* IPA Extensions */
585 TA_UNIRANGE_REC( 0x02B9, 0x02DF), /* Spacing Modifier Letters */
586 TA_UNIRANGE_REC( 0x02E5, 0x02FF), /* ... continued */
587 TA_UNIRANGE_REC( 0x0300, 0x036F), /* Combining Diacritical Marks */
588 TA_UNIRANGE_REC( 0x1AB0, 0x1ABE), /* Combining Diacritical Marks Extended */
589 TA_UNIRANGE_REC( 0x1D00, 0x1D2B), /* Phonetic Extensions */
590 TA_UNIRANGE_REC( 0x1D6B, 0x1D77), /* ... continued */
591 TA_UNIRANGE_REC( 0x1D79, 0x1D7F), /* ... continued */
592 TA_UNIRANGE_REC( 0x1D80, 0x1D9A), /* Phonetic Extensions Supplement */
593 TA_UNIRANGE_REC( 0x1DC0, 0x1DFF), /* Combining Diacritical Marks Supplement */
594 TA_UNIRANGE_REC( 0x1E00, 0x1EFF), /* Latin Extended Additional */
595 TA_UNIRANGE_REC( 0x2000, 0x206F), /* General Punctuation */
596 TA_UNIRANGE_REC( 0x20A0, 0x20B8), /* Currency Symbols ... */
597 TA_UNIRANGE_REC( 0x20BA, 0x20CF), /* ... except new Rupee sign */
598 TA_UNIRANGE_REC( 0x2150, 0x218F), /* Number Forms */
599 TA_UNIRANGE_REC( 0x2C60, 0x2C7B), /* Latin Extended-C */
600 TA_UNIRANGE_REC( 0x2C7E, 0x2C7F), /* ... continued */
601 TA_UNIRANGE_REC( 0x2E00, 0x2E7F), /* Supplemental Punctuation */
602 TA_UNIRANGE_REC( 0xA720, 0xA76F), /* Latin Extended-D */
603 TA_UNIRANGE_REC( 0xA771, 0xA7F7), /* ... continued */
604 TA_UNIRANGE_REC( 0xA7FA, 0xA7FF), /* ... continued */
605 TA_UNIRANGE_REC( 0xAB30, 0xAB5B), /* Latin Extended-E */
606 TA_UNIRANGE_REC( 0xAB60, 0xAB6F), /* ... continued */
607 TA_UNIRANGE_REC( 0xFB00, 0xFB06), /* Alphab. Present. Forms (Latin Ligs) */
608 TA_UNIRANGE_REC(0x1D400, 0x1D7FF), /* Mathematical Alphanumeric Symbols */
609 TA_UNIRANGE_REC( 0, 0)
612 const TA_Script_UniRangeRec ta_latn_nonbase_uniranges[] =
614 TA_UNIRANGE_REC(0x005E, 0x0060),
615 TA_UNIRANGE_REC(0x007E, 0x007E),
616 TA_UNIRANGE_REC(0x00A8, 0x00A9),
617 TA_UNIRANGE_REC(0x00AE, 0x00B0),
618 TA_UNIRANGE_REC(0x00B4, 0x00B4),
619 TA_UNIRANGE_REC(0x00B8, 0x00B8),
620 TA_UNIRANGE_REC(0x00BC, 0x00BE),
621 TA_UNIRANGE_REC(0x02B9, 0x02DF),
622 TA_UNIRANGE_REC(0x02E5, 0x02FF),
623 TA_UNIRANGE_REC(0x0300, 0x036F),
624 TA_UNIRANGE_REC(0x1AB0, 0x1ABE),
625 TA_UNIRANGE_REC(0x1DC0, 0x1DFF),
626 TA_UNIRANGE_REC(0x2017, 0x2017),
627 TA_UNIRANGE_REC(0x203E, 0x203E),
628 TA_UNIRANGE_REC(0xA788, 0xA788),
629 TA_UNIRANGE_REC(0xA7F8, 0xA7FA),
630 TA_UNIRANGE_REC( 0, 0)
634 const TA_Script_UniRangeRec ta_latb_uniranges[] =
636 TA_UNIRANGE_REC(0x1D62, 0x1D6A), /* some small subscript letters */
637 TA_UNIRANGE_REC(0x2080, 0x209C), /* subscript digits and letters */
638 TA_UNIRANGE_REC(0x2C7C, 0x2C7C), /* latin subscript small letter j */
639 TA_UNIRANGE_REC( 0, 0)
642 const TA_Script_UniRangeRec ta_latb_nonbase_uniranges[] =
644 TA_UNIRANGE_REC(0, 0)
648 const TA_Script_UniRangeRec ta_latp_uniranges[] =
650 TA_UNIRANGE_REC(0x00AA, 0x00AA), /* feminine ordinal indicator */
651 TA_UNIRANGE_REC(0x00B2, 0x00B3), /* superscript two and three */
652 TA_UNIRANGE_REC(0x00B9, 0x00BA), /* superscript one, masc. ord. indic. */
653 TA_UNIRANGE_REC(0x02B0, 0x02B8), /* some latin superscript mod. letters */
654 TA_UNIRANGE_REC(0x02E0, 0x02E4), /* some IPA modifier letters */
655 TA_UNIRANGE_REC(0x1D2C, 0x1D61), /* latin superscript modifier letters */
656 TA_UNIRANGE_REC(0x1D78, 0x1D78), /* modifier letter cyrillic en */
657 TA_UNIRANGE_REC(0x1D9B, 0x1DBF), /* more modifier letters */
658 TA_UNIRANGE_REC(0x2070, 0x207F), /* superscript digits and letters */
659 TA_UNIRANGE_REC(0x2C7D, 0x2C7D), /* modifier letter capital v */
660 TA_UNIRANGE_REC(0xA770, 0xA770), /* modifier letter us */
661 TA_UNIRANGE_REC(0xA7F8, 0xA7F9), /* more modifier letters */
662 TA_UNIRANGE_REC(0xAB5C, 0xAB5F), /* more modifier letters */
663 TA_UNIRANGE_REC( 0, 0)
666 const TA_Script_UniRangeRec ta_latp_nonbase_uniranges[] =
668 TA_UNIRANGE_REC(0, 0)
672 const TA_Script_UniRangeRec ta_lisu_uniranges[] =
674 TA_UNIRANGE_REC(0xA4D0, 0xA4FF), /* Lisu */
675 TA_UNIRANGE_REC( 0, 0)
678 const TA_Script_UniRangeRec ta_lisu_nonbase_uniranges[] =
680 TA_UNIRANGE_REC(0, 0)
684 const TA_Script_UniRangeRec ta_mlym_uniranges[] =
686 TA_UNIRANGE_REC(0x0D00, 0x0D7F), /* Malayalam */
687 TA_UNIRANGE_REC( 0, 0)
690 const TA_Script_UniRangeRec ta_mlym_nonbase_uniranges[] =
692 TA_UNIRANGE_REC(0x0D00, 0x0D01),
693 TA_UNIRANGE_REC(0x0D3B, 0x0D3C),
694 TA_UNIRANGE_REC(0x0D4D, 0x0D4E),
695 TA_UNIRANGE_REC(0x0D62, 0x0D63),
696 TA_UNIRANGE_REC( 0, 0)
700 const TA_Script_UniRangeRec ta_medf_uniranges[] =
702 TA_UNIRANGE_REC(0x16E40, 0x16E9F), /* Medefaidrin */
703 TA_UNIRANGE_REC( 0, 0)
706 const TA_Script_UniRangeRec ta_medf_nonbase_uniranges[] =
708 TA_UNIRANGE_REC(0, 0)
712 const TA_Script_UniRangeRec ta_mong_uniranges[] =
714 TA_UNIRANGE_REC( 0x1800, 0x18AF), /* Mongolian */
715 TA_UNIRANGE_REC(0x11660, 0x1167F), /* Mongolian Supplement */
716 TA_UNIRANGE_REC( 0, 0)
719 const TA_Script_UniRangeRec ta_mong_nonbase_uniranges[] =
721 TA_UNIRANGE_REC(0x1885, 0x1886),
722 TA_UNIRANGE_REC(0x18A9, 0x18A9),
723 TA_UNIRANGE_REC( 0, 0)
727 const TA_Script_UniRangeRec ta_mymr_uniranges[] =
729 TA_UNIRANGE_REC(0x1000, 0x109F), /* Myanmar */
730 TA_UNIRANGE_REC(0xA9E0, 0xA9FF), /* Myanmar Extended-B */
731 TA_UNIRANGE_REC(0xAA60, 0xAA7F), /* Myanmar Extended-A */
732 TA_UNIRANGE_REC( 0, 0)
735 const TA_Script_UniRangeRec ta_mymr_nonbase_uniranges[] =
737 TA_UNIRANGE_REC(0x102D, 0x1030),
738 TA_UNIRANGE_REC(0x1032, 0x1037),
739 TA_UNIRANGE_REC(0x103A, 0x103A),
740 TA_UNIRANGE_REC(0x103D, 0x103E),
741 TA_UNIRANGE_REC(0x1058, 0x1059),
742 TA_UNIRANGE_REC(0x105E, 0x1060),
743 TA_UNIRANGE_REC(0x1071, 0x1074),
744 TA_UNIRANGE_REC(0x1082, 0x1082),
745 TA_UNIRANGE_REC(0x1085, 0x1086),
746 TA_UNIRANGE_REC(0x108D, 0x108D),
747 TA_UNIRANGE_REC(0xA9E5, 0xA9E5),
748 TA_UNIRANGE_REC(0xAA7C, 0xAA7C),
749 TA_UNIRANGE_REC( 0, 0)
753 const TA_Script_UniRangeRec ta_nkoo_uniranges[] =
755 TA_UNIRANGE_REC(0x07C0, 0x07FF), /* N'Ko */
756 TA_UNIRANGE_REC( 0, 0)
759 const TA_Script_UniRangeRec ta_nkoo_nonbase_uniranges[] =
761 TA_UNIRANGE_REC(0x07EB, 0x07F5),
762 TA_UNIRANGE_REC(0x07FD, 0x07FD),
763 TA_UNIRANGE_REC( 0, 0)
767 const TA_Script_UniRangeRec ta_olck_uniranges[] =
769 TA_UNIRANGE_REC(0x1C50, 0x1C7F), /* Ol Chiki */
770 TA_UNIRANGE_REC( 0, 0)
773 const TA_Script_UniRangeRec ta_olck_nonbase_uniranges[] =
775 TA_UNIRANGE_REC(0, 0)
779 const TA_Script_UniRangeRec ta_orkh_uniranges[] =
781 TA_UNIRANGE_REC(0x10C00, 0x10C4F), /* Old Turkic */
782 TA_UNIRANGE_REC( 0, 0)
785 const TA_Script_UniRangeRec ta_orkh_nonbase_uniranges[] =
787 TA_UNIRANGE_REC(0, 0)
791 const TA_Script_UniRangeRec ta_osge_uniranges[] =
793 TA_UNIRANGE_REC(0x104B0, 0x104FF), /* Osage */
794 TA_UNIRANGE_REC( 0, 0)
797 const TA_Script_UniRangeRec ta_osge_nonbase_uniranges[] =
799 TA_UNIRANGE_REC(0, 0)
803 const TA_Script_UniRangeRec ta_osma_uniranges[] =
805 TA_UNIRANGE_REC(0x10480, 0x104AF), /* Osmanya */
806 TA_UNIRANGE_REC( 0, 0)
809 const TA_Script_UniRangeRec ta_osma_nonbase_uniranges[] =
811 TA_UNIRANGE_REC(0, 0)
815 const TA_Script_UniRangeRec ta_rohg_uniranges[] =
817 TA_UNIRANGE_REC(0x10D00, 0x10D3F), /* Hanifi Rohingya */
818 TA_UNIRANGE_REC( 0, 0)
821 const TA_Script_UniRangeRec ta_rohg_nonbase_uniranges[] =
823 TA_UNIRANGE_REC(0, 0)
827 const TA_Script_UniRangeRec ta_saur_uniranges[] =
829 TA_UNIRANGE_REC(0xA880, 0xA8DF), /* Saurashtra */
830 TA_UNIRANGE_REC( 0, 0)
833 const TA_Script_UniRangeRec ta_saur_nonbase_uniranges[] =
835 TA_UNIRANGE_REC(0xA880, 0xA881),
836 TA_UNIRANGE_REC(0xA8B4, 0xA8C5),
837 TA_UNIRANGE_REC( 0, 0)
841 const TA_Script_UniRangeRec ta_shaw_uniranges[] =
843 TA_UNIRANGE_REC(0x10450, 0x1047F), /* Shavian */
844 TA_UNIRANGE_REC( 0, 0)
847 const TA_Script_UniRangeRec ta_shaw_nonbase_uniranges[] =
849 TA_UNIRANGE_REC(0, 0)
853 const TA_Script_UniRangeRec ta_sinh_uniranges[] =
855 TA_UNIRANGE_REC(0x0D80, 0x0DFF), /* Sinhala */
856 TA_UNIRANGE_REC( 0, 0)
859 const TA_Script_UniRangeRec ta_sinh_nonbase_uniranges[] =
861 TA_UNIRANGE_REC(0x0DCA, 0x0DCA),
862 TA_UNIRANGE_REC(0x0DD2, 0x0DD6),
863 TA_UNIRANGE_REC( 0, 0)
867 const TA_Script_UniRangeRec ta_sund_uniranges[] =
869 TA_UNIRANGE_REC(0x1B80, 0x1BBF), /* Sundanese */
870 TA_UNIRANGE_REC(0x1CC0, 0x1CCF), /* Sundanese Supplement */
871 TA_UNIRANGE_REC( 0, 0)
874 const TA_Script_UniRangeRec ta_sund_nonbase_uniranges[] =
876 TA_UNIRANGE_REC(0x1B80, 0x1B82),
877 TA_UNIRANGE_REC(0x1BA1, 0x1BAD),
878 TA_UNIRANGE_REC( 0, 0)
882 const TA_Script_UniRangeRec ta_taml_uniranges[] =
884 TA_UNIRANGE_REC(0x0B80, 0x0BFF), /* Tamil */
885 TA_UNIRANGE_REC( 0, 0)
888 const TA_Script_UniRangeRec ta_taml_nonbase_uniranges[] =
890 TA_UNIRANGE_REC(0x0B82, 0x0B82),
891 TA_UNIRANGE_REC(0x0BC0, 0x0BC2),
892 TA_UNIRANGE_REC(0x0BCD, 0x0BCD),
893 TA_UNIRANGE_REC( 0, 0)
897 const TA_Script_UniRangeRec ta_tavt_uniranges[] =
899 TA_UNIRANGE_REC(0xAA80, 0xAADF), /* Tai Viet */
900 TA_UNIRANGE_REC( 0, 0)
903 const TA_Script_UniRangeRec ta_tavt_nonbase_uniranges[] =
905 TA_UNIRANGE_REC(0xAAB0, 0xAAB0),
906 TA_UNIRANGE_REC(0xAAB2, 0xAAB4),
907 TA_UNIRANGE_REC(0xAAB7, 0xAAB8),
908 TA_UNIRANGE_REC(0xAABE, 0xAABF),
909 TA_UNIRANGE_REC(0xAAC1, 0xAAC1),
910 TA_UNIRANGE_REC( 0, 0)
914 const TA_Script_UniRangeRec ta_telu_uniranges[] =
916 TA_UNIRANGE_REC(0x0C00, 0x0C7F), /* Telugu */
917 TA_UNIRANGE_REC( 0, 0)
920 const TA_Script_UniRangeRec ta_telu_nonbase_uniranges[] =
922 TA_UNIRANGE_REC(0x0C00, 0x0C00),
923 TA_UNIRANGE_REC(0x0C04, 0x0C04),
924 TA_UNIRANGE_REC(0x0C3E, 0x0C40),
925 TA_UNIRANGE_REC(0x0C46, 0x0C56),
926 TA_UNIRANGE_REC(0x0C62, 0x0C63),
927 TA_UNIRANGE_REC( 0, 0)
931 const TA_Script_UniRangeRec ta_thai_uniranges[] =
933 TA_UNIRANGE_REC(0x0E00, 0x0E7F), /* Thai */
934 TA_UNIRANGE_REC( 0, 0)
937 const TA_Script_UniRangeRec ta_thai_nonbase_uniranges[] =
939 TA_UNIRANGE_REC(0x0E31, 0x0E31),
940 TA_UNIRANGE_REC(0x0E34, 0x0E3A),
941 TA_UNIRANGE_REC(0x0E47, 0x0E4E),
942 TA_UNIRANGE_REC( 0, 0)
946 const TA_Script_UniRangeRec ta_tfng_uniranges[] =
948 TA_UNIRANGE_REC(0x2D30, 0x2D7F), /* Tifinagh */
949 TA_UNIRANGE_REC( 0, 0)
952 const TA_Script_UniRangeRec ta_tfng_nonbase_uniranges[] =
954 TA_UNIRANGE_REC(0, 0)
958 const TA_Script_UniRangeRec ta_vaii_uniranges[] =
960 TA_UNIRANGE_REC(0xA500, 0xA63F), /* Vai */
961 TA_UNIRANGE_REC( 0, 0)
964 const TA_Script_UniRangeRec ta_vaii_nonbase_uniranges[] =
966 TA_UNIRANGE_REC(0, 0)
970 const TA_Script_UniRangeRec ta_yezi_uniranges[] =
972 TA_UNIRANGE_REC(0x10E80, 0x10EBF), /* Yezidi */
973 TA_UNIRANGE_REC( 0, 0)
976 const TA_Script_UniRangeRec ta_yezi_nonbase_uniranges[] =
978 TA_UNIRANGE_REC(0x10EAB, 0x10EAC),
979 TA_UNIRANGE_REC( 0, 0)
983 const TA_Script_UniRangeRec ta_none_uniranges[] =
985 TA_UNIRANGE_REC(0, 0)
988 const TA_Script_UniRangeRec ta_none_nonbase_uniranges[] =
990 TA_UNIRANGE_REC(0, 0)
993 /* end of taranges.c */