[css] Use https for connection to google's font API.
[ttfautohint.git] / lib / taranges.c
blobd9be3ef744f72eac0da45a5feefe045df487652e
1 /* taranges.c */
3 /*
4 * Copyright (C) 2014-2017 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_arab_uniranges[] =
83 TA_UNIRANGE_REC( 0x0600, 0x06FF), /* Arabic */
84 TA_UNIRANGE_REC( 0x0750, 0x07FF), /* Arabic Supplement */
85 TA_UNIRANGE_REC( 0x08A0, 0x08FF), /* Arabic Extended-A */
86 TA_UNIRANGE_REC( 0xFB50, 0xFDFF), /* Arabic Presentation Forms-A */
87 TA_UNIRANGE_REC( 0xFE70, 0xFEFF), /* Arabic Presentation Forms-B */
88 TA_UNIRANGE_REC(0x1EE00, 0x1EEFF), /* Arabic Mathematical Alphabetic Symbols */
89 TA_UNIRANGE_REC( 0, 0)
92 const TA_Script_UniRangeRec ta_arab_nonbase_uniranges[] =
94 TA_UNIRANGE_REC(0x0600, 0x0605),
95 TA_UNIRANGE_REC(0x0610, 0x061A),
96 TA_UNIRANGE_REC(0x064B, 0x065F),
97 TA_UNIRANGE_REC(0x0670, 0x0670),
98 TA_UNIRANGE_REC(0x06D6, 0x06DC),
99 TA_UNIRANGE_REC(0x06DF, 0x06E4),
100 TA_UNIRANGE_REC(0x06E7, 0x06E8),
101 TA_UNIRANGE_REC(0x06EA, 0x06ED),
102 TA_UNIRANGE_REC(0x08E3, 0x08FF),
103 TA_UNIRANGE_REC(0xFBB2, 0xFBC1),
104 TA_UNIRANGE_REC(0xFE70, 0xFE70),
105 TA_UNIRANGE_REC(0xFE72, 0xFE72),
106 TA_UNIRANGE_REC(0xFE74, 0xFE74),
107 TA_UNIRANGE_REC(0xFE76, 0xFE76),
108 TA_UNIRANGE_REC(0xFE78, 0xFE78),
109 TA_UNIRANGE_REC(0xFE7A, 0xFE7A),
110 TA_UNIRANGE_REC(0xFE7C, 0xFE7C),
111 TA_UNIRANGE_REC(0xFE7E, 0xFE7E),
112 TA_UNIRANGE_REC( 0, 0)
116 const TA_Script_UniRangeRec ta_armn_uniranges[] =
118 TA_UNIRANGE_REC(0x0530, 0x058F), /* Armenian */
119 TA_UNIRANGE_REC(0xFB13, 0xFB17), /* Alphab. Present. Forms (Armenian) */
120 TA_UNIRANGE_REC( 0, 0)
123 const TA_Script_UniRangeRec ta_armn_nonbase_uniranges[] =
125 TA_UNIRANGE_REC(0x0559, 0x055F),
126 TA_UNIRANGE_REC( 0, 0)
130 const TA_Script_UniRangeRec ta_beng_uniranges[] =
132 TA_UNIRANGE_REC(0x0980, 0x09FF), /* Bengali */
133 TA_UNIRANGE_REC( 0, 0)
136 const TA_Script_UniRangeRec ta_beng_nonbase_uniranges[] =
138 TA_UNIRANGE_REC(0x0981, 0x0981),
139 TA_UNIRANGE_REC(0x09BC, 0x09BC),
140 TA_UNIRANGE_REC(0x09C1, 0x09C4),
141 TA_UNIRANGE_REC(0x09CD, 0x09CD),
142 TA_UNIRANGE_REC(0x09E2, 0x09E3),
143 TA_UNIRANGE_REC( 0, 0)
147 const TA_Script_UniRangeRec ta_cher_uniranges[] =
149 TA_UNIRANGE_REC(0x13A0, 0x13FF), /* Cherokee */
150 TA_UNIRANGE_REC(0xAB70, 0xABBF), /* Cherokee Supplement */
151 TA_UNIRANGE_REC( 0, 0)
154 const TA_Script_UniRangeRec ta_cher_nonbase_uniranges[] =
156 TA_UNIRANGE_REC(0, 0)
160 const TA_Script_UniRangeRec ta_cyrl_uniranges[] =
162 TA_UNIRANGE_REC(0x0400, 0x04FF), /* Cyrillic */
163 TA_UNIRANGE_REC(0x0500, 0x052F), /* Cyrillic Supplement */
164 TA_UNIRANGE_REC(0x2DE0, 0x2DFF), /* Cyrillic Extended-A */
165 TA_UNIRANGE_REC(0xA640, 0xA69F), /* Cyrillic Extended-B */
166 TA_UNIRANGE_REC( 0, 0)
169 const TA_Script_UniRangeRec ta_cyrl_nonbase_uniranges[] =
171 TA_UNIRANGE_REC(0x0483, 0x0489),
172 TA_UNIRANGE_REC(0x2DE0, 0x2DFF),
173 TA_UNIRANGE_REC(0xA66F, 0xA67F),
174 TA_UNIRANGE_REC(0xA69E, 0xA69F),
175 TA_UNIRANGE_REC( 0, 0)
179 /* There are some characters in the Devanagari Unicode block that are */
180 /* generic to Indic scripts; we omit them so that their presence doesn't */
181 /* trigger Devanagari. */
183 const TA_Script_UniRangeRec ta_deva_uniranges[] =
185 TA_UNIRANGE_REC(0x0900, 0x093B), /* Devanagari */
186 /* omitting U+093C nukta */
187 TA_UNIRANGE_REC(0x093D, 0x0950), /* ... continued */
188 /* omitting U+0951 udatta, U+0952 anudatta */
189 TA_UNIRANGE_REC(0x0953, 0x0963), /* ... continued */
190 /* omitting U+0964 danda, U+0965 double danda */
191 TA_UNIRANGE_REC(0x0966, 0x097F), /* ... continued */
192 TA_UNIRANGE_REC(0x20B9, 0x20B9), /* (new) Rupee sign */
193 TA_UNIRANGE_REC(0xA8E0, 0xA8FF), /* Devanagari Extended */
194 TA_UNIRANGE_REC( 0, 0)
197 const TA_Script_UniRangeRec ta_deva_nonbase_uniranges[] =
199 TA_UNIRANGE_REC(0x0900, 0x0902),
200 TA_UNIRANGE_REC(0x093A, 0x093A),
201 TA_UNIRANGE_REC(0x0941, 0x0948),
202 TA_UNIRANGE_REC(0x094D, 0x094D),
203 TA_UNIRANGE_REC(0x0953, 0x0957),
204 TA_UNIRANGE_REC(0x0962, 0x0963),
205 TA_UNIRANGE_REC(0xA8E0, 0xA8F1),
206 TA_UNIRANGE_REC( 0, 0)
210 const TA_Script_UniRangeRec ta_ethi_uniranges[] =
212 TA_UNIRANGE_REC(0x1200, 0x137F), /* Ethiopic */
213 TA_UNIRANGE_REC(0x1380, 0x139F), /* Ethiopic Supplement */
214 TA_UNIRANGE_REC(0x2D80, 0x2DDF), /* Ethiopic Extended */
215 TA_UNIRANGE_REC(0xAB00, 0xAB2F), /* Ethiopic Extended-A */
216 TA_UNIRANGE_REC( 0, 0)
219 const TA_Script_UniRangeRec ta_ethi_nonbase_uniranges[] =
221 TA_UNIRANGE_REC(0x135D, 0x135F),
222 TA_UNIRANGE_REC( 0, 0)
226 const TA_Script_UniRangeRec ta_geor_uniranges[] =
228 TA_UNIRANGE_REC(0x10D0, 0x10FF), /* Georgian (Mkhedruli) */
229 #if 0
230 /* the following range is proposed for inclusion in Unicode */
231 TA_UNIRANGE_REC(0x1C90, 0x1CBF), /* Georgian (Mtavruli) */
232 #endif
233 TA_UNIRANGE_REC( 0, 0)
236 const TA_Script_UniRangeRec ta_geor_nonbase_uniranges[] =
238 TA_UNIRANGE_REC(0, 0)
242 const TA_Script_UniRangeRec ta_geok_uniranges[] =
244 /* Khutsuri */
245 TA_UNIRANGE_REC(0x10A0, 0x10CD), /* Georgian (Asomtavruli) */
246 TA_UNIRANGE_REC(0x2D00, 0x2D2D), /* Georgian (Nuskhuri) */
247 TA_UNIRANGE_REC( 0, 0)
250 const TA_Script_UniRangeRec ta_geok_nonbase_uniranges[] =
252 TA_UNIRANGE_REC(0, 0)
256 const TA_Script_UniRangeRec ta_grek_uniranges[] =
258 TA_UNIRANGE_REC(0x0370, 0x03FF), /* Greek and Coptic */
259 TA_UNIRANGE_REC(0x1F00, 0x1FFF), /* Greek Extended */
260 TA_UNIRANGE_REC( 0, 0)
263 const TA_Script_UniRangeRec ta_grek_nonbase_uniranges[] =
265 TA_UNIRANGE_REC(0x037A, 0x037A),
266 TA_UNIRANGE_REC(0x0384, 0x0385),
267 TA_UNIRANGE_REC(0x1FBD, 0x1FC1),
268 TA_UNIRANGE_REC(0x1FCD, 0x1FCF),
269 TA_UNIRANGE_REC(0x1FDD, 0x1FDF),
270 TA_UNIRANGE_REC(0x1FED, 0x1FEF),
271 TA_UNIRANGE_REC(0x1FFD, 0x1FFE),
272 TA_UNIRANGE_REC( 0, 0)
276 const TA_Script_UniRangeRec ta_gujr_uniranges[] =
278 TA_UNIRANGE_REC(0x0A80, 0x0AFF), /* Gujarati */
279 TA_UNIRANGE_REC( 0, 0)
282 const TA_Script_UniRangeRec ta_gujr_nonbase_uniranges[] =
284 TA_UNIRANGE_REC(0x0A81, 0x0A82),
285 TA_UNIRANGE_REC(0x0ABC, 0x0ABC),
286 TA_UNIRANGE_REC(0x0AC1, 0x0AC8),
287 TA_UNIRANGE_REC(0x0ACD, 0x0ACD),
288 TA_UNIRANGE_REC(0x0AE2, 0x0AE3),
289 TA_UNIRANGE_REC( 0, 0)
293 const TA_Script_UniRangeRec ta_guru_uniranges[] =
295 TA_UNIRANGE_REC(0x0A00, 0x0A7F), /* Gurmukhi */
296 TA_UNIRANGE_REC( 0, 0)
299 const TA_Script_UniRangeRec ta_guru_nonbase_uniranges[] =
301 TA_UNIRANGE_REC(0x0A01, 0x0A02),
302 TA_UNIRANGE_REC(0x0A3C, 0x0A3C),
303 TA_UNIRANGE_REC(0x0A41, 0x0A51),
304 TA_UNIRANGE_REC(0x0A70, 0x0A71),
305 TA_UNIRANGE_REC(0x0A75, 0x0A75),
306 TA_UNIRANGE_REC( 0, 0)
310 const TA_Script_UniRangeRec ta_hebr_uniranges[] =
312 TA_UNIRANGE_REC(0x0590, 0x05FF), /* Hebrew */
313 TA_UNIRANGE_REC(0xFB1D, 0xFB4F), /* Alphab. Present. Forms (Hebrew) */
314 TA_UNIRANGE_REC( 0, 0)
317 const TA_Script_UniRangeRec ta_hebr_nonbase_uniranges[] =
319 TA_UNIRANGE_REC(0x0591, 0x05BF),
320 TA_UNIRANGE_REC(0x05C1, 0x05C2),
321 TA_UNIRANGE_REC(0x05C4, 0x05C5),
322 TA_UNIRANGE_REC(0x05C7, 0x05C7),
323 TA_UNIRANGE_REC(0xFB1E, 0xFB1E),
324 TA_UNIRANGE_REC( 0, 0)
328 const TA_Script_UniRangeRec ta_knda_uniranges[] =
330 TA_UNIRANGE_REC(0x0C80, 0x0CFF), /* Kannada */
331 TA_UNIRANGE_REC( 0, 0)
334 const TA_Script_UniRangeRec ta_knda_nonbase_uniranges[] =
336 TA_UNIRANGE_REC(0x0C81, 0x0C81),
337 TA_UNIRANGE_REC(0x0CBC, 0x0CBC),
338 TA_UNIRANGE_REC(0x0CBF, 0x0CBF),
339 TA_UNIRANGE_REC(0x0CC6, 0x0CC6),
340 TA_UNIRANGE_REC(0x0CCC, 0x0CCD),
341 TA_UNIRANGE_REC(0x0CE2, 0x0CE3),
342 TA_UNIRANGE_REC( 0, 0)
346 const TA_Script_UniRangeRec ta_khmr_uniranges[] =
348 TA_UNIRANGE_REC(0x1780, 0x17FF), /* Khmer */
349 TA_UNIRANGE_REC( 0, 0)
352 const TA_Script_UniRangeRec ta_khmr_nonbase_uniranges[] =
354 TA_UNIRANGE_REC(0x17B7, 0x17BD),
355 TA_UNIRANGE_REC(0x17C6, 0x17C6),
356 TA_UNIRANGE_REC(0x17C9, 0x17D3),
357 TA_UNIRANGE_REC(0x17DD, 0x17DD),
358 TA_UNIRANGE_REC( 0, 0)
362 const TA_Script_UniRangeRec ta_khms_uniranges[] =
364 TA_UNIRANGE_REC(0x19E0, 0x19FF), /* Khmer Symbols */
365 TA_UNIRANGE_REC( 0, 0)
368 const TA_Script_UniRangeRec ta_khms_nonbase_uniranges[] =
370 TA_UNIRANGE_REC(0, 0)
374 const TA_Script_UniRangeRec ta_lao_uniranges[] =
376 TA_UNIRANGE_REC(0x0E80, 0x0EFF), /* Lao */
377 TA_UNIRANGE_REC( 0, 0)
380 const TA_Script_UniRangeRec ta_lao_nonbase_uniranges[] =
382 TA_UNIRANGE_REC(0x0EB1, 0x0EB1),
383 TA_UNIRANGE_REC(0x0EB4, 0x0EBC),
384 TA_UNIRANGE_REC(0x0EC8, 0x0ECD),
385 TA_UNIRANGE_REC( 0, 0)
389 const TA_Script_UniRangeRec ta_latn_uniranges[] =
391 TA_UNIRANGE_REC( 0x0020, 0x007F), /* Basic Latin (no control chars) */
392 TA_UNIRANGE_REC( 0x00A0, 0x00A9), /* Latin-1 Supplement (no control chars) */
393 TA_UNIRANGE_REC( 0x00AB, 0x00B1), /* ... continued */
394 TA_UNIRANGE_REC( 0x00B4, 0x00B8), /* ... continued */
395 TA_UNIRANGE_REC( 0x00BB, 0x00FF), /* ... continued */
396 TA_UNIRANGE_REC( 0x0100, 0x017F), /* Latin Extended-A */
397 TA_UNIRANGE_REC( 0x0180, 0x024F), /* Latin Extended-B */
398 TA_UNIRANGE_REC( 0x0250, 0x02AF), /* IPA Extensions */
399 TA_UNIRANGE_REC( 0x02B9, 0x02DF), /* Spacing Modifier Letters */
400 TA_UNIRANGE_REC( 0x02E5, 0x02FF), /* ... continued */
401 TA_UNIRANGE_REC( 0x0300, 0x036F), /* Combining Diacritical Marks */
402 TA_UNIRANGE_REC( 0x1AB0, 0x1ABE), /* Combining Diacritical Marks Extended */
403 TA_UNIRANGE_REC( 0x1D00, 0x1D2B), /* Phonetic Extensions */
404 TA_UNIRANGE_REC( 0x1D6B, 0x1D77), /* ... continued */
405 TA_UNIRANGE_REC( 0x1D79, 0x1D7F), /* ... continued */
406 TA_UNIRANGE_REC( 0x1D80, 0x1D9A), /* Phonetic Extensions Supplement */
407 TA_UNIRANGE_REC( 0x1DC0, 0x1DFF), /* Combining Diacritical Marks Supplement */
408 TA_UNIRANGE_REC( 0x1E00, 0x1EFF), /* Latin Extended Additional */
409 TA_UNIRANGE_REC( 0x2000, 0x206F), /* General Punctuation */
410 TA_UNIRANGE_REC( 0x20A0, 0x20B8), /* Currency Symbols ... */
411 TA_UNIRANGE_REC( 0x20BA, 0x20CF), /* ... except new Rupee sign */
412 TA_UNIRANGE_REC( 0x2150, 0x218F), /* Number Forms */
413 TA_UNIRANGE_REC( 0x2C60, 0x2C7B), /* Latin Extended-C */
414 TA_UNIRANGE_REC( 0x2C7E, 0x2C7F), /* ... continued */
415 TA_UNIRANGE_REC( 0x2E00, 0x2E7F), /* Supplemental Punctuation */
416 TA_UNIRANGE_REC( 0xA720, 0xA76F), /* Latin Extended-D */
417 TA_UNIRANGE_REC( 0xA771, 0xA7F7), /* ... continued */
418 TA_UNIRANGE_REC( 0xA7FA, 0xA7FF), /* ... continued */
419 TA_UNIRANGE_REC( 0xAB30, 0xAB5B), /* Latin Extended-E */
420 TA_UNIRANGE_REC( 0xAB60, 0xAB6F), /* ... continued */
421 TA_UNIRANGE_REC( 0xFB00, 0xFB06), /* Alphab. Present. Forms (Latin Ligs) */
422 TA_UNIRANGE_REC(0x1D400, 0x1D7FF), /* Mathematical Alphanumeric Symbols */
423 TA_UNIRANGE_REC( 0, 0)
426 const TA_Script_UniRangeRec ta_latn_nonbase_uniranges[] =
428 TA_UNIRANGE_REC(0x005E, 0x0060),
429 TA_UNIRANGE_REC(0x007E, 0x007E),
430 TA_UNIRANGE_REC(0x00A8, 0x00A9),
431 TA_UNIRANGE_REC(0x00AE, 0x00B0),
432 TA_UNIRANGE_REC(0x00B4, 0x00B4),
433 TA_UNIRANGE_REC(0x00B8, 0x00B8),
434 TA_UNIRANGE_REC(0x00BC, 0x00BE),
435 TA_UNIRANGE_REC(0x02B9, 0x02DF),
436 TA_UNIRANGE_REC(0x02E5, 0x02FF),
437 TA_UNIRANGE_REC(0x0300, 0x036F),
438 TA_UNIRANGE_REC(0x1AB0, 0x1ABE),
439 TA_UNIRANGE_REC(0x1DC0, 0x1DFF),
440 TA_UNIRANGE_REC(0x2017, 0x2017),
441 TA_UNIRANGE_REC(0x203E, 0x203E),
442 TA_UNIRANGE_REC(0xA788, 0xA788),
443 TA_UNIRANGE_REC(0xA7F8, 0xA7FA),
444 TA_UNIRANGE_REC( 0, 0)
448 const TA_Script_UniRangeRec ta_latb_uniranges[] =
450 TA_UNIRANGE_REC(0x1D62, 0x1D6A), /* some small subscript letters */
451 TA_UNIRANGE_REC(0x2080, 0x209C), /* subscript digits and letters */
452 TA_UNIRANGE_REC(0x2C7C, 0x2C7C), /* latin subscript small letter j */
453 TA_UNIRANGE_REC( 0, 0)
456 const TA_Script_UniRangeRec ta_latb_nonbase_uniranges[] =
458 TA_UNIRANGE_REC(0, 0)
462 const TA_Script_UniRangeRec ta_latp_uniranges[] =
464 TA_UNIRANGE_REC(0x00AA, 0x00AA), /* feminine ordinal indicator */
465 TA_UNIRANGE_REC(0x00B2, 0x00B3), /* superscript two and three */
466 TA_UNIRANGE_REC(0x00B9, 0x00BA), /* superscript one, masc. ord. indic. */
467 TA_UNIRANGE_REC(0x02B0, 0x02B8), /* some latin superscript mod. letters */
468 TA_UNIRANGE_REC(0x02E0, 0x02E4), /* some IPA modifier letters */
469 TA_UNIRANGE_REC(0x1D2C, 0x1D61), /* latin superscript modifier letters */
470 TA_UNIRANGE_REC(0x1D78, 0x1D78), /* modifier letter cyrillic en */
471 TA_UNIRANGE_REC(0x1D9B, 0x1DBF), /* more modifier letters */
472 TA_UNIRANGE_REC(0x2070, 0x207F), /* superscript digits and letters */
473 TA_UNIRANGE_REC(0x2C7D, 0x2C7D), /* modifier letter capital v */
474 TA_UNIRANGE_REC(0xA770, 0xA770), /* modifier letter us */
475 TA_UNIRANGE_REC(0xA7F8, 0xA7F9), /* more modifier letters */
476 TA_UNIRANGE_REC(0xAB5C, 0xAB5F), /* more modifier letters */
477 TA_UNIRANGE_REC( 0, 0)
480 const TA_Script_UniRangeRec ta_latp_nonbase_uniranges[] =
482 TA_UNIRANGE_REC(0, 0)
486 const TA_Script_UniRangeRec ta_mlym_uniranges[] =
488 TA_UNIRANGE_REC(0x0D00, 0x0D7F), /* Malayalam */
489 TA_UNIRANGE_REC( 0, 0)
492 const TA_Script_UniRangeRec ta_mlym_nonbase_uniranges[] =
494 TA_UNIRANGE_REC(0x0D01, 0x0D01),
495 TA_UNIRANGE_REC(0x0D4D, 0x0D4E),
496 TA_UNIRANGE_REC(0x0D62, 0x0D63),
497 TA_UNIRANGE_REC( 0, 0)
501 const TA_Script_UniRangeRec ta_mymr_uniranges[] =
503 TA_UNIRANGE_REC(0x1000, 0x109F), /* Myanmar */
504 TA_UNIRANGE_REC(0xA9E0, 0xA9FF), /* Myanmar Extended-B */
505 TA_UNIRANGE_REC(0xAA60, 0xAA7F), /* Myanmar Extended-A */
506 TA_UNIRANGE_REC( 0, 0)
509 const TA_Script_UniRangeRec ta_mymr_nonbase_uniranges[] =
511 TA_UNIRANGE_REC(0x102D, 0x1030),
512 TA_UNIRANGE_REC(0x1032, 0x1037),
513 TA_UNIRANGE_REC(0x103A, 0x103A),
514 TA_UNIRANGE_REC(0x103D, 0x103E),
515 TA_UNIRANGE_REC(0x1058, 0x1059),
516 TA_UNIRANGE_REC(0x105E, 0x1060),
517 TA_UNIRANGE_REC(0x1071, 0x1074),
518 TA_UNIRANGE_REC(0x1082, 0x1082),
519 TA_UNIRANGE_REC(0x1085, 0x1086),
520 TA_UNIRANGE_REC(0x108D, 0x108D),
521 TA_UNIRANGE_REC(0xA9E5, 0xA9E5),
522 TA_UNIRANGE_REC(0xAA7C, 0xAA7C),
523 TA_UNIRANGE_REC( 0, 0)
527 const TA_Script_UniRangeRec ta_sinh_uniranges[] =
529 TA_UNIRANGE_REC(0x0D80, 0x0DFF), /* Sinhala */
530 TA_UNIRANGE_REC( 0, 0)
533 const TA_Script_UniRangeRec ta_sinh_nonbase_uniranges[] =
535 TA_UNIRANGE_REC(0x0DCA, 0x0DCA),
536 TA_UNIRANGE_REC(0x0DD2, 0x0DD6),
537 TA_UNIRANGE_REC( 0, 0)
541 const TA_Script_UniRangeRec ta_taml_uniranges[] =
543 TA_UNIRANGE_REC(0x0B80, 0x0BFF), /* Tamil */
544 TA_UNIRANGE_REC( 0, 0)
547 const TA_Script_UniRangeRec ta_taml_nonbase_uniranges[] =
549 TA_UNIRANGE_REC(0x0B82, 0x0B82),
550 TA_UNIRANGE_REC(0x0BC0, 0x0BC2),
551 TA_UNIRANGE_REC(0x0BCD, 0x0BCD),
552 TA_UNIRANGE_REC( 0, 0)
556 const TA_Script_UniRangeRec ta_telu_uniranges[] =
558 TA_UNIRANGE_REC(0x0C00, 0x0C7F), /* Telugu */
559 TA_UNIRANGE_REC( 0, 0)
562 const TA_Script_UniRangeRec ta_telu_nonbase_uniranges[] =
564 TA_UNIRANGE_REC(0x0C00, 0x0C00),
565 TA_UNIRANGE_REC(0x0C3E, 0x0C40),
566 TA_UNIRANGE_REC(0x0C46, 0x0C56),
567 TA_UNIRANGE_REC(0x0C62, 0x0C63),
568 TA_UNIRANGE_REC( 0, 0)
572 const TA_Script_UniRangeRec ta_thai_uniranges[] =
574 TA_UNIRANGE_REC(0x0E00, 0x0E7F), /* Thai */
575 TA_UNIRANGE_REC( 0, 0)
578 const TA_Script_UniRangeRec ta_thai_nonbase_uniranges[] =
580 TA_UNIRANGE_REC(0x0E31, 0x0E31),
581 TA_UNIRANGE_REC(0x0E34, 0x0E3A),
582 TA_UNIRANGE_REC(0x0E47, 0x0E4E),
583 TA_UNIRANGE_REC( 0, 0)
587 const TA_Script_UniRangeRec ta_none_uniranges[] =
589 TA_UNIRANGE_REC(0, 0)
592 const TA_Script_UniRangeRec ta_none_nonbase_uniranges[] =
594 TA_UNIRANGE_REC(0, 0)
597 /* end of taranges.c */