1 /***************************************************************************/
5 /* Auto-fitter Unicode script ranges (body). */
7 /* Copyright 2013-2015 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
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. */
16 /***************************************************************************/
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').
26 * Walk over all scripts (as listed in `afscript.h').
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.
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.
35 * - Next comes the default style, using the character ranges as defined
36 * below. This also assigns properties.
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
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. */
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 */
55 /* the `ta_xxxx_nonbase_uniranges' ranges must be strict subsets */
56 /* of the corresponding `ta_xxxx_uniranges' ranges */
59 const AF_Script_UniRangeRec af_arab_uniranges
[] =
61 AF_UNIRANGE_REC( 0x0600UL
, 0x06FFUL
), /* Arabic */
62 AF_UNIRANGE_REC( 0x0750UL
, 0x07FFUL
), /* Arabic Supplement */
63 AF_UNIRANGE_REC( 0x08A0UL
, 0x08FFUL
), /* Arabic Extended-A */
64 AF_UNIRANGE_REC( 0xFB50UL
, 0xFDFFUL
), /* Arabic Presentation Forms-A */
65 AF_UNIRANGE_REC( 0xFE70UL
, 0xFEFFUL
), /* Arabic Presentation Forms-B */
66 AF_UNIRANGE_REC( 0x1EE00UL
, 0x1EEFFUL
), /* Arabic Mathematical Alphabetic Symbols */
67 AF_UNIRANGE_REC( 0UL, 0UL )
70 const AF_Script_UniRangeRec af_arab_nonbase_uniranges
[] =
72 AF_UNIRANGE_REC( 0x0600UL
, 0x0605UL
),
73 AF_UNIRANGE_REC( 0x0610UL
, 0x061AUL
),
74 AF_UNIRANGE_REC( 0x064BUL
, 0x065FUL
),
75 AF_UNIRANGE_REC( 0x0670UL
, 0x0670UL
),
76 AF_UNIRANGE_REC( 0x06D6UL
, 0x06DCUL
),
77 AF_UNIRANGE_REC( 0x06DFUL
, 0x06E4UL
),
78 AF_UNIRANGE_REC( 0x06E7UL
, 0x06E8UL
),
79 AF_UNIRANGE_REC( 0x06EAUL
, 0x06EDUL
),
80 AF_UNIRANGE_REC( 0x08E3UL
, 0x08FFUL
),
81 AF_UNIRANGE_REC( 0xFBB2UL
, 0xFBC1UL
),
82 AF_UNIRANGE_REC( 0xFE70UL
, 0xFE70UL
),
83 AF_UNIRANGE_REC( 0xFE72UL
, 0xFE72UL
),
84 AF_UNIRANGE_REC( 0xFE74UL
, 0xFE74UL
),
85 AF_UNIRANGE_REC( 0xFE76UL
, 0xFE76UL
),
86 AF_UNIRANGE_REC( 0xFE78UL
, 0xFE78UL
),
87 AF_UNIRANGE_REC( 0xFE7AUL
, 0xFE7AUL
),
88 AF_UNIRANGE_REC( 0xFE7CUL
, 0xFE7CUL
),
89 AF_UNIRANGE_REC( 0xFE7EUL
, 0xFE7EUL
),
90 AF_UNIRANGE_REC( 0UL, 0UL )
94 const AF_Script_UniRangeRec af_cyrl_uniranges
[] =
96 AF_UNIRANGE_REC( 0x0400UL
, 0x04FFUL
), /* Cyrillic */
97 AF_UNIRANGE_REC( 0x0500UL
, 0x052FUL
), /* Cyrillic Supplement */
98 AF_UNIRANGE_REC( 0x2DE0UL
, 0x2DFFUL
), /* Cyrillic Extended-A */
99 AF_UNIRANGE_REC( 0xA640UL
, 0xA69FUL
), /* Cyrillic Extended-B */
100 AF_UNIRANGE_REC( 0UL, 0UL )
103 const AF_Script_UniRangeRec af_cyrl_nonbase_uniranges
[] =
105 AF_UNIRANGE_REC( 0x0483UL
, 0x0489UL
),
106 AF_UNIRANGE_REC( 0x2DE0UL
, 0x2DFFUL
),
107 AF_UNIRANGE_REC( 0xA66FUL
, 0xA67FUL
),
108 AF_UNIRANGE_REC( 0xA69EUL
, 0xA69FUL
),
109 AF_UNIRANGE_REC( 0UL, 0UL )
113 /* There are some characters in the Devanagari Unicode block that are */
114 /* generic to Indic scripts; we omit them so that their presence doesn't */
115 /* trigger Devanagari. */
117 const AF_Script_UniRangeRec af_deva_uniranges
[] =
119 AF_UNIRANGE_REC( 0x0900UL
, 0x093BUL
), /* Devanagari */
120 /* omitting U+093C nukta */
121 AF_UNIRANGE_REC( 0x093DUL
, 0x0950UL
), /* ... continued */
122 /* omitting U+0951 udatta, U+0952 anudatta */
123 AF_UNIRANGE_REC( 0x0953UL
, 0x0963UL
), /* ... continued */
124 /* omitting U+0964 danda, U+0965 double danda */
125 AF_UNIRANGE_REC( 0x0966UL
, 0x097FUL
), /* ... continued */
126 AF_UNIRANGE_REC( 0x20B9UL
, 0x20B9UL
), /* (new) Rupee sign */
127 AF_UNIRANGE_REC( 0xA8E0UL
, 0xA8FFUL
), /* Devanagari Extended */
128 AF_UNIRANGE_REC( 0UL, 0UL )
131 const AF_Script_UniRangeRec af_deva_nonbase_uniranges
[] =
133 AF_UNIRANGE_REC( 0x0900UL
, 0x0902UL
),
134 AF_UNIRANGE_REC( 0x093AUL
, 0x093AUL
),
135 AF_UNIRANGE_REC( 0x0941UL
, 0x0948UL
),
136 AF_UNIRANGE_REC( 0x094DUL
, 0x094DUL
),
137 AF_UNIRANGE_REC( 0x0953UL
, 0x0957UL
),
138 AF_UNIRANGE_REC( 0x0962UL
, 0x0963UL
),
139 AF_UNIRANGE_REC( 0xA8E0UL
, 0xA8F1UL
),
140 AF_UNIRANGE_REC( 0UL, 0UL )
144 const AF_Script_UniRangeRec af_grek_uniranges
[] =
146 AF_UNIRANGE_REC( 0x0370UL
, 0x03FFUL
), /* Greek and Coptic */
147 AF_UNIRANGE_REC( 0x1F00UL
, 0x1FFFUL
), /* Greek Extended */
148 AF_UNIRANGE_REC( 0UL, 0UL )
151 const AF_Script_UniRangeRec af_grek_nonbase_uniranges
[] =
153 AF_UNIRANGE_REC( 0x037AUL
, 0x037AUL
),
154 AF_UNIRANGE_REC( 0x0384UL
, 0x0385UL
),
155 AF_UNIRANGE_REC( 0x1FBDUL
, 0x1FC1UL
),
156 AF_UNIRANGE_REC( 0x1FCDUL
, 0x1FCFUL
),
157 AF_UNIRANGE_REC( 0x1FDDUL
, 0x1FDFUL
),
158 AF_UNIRANGE_REC( 0x1FEDUL
, 0x1FEFUL
),
159 AF_UNIRANGE_REC( 0x1FFDUL
, 0x1FFEUL
),
160 AF_UNIRANGE_REC( 0UL, 0UL )
164 const AF_Script_UniRangeRec af_hebr_uniranges
[] =
166 AF_UNIRANGE_REC( 0x0590UL
, 0x05FFUL
), /* Hebrew */
167 AF_UNIRANGE_REC( 0xFB1DUL
, 0xFB4FUL
), /* Alphab. Present. Forms (Hebrew) */
168 AF_UNIRANGE_REC( 0UL, 0UL )
171 const AF_Script_UniRangeRec af_hebr_nonbase_uniranges
[] =
173 AF_UNIRANGE_REC( 0x0591UL
, 0x05BFUL
),
174 AF_UNIRANGE_REC( 0x05C1UL
, 0x05C2UL
),
175 AF_UNIRANGE_REC( 0x05C4UL
, 0x05C5UL
),
176 AF_UNIRANGE_REC( 0x05C7UL
, 0x05C7UL
),
177 AF_UNIRANGE_REC( 0xFB1EUL
, 0xFB1EUL
),
178 AF_UNIRANGE_REC( 0UL, 0UL )
182 const AF_Script_UniRangeRec af_lao_uniranges
[] =
184 AF_UNIRANGE_REC( 0x0E80UL
, 0x0EFFUL
), /* Lao */
185 AF_UNIRANGE_REC( 0UL, 0UL )
188 const AF_Script_UniRangeRec af_lao_nonbase_uniranges
[] =
190 AF_UNIRANGE_REC( 0x0EB1UL
, 0x0EB1UL
),
191 AF_UNIRANGE_REC( 0x0EB4UL
, 0x0EBCUL
),
192 AF_UNIRANGE_REC( 0x0EC8UL
, 0x0ECDUL
),
193 AF_UNIRANGE_REC( 0UL, 0UL )
197 const AF_Script_UniRangeRec af_latn_uniranges
[] =
199 AF_UNIRANGE_REC( 0x0020UL
, 0x007FUL
), /* Basic Latin (no control chars) */
200 AF_UNIRANGE_REC( 0x00A0UL
, 0x00A9UL
), /* Latin-1 Supplement (no control chars) */
201 AF_UNIRANGE_REC( 0x00ABUL
, 0x00B1UL
), /* ... continued */
202 AF_UNIRANGE_REC( 0x00B4UL
, 0x00B8UL
), /* ... continued */
203 AF_UNIRANGE_REC( 0x00BBUL
, 0x00FFUL
), /* ... continued */
204 AF_UNIRANGE_REC( 0x0100UL
, 0x017FUL
), /* Latin Extended-A */
205 AF_UNIRANGE_REC( 0x0180UL
, 0x024FUL
), /* Latin Extended-B */
206 AF_UNIRANGE_REC( 0x0250UL
, 0x02AFUL
), /* IPA Extensions */
207 AF_UNIRANGE_REC( 0x02B9UL
, 0x02DFUL
), /* Spacing Modifier Letters */
208 AF_UNIRANGE_REC( 0x02E5UL
, 0x02FFUL
), /* ... continued */
209 AF_UNIRANGE_REC( 0x0300UL
, 0x036FUL
), /* Combining Diacritical Marks */
210 AF_UNIRANGE_REC( 0x1AB0UL
, 0x1ABEUL
), /* Combining Diacritical Marks Extended */
211 AF_UNIRANGE_REC( 0x1D00UL
, 0x1D2BUL
), /* Phonetic Extensions */
212 AF_UNIRANGE_REC( 0x1D6BUL
, 0x1D77UL
), /* ... continued */
213 AF_UNIRANGE_REC( 0x1D79UL
, 0x1D7FUL
), /* ... continued */
214 AF_UNIRANGE_REC( 0x1D80UL
, 0x1D9AUL
), /* Phonetic Extensions Supplement */
215 AF_UNIRANGE_REC( 0x1DC0UL
, 0x1DFFUL
), /* Combining Diacritical Marks Supplement */
216 AF_UNIRANGE_REC( 0x1E00UL
, 0x1EFFUL
), /* Latin Extended Additional */
217 AF_UNIRANGE_REC( 0x2000UL
, 0x206FUL
), /* General Punctuation */
218 AF_UNIRANGE_REC( 0x20A0UL
, 0x20B8UL
), /* Currency Symbols ... */
219 AF_UNIRANGE_REC( 0x20BAUL
, 0x20CFUL
), /* ... except new Rupee sign */
220 AF_UNIRANGE_REC( 0x2150UL
, 0x218FUL
), /* Number Forms */
221 AF_UNIRANGE_REC( 0x2C60UL
, 0x2C7BUL
), /* Latin Extended-C */
222 AF_UNIRANGE_REC( 0x2C7EUL
, 0x2C7FUL
), /* ... continued */
223 AF_UNIRANGE_REC( 0x2E00UL
, 0x2E7FUL
), /* Supplemental Punctuation */
224 AF_UNIRANGE_REC( 0xA720UL
, 0xA76FUL
), /* Latin Extended-D */
225 AF_UNIRANGE_REC( 0xA771UL
, 0xA7F7UL
), /* ... continued */
226 AF_UNIRANGE_REC( 0xA7FAUL
, 0xA7FFUL
), /* ... continued */
227 AF_UNIRANGE_REC( 0xAB30UL
, 0xAB5BUL
), /* Latin Extended-E */
228 AF_UNIRANGE_REC( 0xAB60UL
, 0xAB6FUL
), /* ... continued */
229 AF_UNIRANGE_REC( 0xFB00UL
, 0xFB06UL
), /* Alphab. Present. Forms (Latin Ligs) */
230 AF_UNIRANGE_REC( 0x1D400UL
, 0x1D7FFUL
), /* Mathematical Alphanumeric Symbols */
231 AF_UNIRANGE_REC( 0UL, 0UL )
234 const AF_Script_UniRangeRec af_latn_nonbase_uniranges
[] =
236 AF_UNIRANGE_REC( 0x005EUL
, 0x0060UL
),
237 AF_UNIRANGE_REC( 0x007EUL
, 0x007EUL
),
238 AF_UNIRANGE_REC( 0x00A8UL
, 0x00A9UL
),
239 AF_UNIRANGE_REC( 0x00AEUL
, 0x00B0UL
),
240 AF_UNIRANGE_REC( 0x00B4UL
, 0x00B4UL
),
241 AF_UNIRANGE_REC( 0x00B8UL
, 0x00B8UL
),
242 AF_UNIRANGE_REC( 0x00BCUL
, 0x00BEUL
),
243 AF_UNIRANGE_REC( 0x02B9UL
, 0x02DFUL
),
244 AF_UNIRANGE_REC( 0x02E5UL
, 0x02FFUL
),
245 AF_UNIRANGE_REC( 0x0300UL
, 0x036FUL
),
246 AF_UNIRANGE_REC( 0x1AB0UL
, 0x1ABEUL
),
247 AF_UNIRANGE_REC( 0x1DC0UL
, 0x1DFFUL
),
248 AF_UNIRANGE_REC( 0x2017UL
, 0x2017UL
),
249 AF_UNIRANGE_REC( 0x203EUL
, 0x203EUL
),
250 AF_UNIRANGE_REC( 0xA788UL
, 0xA788UL
),
251 AF_UNIRANGE_REC( 0xA7F8UL
, 0xA7FAUL
),
252 AF_UNIRANGE_REC( 0UL, 0UL )
256 const AF_Script_UniRangeRec af_latb_uniranges
[] =
258 AF_UNIRANGE_REC( 0x1D62UL
, 0x1D6AUL
), /* some small subscript letters */
259 AF_UNIRANGE_REC( 0x2080UL
, 0x209CUL
), /* subscript digits and letters */
260 AF_UNIRANGE_REC( 0x2C7CUL
, 0x2C7CUL
), /* latin subscript small letter j */
261 AF_UNIRANGE_REC( 0UL, 0UL )
264 const AF_Script_UniRangeRec af_latb_nonbase_uniranges
[] =
266 AF_UNIRANGE_REC( 0UL, 0UL )
270 const AF_Script_UniRangeRec af_latp_uniranges
[] =
272 AF_UNIRANGE_REC( 0x00AAUL
, 0x00AAUL
), /* feminine ordinal indicator */
273 AF_UNIRANGE_REC( 0x00B2UL
, 0x00B3UL
), /* superscript two and three */
274 AF_UNIRANGE_REC( 0x00B9UL
, 0x00BAUL
), /* superscript one, masc. ord. indic. */
275 AF_UNIRANGE_REC( 0x02B0UL
, 0x02B8UL
), /* some latin superscript mod. letters */
276 AF_UNIRANGE_REC( 0x02E0UL
, 0x02E4UL
), /* some IPA modifier letters */
277 AF_UNIRANGE_REC( 0x1D2CUL
, 0x1D61UL
), /* latin superscript modifier letters */
278 AF_UNIRANGE_REC( 0x1D78UL
, 0x1D78UL
), /* modifier letter cyrillic en */
279 AF_UNIRANGE_REC( 0x1D9BUL
, 0x1DBFUL
), /* more modifier letters */
280 AF_UNIRANGE_REC( 0x2070UL
, 0x207FUL
), /* superscript digits and letters */
281 AF_UNIRANGE_REC( 0x2C7DUL
, 0x2C7DUL
), /* modifier letter capital v */
282 AF_UNIRANGE_REC( 0xA770UL
, 0xA770UL
), /* modifier letter us */
283 AF_UNIRANGE_REC( 0xA7F8UL
, 0xA7F9UL
), /* more modifier letters */
284 AF_UNIRANGE_REC( 0xAB5CUL
, 0xAB5FUL
), /* more modifier letters */
285 AF_UNIRANGE_REC( 0UL, 0UL )
288 const AF_Script_UniRangeRec af_latp_nonbase_uniranges
[] =
290 AF_UNIRANGE_REC( 0UL, 0UL )
294 const AF_Script_UniRangeRec af_none_uniranges
[] =
296 AF_UNIRANGE_REC( 0UL, 0UL )
299 const AF_Script_UniRangeRec af_none_nonbase_uniranges
[] =
301 AF_UNIRANGE_REC( 0UL, 0UL )
305 const AF_Script_UniRangeRec af_telu_uniranges
[] =
307 AF_UNIRANGE_REC( 0x0C00UL
, 0x0C7FUL
), /* Telugu */
308 AF_UNIRANGE_REC( 0UL, 0UL )
311 const AF_Script_UniRangeRec af_telu_nonbase_uniranges
[] =
313 AF_UNIRANGE_REC( 0x0C00UL
, 0x0C00UL
),
314 AF_UNIRANGE_REC( 0x0C3EUL
, 0x0C40UL
),
315 AF_UNIRANGE_REC( 0x0C46UL
, 0x0C56UL
),
316 AF_UNIRANGE_REC( 0x0C62UL
, 0x0C63UL
),
317 AF_UNIRANGE_REC( 0UL, 0UL )
321 const AF_Script_UniRangeRec af_thai_uniranges
[] =
323 AF_UNIRANGE_REC( 0x0E00UL
, 0x0E7FUL
), /* Thai */
324 AF_UNIRANGE_REC( 0UL, 0UL )
327 const AF_Script_UniRangeRec af_thai_nonbase_uniranges
[] =
329 AF_UNIRANGE_REC( 0x0E31UL
, 0x0E31UL
),
330 AF_UNIRANGE_REC( 0x0E34UL
, 0x0E3AUL
),
331 AF_UNIRANGE_REC( 0x0E47UL
, 0x0E4EUL
),
332 AF_UNIRANGE_REC( 0UL, 0UL )
336 #ifdef AF_CONFIG_OPTION_INDIC
338 const AF_Script_UniRangeRec af_beng_uniranges
[] =
340 AF_UNIRANGE_REC( 0x0980UL
, 0x09FFUL
), /* Bengali */
341 AF_UNIRANGE_REC( 0UL, 0UL )
344 const AF_Script_UniRangeRec af_beng_nonbase_uniranges
[] =
346 AF_UNIRANGE_REC( 0x0981UL
, 0x0981UL
),
347 AF_UNIRANGE_REC( 0x09BCUL
, 0x09BCUL
),
348 AF_UNIRANGE_REC( 0x09C1UL
, 0x09C4UL
),
349 AF_UNIRANGE_REC( 0x09CDUL
, 0x09CDUL
),
350 AF_UNIRANGE_REC( 0x09E2UL
, 0x09E3UL
),
351 AF_UNIRANGE_REC( 0UL, 0UL )
355 const AF_Script_UniRangeRec af_gujr_uniranges
[] =
357 AF_UNIRANGE_REC( 0x0A80UL
, 0x0AFFUL
), /* Gujarati */
358 AF_UNIRANGE_REC( 0UL, 0UL )
361 const AF_Script_UniRangeRec af_gujr_nonbase_uniranges
[] =
363 AF_UNIRANGE_REC( 0x0A81UL
, 0x0A82UL
),
364 AF_UNIRANGE_REC( 0x0ABCUL
, 0x0ABCUL
),
365 AF_UNIRANGE_REC( 0x0AC1UL
, 0x0AC8UL
),
366 AF_UNIRANGE_REC( 0x0ACDUL
, 0x0ACDUL
),
367 AF_UNIRANGE_REC( 0x0AE2UL
, 0x0AE3UL
),
368 AF_UNIRANGE_REC( 0UL, 0UL )
372 const AF_Script_UniRangeRec af_guru_uniranges
[] =
374 AF_UNIRANGE_REC( 0x0A00UL
, 0x0A7FUL
), /* Gurmukhi */
375 AF_UNIRANGE_REC( 0UL, 0UL )
378 const AF_Script_UniRangeRec af_guru_nonbase_uniranges
[] =
380 AF_UNIRANGE_REC( 0x0A01UL
, 0x0A02UL
),
381 AF_UNIRANGE_REC( 0x0A3CUL
, 0x0A3EUL
),
382 AF_UNIRANGE_REC( 0x0A41UL
, 0x0A51UL
),
383 AF_UNIRANGE_REC( 0x0A70UL
, 0x0A71UL
),
384 AF_UNIRANGE_REC( 0x0A75UL
, 0x0A75UL
),
385 AF_UNIRANGE_REC( 0UL, 0UL )
389 const AF_Script_UniRangeRec af_knda_uniranges
[] =
391 AF_UNIRANGE_REC( 0x0C80UL
, 0x0CFFUL
), /* Kannada */
392 AF_UNIRANGE_REC( 0UL, 0UL )
395 const AF_Script_UniRangeRec af_knda_nonbase_uniranges
[] =
397 AF_UNIRANGE_REC( 0x0C81UL
, 0x0C81UL
),
398 AF_UNIRANGE_REC( 0x0CBCUL
, 0x0CBCUL
),
399 AF_UNIRANGE_REC( 0x0CBFUL
, 0x0CBFUL
),
400 AF_UNIRANGE_REC( 0x0CC6UL
, 0x0CC6UL
),
401 AF_UNIRANGE_REC( 0x0CCCUL
, 0x0CCDUL
),
402 AF_UNIRANGE_REC( 0x0CE2UL
, 0x0CE3UL
),
403 AF_UNIRANGE_REC( 0UL, 0UL )
407 const AF_Script_UniRangeRec af_limb_uniranges
[] =
409 AF_UNIRANGE_REC( 0x1900UL
, 0x194FUL
), /* Limbu */
410 AF_UNIRANGE_REC( 0UL, 0UL )
413 const AF_Script_UniRangeRec af_limb_nonbase_uniranges
[] =
415 AF_UNIRANGE_REC( 0x1920UL
, 0x1922UL
),
416 AF_UNIRANGE_REC( 0x1927UL
, 0x1934UL
),
417 AF_UNIRANGE_REC( 0x1937UL
, 0x193BUL
),
418 AF_UNIRANGE_REC( 0UL, 0UL )
422 const AF_Script_UniRangeRec af_mlym_uniranges
[] =
424 AF_UNIRANGE_REC( 0x0D00UL
, 0x0D7FUL
), /* Malayalam */
425 AF_UNIRANGE_REC( 0UL, 0UL )
428 const AF_Script_UniRangeRec af_mlym_nonbase_uniranges
[] =
430 AF_UNIRANGE_REC( 0x0D01UL
, 0x0D01UL
),
431 AF_UNIRANGE_REC( 0x0D4DUL
, 0x0D4EUL
),
432 AF_UNIRANGE_REC( 0x0D62UL
, 0x0D63UL
),
433 AF_UNIRANGE_REC( 0UL, 0UL )
437 const AF_Script_UniRangeRec af_orya_uniranges
[] =
439 AF_UNIRANGE_REC( 0x0B00UL
, 0x0B7FUL
), /* Oriya */
440 AF_UNIRANGE_REC( 0UL, 0UL )
443 const AF_Script_UniRangeRec af_orya_nonbase_uniranges
[] =
445 AF_UNIRANGE_REC( 0x0B01UL
, 0x0B02UL
),
446 AF_UNIRANGE_REC( 0x0B3CUL
, 0x0B3CUL
),
447 AF_UNIRANGE_REC( 0x0B3FUL
, 0x0B3FUL
),
448 AF_UNIRANGE_REC( 0x0B41UL
, 0x0B44UL
),
449 AF_UNIRANGE_REC( 0x0B4DUL
, 0x0B56UL
),
450 AF_UNIRANGE_REC( 0x0B62UL
, 0x0B63UL
),
451 AF_UNIRANGE_REC( 0UL, 0UL )
455 const AF_Script_UniRangeRec af_sinh_uniranges
[] =
457 AF_UNIRANGE_REC( 0x0D80UL
, 0x0DFFUL
), /* Sinhala */
458 AF_UNIRANGE_REC( 0UL, 0UL )
461 const AF_Script_UniRangeRec af_sinh_nonbase_uniranges
[] =
463 AF_UNIRANGE_REC( 0x0DCAUL
, 0x0DCAUL
),
464 AF_UNIRANGE_REC( 0x0DD2UL
, 0x0DD6UL
),
465 AF_UNIRANGE_REC( 0UL, 0UL )
469 const AF_Script_UniRangeRec af_sund_uniranges
[] =
471 AF_UNIRANGE_REC( 0x1B80UL
, 0x1BBFUL
), /* Sundanese */
472 AF_UNIRANGE_REC( 0x1CC0UL
, 0x1CCFUL
), /* Sundanese Supplement */
473 AF_UNIRANGE_REC( 0UL, 0UL )
476 const AF_Script_UniRangeRec af_sund_nonbase_uniranges
[] =
478 AF_UNIRANGE_REC( 0x1B80UL
, 0x1B82UL
),
479 AF_UNIRANGE_REC( 0x1BA1UL
, 0x1BADUL
),
480 AF_UNIRANGE_REC( 0UL, 0UL )
484 const AF_Script_UniRangeRec af_sylo_uniranges
[] =
486 AF_UNIRANGE_REC( 0xA800UL
, 0xA82FUL
), /* Syloti Nagri */
487 AF_UNIRANGE_REC( 0UL, 0UL )
490 const AF_Script_UniRangeRec af_sylo_nonbase_uniranges
[] =
492 AF_UNIRANGE_REC( 0xA802UL
, 0xA802UL
),
493 AF_UNIRANGE_REC( 0xA806UL
, 0xA806UL
),
494 AF_UNIRANGE_REC( 0xA80BUL
, 0xA80BUL
),
495 AF_UNIRANGE_REC( 0xA825UL
, 0xA826UL
),
496 AF_UNIRANGE_REC( 0UL, 0UL )
500 const AF_Script_UniRangeRec af_taml_uniranges
[] =
502 AF_UNIRANGE_REC( 0x0B80UL
, 0x0BFFUL
), /* Tamil */
503 AF_UNIRANGE_REC( 0UL, 0UL )
506 const AF_Script_UniRangeRec af_taml_nonbase_uniranges
[] =
508 AF_UNIRANGE_REC( 0x0B82UL
, 0x0B82UL
),
509 AF_UNIRANGE_REC( 0x0BC0UL
, 0x0BC2UL
),
510 AF_UNIRANGE_REC( 0x0BCDUL
, 0x0BCDUL
),
511 AF_UNIRANGE_REC( 0UL, 0UL )
515 const AF_Script_UniRangeRec af_tibt_uniranges
[] =
517 AF_UNIRANGE_REC( 0x0F00UL
, 0x0FFFUL
), /* Tibetan */
518 AF_UNIRANGE_REC( 0UL, 0UL )
521 const AF_Script_UniRangeRec af_tibt_nonbase_uniranges
[] =
523 AF_UNIRANGE_REC( 0x0F18UL
, 0x0F19UL
),
524 AF_UNIRANGE_REC( 0x0F35UL
, 0x0F35UL
),
525 AF_UNIRANGE_REC( 0x0F37UL
, 0x0F37UL
),
526 AF_UNIRANGE_REC( 0x0F39UL
, 0x0F39UL
),
527 AF_UNIRANGE_REC( 0x0F3EUL
, 0x0F3FUL
),
528 AF_UNIRANGE_REC( 0x0F71UL
, 0x0F7EUL
),
529 AF_UNIRANGE_REC( 0x0F80UL
, 0x0F84UL
),
530 AF_UNIRANGE_REC( 0x0F86UL
, 0x0F87UL
),
531 AF_UNIRANGE_REC( 0x0F8DUL
, 0x0FBCUL
),
532 AF_UNIRANGE_REC( 0UL, 0UL )
535 #endif /* !AF_CONFIG_OPTION_INDIC */
537 #ifdef AF_CONFIG_OPTION_CJK
539 /* this corresponds to Unicode 6.0 */
541 const AF_Script_UniRangeRec af_hani_uniranges
[] =
543 AF_UNIRANGE_REC( 0x1100UL
, 0x11FFUL
), /* Hangul Jamo */
544 AF_UNIRANGE_REC( 0x2E80UL
, 0x2EFFUL
), /* CJK Radicals Supplement */
545 AF_UNIRANGE_REC( 0x2F00UL
, 0x2FDFUL
), /* Kangxi Radicals */
546 AF_UNIRANGE_REC( 0x2FF0UL
, 0x2FFFUL
), /* Ideographic Description Characters */
547 AF_UNIRANGE_REC( 0x3000UL
, 0x303FUL
), /* CJK Symbols and Punctuation */
548 AF_UNIRANGE_REC( 0x3040UL
, 0x309FUL
), /* Hiragana */
549 AF_UNIRANGE_REC( 0x30A0UL
, 0x30FFUL
), /* Katakana */
550 AF_UNIRANGE_REC( 0x3100UL
, 0x312FUL
), /* Bopomofo */
551 AF_UNIRANGE_REC( 0x3130UL
, 0x318FUL
), /* Hangul Compatibility Jamo */
552 AF_UNIRANGE_REC( 0x3190UL
, 0x319FUL
), /* Kanbun */
553 AF_UNIRANGE_REC( 0x31A0UL
, 0x31BFUL
), /* Bopomofo Extended */
554 AF_UNIRANGE_REC( 0x31C0UL
, 0x31EFUL
), /* CJK Strokes */
555 AF_UNIRANGE_REC( 0x31F0UL
, 0x31FFUL
), /* Katakana Phonetic Extensions */
556 AF_UNIRANGE_REC( 0x3300UL
, 0x33FFUL
), /* CJK Compatibility */
557 AF_UNIRANGE_REC( 0x3400UL
, 0x4DBFUL
), /* CJK Unified Ideographs Extension A */
558 AF_UNIRANGE_REC( 0x4DC0UL
, 0x4DFFUL
), /* Yijing Hexagram Symbols */
559 AF_UNIRANGE_REC( 0x4E00UL
, 0x9FFFUL
), /* CJK Unified Ideographs */
560 AF_UNIRANGE_REC( 0xA960UL
, 0xA97FUL
), /* Hangul Jamo Extended-A */
561 AF_UNIRANGE_REC( 0xAC00UL
, 0xD7AFUL
), /* Hangul Syllables */
562 AF_UNIRANGE_REC( 0xD7B0UL
, 0xD7FFUL
), /* Hangul Jamo Extended-B */
563 AF_UNIRANGE_REC( 0xF900UL
, 0xFAFFUL
), /* CJK Compatibility Ideographs */
564 AF_UNIRANGE_REC( 0xFE10UL
, 0xFE1FUL
), /* Vertical forms */
565 AF_UNIRANGE_REC( 0xFE30UL
, 0xFE4FUL
), /* CJK Compatibility Forms */
566 AF_UNIRANGE_REC( 0xFF00UL
, 0xFFEFUL
), /* Halfwidth and Fullwidth Forms */
567 AF_UNIRANGE_REC( 0x1B000UL
, 0x1B0FFUL
), /* Kana Supplement */
568 AF_UNIRANGE_REC( 0x1D300UL
, 0x1D35FUL
), /* Tai Xuan Hing Symbols */
569 AF_UNIRANGE_REC( 0x20000UL
, 0x2A6DFUL
), /* CJK Unified Ideographs Extension B */
570 AF_UNIRANGE_REC( 0x2A700UL
, 0x2B73FUL
), /* CJK Unified Ideographs Extension C */
571 AF_UNIRANGE_REC( 0x2B740UL
, 0x2B81FUL
), /* CJK Unified Ideographs Extension D */
572 AF_UNIRANGE_REC( 0x2F800UL
, 0x2FA1FUL
), /* CJK Compatibility Ideographs Supplement */
573 AF_UNIRANGE_REC( 0UL, 0UL )
576 const AF_Script_UniRangeRec af_hani_nonbase_uniranges
[] =
578 AF_UNIRANGE_REC( 0x302AUL
, 0x302FUL
),
579 AF_UNIRANGE_REC( 0x3190UL
, 0x319FUL
),
580 AF_UNIRANGE_REC( 0UL, 0UL )
583 #endif /* !AF_CONFIG_OPTION_CJK */