Enable point deltas for composite glyphs.
[ttfautohint.git] / lib / ttfautohint-scripts.h
blobf6e22d7bb20319036ea7cf015ef570fbed3f7a3e
1 /* ttfautohint-scripts.h */
3 /*
4 * Copyright (C) 2013-2018 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 `afscript.h' (2013-Aug-05) from FreeType */
19 /* The following part can be included multiple times. */
20 /* Define `SCRIPT' as needed. */
24 * Add new scripts here. The first and second arguments are the
25 * script name in lowercase and uppercase, respectively, followed
26 * by a description string. Then comes the corresponding HarfBuzz
27 * script name tag, followed by the default characters (to derive
28 * the standard width of stems).
30 * Note that fallback scripts only have a default style, thus we
31 * use `HB_SCRIPT_INVALID' as the HarfBuzz script name tag for
32 * them.
35 SCRIPT(adlm, ADLM,
36 "Adlam",
37 HB_SCRIPT_ADLAM,
38 HINTING_BOTTOM_TO_TOP,
39 "\xF0\x9E\xA4\x8C \xF0\x9E\xA4\xAE") /* 𞤌 𞤮 */
41 SCRIPT(arab, ARAB,
42 "Arabic",
43 HB_SCRIPT_ARABIC,
44 HINTING_BOTTOM_TO_TOP,
45 "\xD9\x84 \xD8\xAD \xD9\x80") /* ل ح ـ */
47 SCRIPT(armn, ARMN,
48 "Armenian",
49 HB_SCRIPT_ARMENIAN,
50 HINTING_BOTTOM_TO_TOP,
51 "\xD5\xBD \xD5\x8D") /* ս Ս */
53 SCRIPT(avst, AVST,
54 "Avestan",
55 HB_SCRIPT_AVESTAN,
56 HINTING_BOTTOM_TO_TOP,
57 "\xF0\x90\xAC\x9A") /* 𐬚 */
59 SCRIPT(bamu, BAMU,
60 "Bamum",
61 HB_SCRIPT_BAMUM,
62 HINTING_BOTTOM_TO_TOP,
63 "\xEA\x9B\x81 \xEA\x9B\xAF") /* ꛁ ꛯ */
65 /* there are no simple forms for letters; we thus use two digit shapes */
66 SCRIPT(beng, BENG,
67 "Bengali",
68 HB_SCRIPT_BENGALI,
69 HINTING_TOP_TO_BOTTOM,
70 "\xE0\xA7\xA6 \xE0\xA7\xAA") /* ০ ৪*/
72 SCRIPT(buhd, BUHD,
73 "Buhid",
74 HB_SCRIPT_BUHID,
75 HINTING_BOTTOM_TO_TOP,
76 "\xE1\x9D\x8B \xE1\x9D\x8F") /* ᝋ ᝏ */
78 SCRIPT(cakm, CAKM,
79 "Chakma",
80 HB_SCRIPT_CHAKMA,
81 HINTING_BOTTOM_TO_TOP,
82 "\xF0\x91\x84\xA4 \xF0\x91\x84\x89 \xF0\x91\x84\x9B") /* 𑄤 𑄉 𑄛 */
84 SCRIPT(cans, CANS,
85 "Canadian Syllabics",
86 HB_SCRIPT_CANADIAN_SYLLABICS,
87 HINTING_BOTTOM_TO_TOP,
88 "\xE1\x91\x8C \xE1\x93\x9A") /* ᑌ ᓚ */
90 SCRIPT(cari, CARI,
91 "Carian",
92 HB_SCRIPT_CARIAN,
93 HINTING_BOTTOM_TO_TOP,
94 "\xF0\x90\x8A\xAB \xF0\x90\x8B\x89") /* 𐊫 𐋉 */
96 SCRIPT(cher, CHER,
97 "Cherokee",
98 HB_SCRIPT_CHEROKEE,
99 HINTING_BOTTOM_TO_TOP,
100 "\xE1\x8E\xA4 \xE1\x8F\x85 \xEA\xAE\x95") /* Ꭴ Ꮕ ꮕ */
102 SCRIPT(copt, COPT,
103 "Coptic",
104 HB_SCRIPT_COPTIC,
105 HINTING_BOTTOM_TO_TOP,
106 "\xE2\xB2\x9E \xE2\xB2\x9F") /* Ⲟ ⲟ */
108 SCRIPT(cprt, CPRT,
109 "Cypriot",
110 HB_SCRIPT_CYPRIOT,
111 HINTING_BOTTOM_TO_TOP,
112 "\xF0\x90\xA0\x85 \xF0\x90\xA0\xA3") /* 𐠅 𐠣 */
114 SCRIPT(cyrl, CYRL,
115 "Cyrillic",
116 HB_SCRIPT_CYRILLIC,
117 HINTING_BOTTOM_TO_TOP,
118 "\xD0\xBE \xD0\x9E") /* о О */
120 SCRIPT(deva, DEVA,
121 "Devanagari",
122 HB_SCRIPT_DEVANAGARI,
123 HINTING_TOP_TO_BOTTOM,
124 "\xE0\xA4\xA0 \xE0\xA4\xB5 \xE0\xA4\x9F") /* ठ व ट */
126 SCRIPT(dsrt, DSRT,
127 "Deseret",
128 HB_SCRIPT_DESERET,
129 HINTING_BOTTOM_TO_TOP,
130 "\xF0\x90\x90\x84 \xF0\x90\x90\xAC") /* 𐐄 𐐬 */
132 SCRIPT(ethi, ETHI,
133 "Ethiopic",
134 HB_SCRIPT_ETHIOPIC,
135 HINTING_BOTTOM_TO_TOP,
136 "\xE1\x8B\x90") /* ዐ */
138 SCRIPT(geor, GEOR,
139 "Georgian (Mkhedruli)",
140 HB_SCRIPT_GEORGIAN,
141 HINTING_BOTTOM_TO_TOP,
142 "\xE1\x83\x98 \xE1\x83\x94 \xE1\x83\x90") /* ი ე ა */
144 SCRIPT(geok, GEOK,
145 "Georgian (Khutsuri)",
146 HB_SCRIPT_INVALID,
147 HINTING_BOTTOM_TO_TOP,
148 "\xE1\x82\xB6 \xE1\x82\xB1 \xE2\xB4\x99") /* Ⴖ Ⴑ ⴙ */
150 SCRIPT(glag, GLAG,
151 "Glagolitic",
152 HB_SCRIPT_GLAGOLITIC,
153 HINTING_BOTTOM_TO_TOP,
154 "\xE2\xB0\x95 \xE2\xB1\x85") /* Ⱅ ⱅ */
156 SCRIPT(goth, GOTH,
157 "Gothic",
158 HB_SCRIPT_GOTHIC,
159 HINTING_TOP_TO_BOTTOM,
160 "\xF0\x90\x8C\xB4 \xF0\x90\x8C\xBE \xF0\x90\x8D\x83") /* 𐌴 𐌾 𐍃 */
162 SCRIPT(grek, GREK,
163 "Greek",
164 HB_SCRIPT_GREEK,
165 HINTING_BOTTOM_TO_TOP,
166 "\xCE\xBF \xCE\x9F") /* ο Ο */
168 SCRIPT(gujr, GUJR,
169 "Gujarati",
170 HB_SCRIPT_GUJARATI,
171 HINTING_BOTTOM_TO_TOP,
172 "\xE0\xAA\x9F \xE0\xAB\xA6") /* ટ ૦ */
174 SCRIPT(guru, GURU,
175 "Gurmukhi",
176 HB_SCRIPT_GURMUKHI,
177 HINTING_TOP_TO_BOTTOM,
178 "\xE0\xA8\xA0 \xE0\xA8\xB0 \xE0\xA9\xA6") /* ਠ ਰ ੦*/
180 SCRIPT(hebr, HEBR,
181 "Hebrew",
182 HB_SCRIPT_HEBREW,
183 HINTING_BOTTOM_TO_TOP,
184 "\xD7\x9D") /* ם */
186 SCRIPT(kali, KALI,
187 "Kayah Li",
188 HB_SCRIPT_KAYAH_LI,
189 HINTING_BOTTOM_TO_TOP,
190 "\xEA\xA4\x8D \xEA\xA4\x80") /* ꤍ ꤀ */
192 /* only digit zero has a simple shape in the Khmer script */
193 SCRIPT(khmr, KHMR,
194 "Khmer",
195 HB_SCRIPT_KHMER,
196 HINTING_BOTTOM_TO_TOP,
197 "\xE1\x9F\xA0") /* ០ */
199 SCRIPT(khms, KHMS,
200 "Khmer Symbols",
201 HB_SCRIPT_INVALID,
202 HINTING_BOTTOM_TO_TOP,
203 "\xE1\xA7\xA1 \xE1\xA7\xAA") /* ᧡ ᧪ */
205 SCRIPT(knda, KNDA,
206 "Kannada",
207 HB_SCRIPT_KANNADA,
208 HINTING_BOTTOM_TO_TOP,
209 "\xE0\xB3\xA6 \xE0\xB2\xAC") /* ೦ ಬ */
211 /* only digit zero has a simple shape in the Lao script */
212 SCRIPT(lao, LAO,
213 "Lao",
214 HB_SCRIPT_LAO,
215 HINTING_BOTTOM_TO_TOP,
216 "\xE0\xBB\x90") /* ໐ */
218 SCRIPT(latn, LATN,
219 "Latin",
220 HB_SCRIPT_LATIN,
221 HINTING_BOTTOM_TO_TOP,
222 "o O 0")
224 SCRIPT(latb, LATB,
225 "Latin Subscript Fallback",
226 HB_SCRIPT_INVALID,
227 HINTING_BOTTOM_TO_TOP,
228 "\xE2\x82\x92 \xE2\x82\x80") /* ₒ ₀ */
230 SCRIPT(latp, LATP,
231 "Latin Superscript Fallback",
232 HB_SCRIPT_INVALID,
233 HINTING_BOTTOM_TO_TOP,
234 "\xE1\xB5\x92 \xE1\xB4\xBC \xE2\x81\xB0") /* ᵒ ᴼ ⁰ */
236 SCRIPT(lisu, LISU,
237 "Lisu",
238 HB_SCRIPT_LISU,
239 HINTING_BOTTOM_TO_TOP,
240 "\xEA\x93\xB3") /* ꓳ */
242 SCRIPT(mlym, MLYM,
243 "Malayalam",
244 HB_SCRIPT_MALAYALAM,
245 HINTING_BOTTOM_TO_TOP,
246 "\xE0\xB4\xA0 \xE0\xB4\xB1") /* ഠ റ */
248 SCRIPT(mymr, MYMR,
249 "Myanmar",
250 HB_SCRIPT_MYANMAR,
251 HINTING_BOTTOM_TO_TOP,
252 "\xE1\x80\x9D \xE1\x80\x84 \xE1\x80\x82") /* ဝ င ဂ */
254 SCRIPT(nkoo, NKOO,
255 "N'Ko",
256 HB_SCRIPT_NKO,
257 HINTING_BOTTOM_TO_TOP,
258 "\xDF\x8B \xDF\x80") /* ߋ ߀ */
260 SCRIPT(olck, OLCK,
261 "Ol Chiki",
262 HB_SCRIPT_OL_CHIKI,
263 HINTING_BOTTOM_TO_TOP,
264 "\xE1\xB1\x9B") /* ᱛ */
266 SCRIPT(orkh, ORKH,
267 "Old Turkic",
268 HB_SCRIPT_OLD_TURKIC,
269 HINTING_BOTTOM_TO_TOP,
270 "\xF0\x90\xB0\x97") /* 𐰗 */
272 SCRIPT(osge, OSGE,
273 "Osage",
274 HB_SCRIPT_OSAGE,
275 HINTING_BOTTOM_TO_TOP,
276 "\xF0\x90\x93\x82 \xF0\x90\x93\xAA") /* 𐓂 𐓪 */
278 SCRIPT(osma, OSMA,
279 "Osmanya",
280 HB_SCRIPT_OSMANYA,
281 HINTING_BOTTOM_TO_TOP,
282 "\xF0\x90\x92\x86 \xF0\x90\x92\xA0") /* 𐒆 𐒠 */
284 SCRIPT(saur, SAUR,
285 "Saurashtra",
286 HB_SCRIPT_SAURASHTRA,
287 HINTING_BOTTOM_TO_TOP,
288 "\xEA\xA2\x9D \xEA\xA3\x90") /* ꢝ ꣐ */
290 SCRIPT(shaw, SHAW,
291 "Shavian",
292 HB_SCRIPT_SHAVIAN,
293 HINTING_BOTTOM_TO_TOP,
294 "\xF0\x90\x91\xB4") /* 𐑴 */
296 SCRIPT(sinh, SINH,
297 "Sinhala",
298 HB_SCRIPT_SINHALA,
299 HINTING_BOTTOM_TO_TOP,
300 "\xE0\xB6\xA7") /* ට */
302 /* only digit zero has a simple (round) shape in the Sundanese script */
303 SCRIPT(sund, SUND,
304 "Sundanese",
305 HB_SCRIPT_SUNDANESE,
306 HINTING_BOTTOM_TO_TOP,
307 "\xE1\xAE\xB0") /* ᮰ */
309 /* only digit zero has a simple (round) shape in the Tamil script */
310 SCRIPT(taml, TAML,
311 "Tamil",
312 HB_SCRIPT_TAMIL,
313 HINTING_BOTTOM_TO_TOP,
314 "\xE0\xAF\xA6") /* ௦ */
316 SCRIPT(tavt, TAVT,
317 "Tai Viet",
318 HB_SCRIPT_TAI_VIET,
319 HINTING_BOTTOM_TO_TOP,
320 "\xEA\xAA\x92 \xEA\xAA\xAB") /* ꪒ ꪫ */
322 /* there are no simple forms for letters; we thus use two digit shapes */
323 SCRIPT(telu, TELU,
324 "Telugu",
325 HB_SCRIPT_TELUGU,
326 HINTING_BOTTOM_TO_TOP,
327 "\xE0\xB1\xA6 \xE0\xB1\xA7") /* ౦ ౧ */
329 SCRIPT(tfng, TFNG,
330 "Tifinagh",
331 HB_SCRIPT_TIFINAGH,
332 HINTING_BOTTOM_TO_TOP,
333 "\xE2\xB5\x94") /* ⵔ */
335 SCRIPT(thai, THAI,
336 "Thai",
337 HB_SCRIPT_THAI,
338 HINTING_BOTTOM_TO_TOP,
339 "\xE0\xB8\xB2 \xE0\xB9\x85 \xE0\xB9\x90") /* า ๅ ๐ */
341 SCRIPT(vaii, VAII,
342 "Vai",
343 HB_SCRIPT_VAI,
344 HINTING_BOTTOM_TO_TOP,
345 "\xEA\x98\x93 \xEA\x96\x9C \xEA\x96\xB4") /* ꘓ ꖜ ꖴ */
347 SCRIPT(none, NONE,
348 "no script",
349 HB_SCRIPT_INVALID,
350 HINTING_BOTTOM_TO_TOP,
353 /* end of ttfautohint-scripts.h */