Fix OTS warning about `maxp.maxSizeOfInstructions`.
[ttfautohint.git] / lib / ttfautohint-scripts.h
blobce1ae73a677b7782286e659e20d08c141b5bb938
1 /* ttfautohint-scripts.h */
3 /*
4 * Copyright (C) 2013-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 `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 \xE1\xB2\xBF") /* ი ე ა Ი */
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(hmnp, HMNP,
187 "Nyiakeng Puachue Hmong",
188 HB_SCRIPT_NYIAKENG_PUACHUE_HMONG,
189 HINTING_BOTTOM_TO_TOP,
190 "\xef\xbf\xbd") /* 𞄨 */
192 SCRIPT(kali, KALI,
193 "Kayah Li",
194 HB_SCRIPT_KAYAH_LI,
195 HINTING_BOTTOM_TO_TOP,
196 "\xEA\xA4\x8D \xEA\xA4\x80") /* ꤍ ꤀ */
198 /* only digit zero has a simple shape in the Khmer script */
199 SCRIPT(khmr, KHMR,
200 "Khmer",
201 HB_SCRIPT_KHMER,
202 HINTING_BOTTOM_TO_TOP,
203 "\xE1\x9F\xA0") /* ០ */
205 SCRIPT(khms, KHMS,
206 "Khmer Symbols",
207 HB_SCRIPT_INVALID,
208 HINTING_BOTTOM_TO_TOP,
209 "\xE1\xA7\xA1 \xE1\xA7\xAA") /* ᧡ ᧪ */
211 SCRIPT(knda, KNDA,
212 "Kannada",
213 HB_SCRIPT_KANNADA,
214 HINTING_BOTTOM_TO_TOP,
215 "\xE0\xB3\xA6 \xE0\xB2\xAC") /* ೦ ಬ */
217 /* only digit zero has a simple shape in the Lao script */
218 SCRIPT(lao, LAO,
219 "Lao",
220 HB_SCRIPT_LAO,
221 HINTING_BOTTOM_TO_TOP,
222 "\xE0\xBB\x90") /* ໐ */
224 SCRIPT(latn, LATN,
225 "Latin",
226 HB_SCRIPT_LATIN,
227 HINTING_BOTTOM_TO_TOP,
228 "o O 0")
230 SCRIPT(latb, LATB,
231 "Latin Subscript Fallback",
232 HB_SCRIPT_INVALID,
233 HINTING_BOTTOM_TO_TOP,
234 "\xE2\x82\x92 \xE2\x82\x80") /* ₒ ₀ */
236 SCRIPT(latp, LATP,
237 "Latin Superscript Fallback",
238 HB_SCRIPT_INVALID,
239 HINTING_BOTTOM_TO_TOP,
240 "\xE1\xB5\x92 \xE1\xB4\xBC \xE2\x81\xB0") /* ᵒ ᴼ ⁰ */
242 SCRIPT(lisu, LISU,
243 "Lisu",
244 HB_SCRIPT_LISU,
245 HINTING_BOTTOM_TO_TOP,
246 "\xEA\x93\xB3") /* ꓳ */
248 SCRIPT(mlym, MLYM,
249 "Malayalam",
250 HB_SCRIPT_MALAYALAM,
251 HINTING_BOTTOM_TO_TOP,
252 "\xE0\xB4\xA0 \xE0\xB4\xB1") /* ഠ റ */
254 SCRIPT(medf, MEDF,
255 "Medefaidrin",
256 HB_SCRIPT_MEDEFAIDRIN,
257 HINTING_BOTTOM_TO_TOP,
258 "\xF0\x96\xB9\xA1 \xF0\x96\xB9\x9B \xF0\x96\xB9\xAF") /* 𖹡 𖹛 𖹯 */
260 SCRIPT(mong, MONG,
261 "Mongolian",
262 HB_SCRIPT_MONGOLIAN,
263 HINTING_TOP_TO_BOTTOM,
264 "\xE1\xA1\x82 \xE1\xA0\xAA") /* ᡂ ᠪ */
266 SCRIPT(mymr, MYMR,
267 "Myanmar",
268 HB_SCRIPT_MYANMAR,
269 HINTING_BOTTOM_TO_TOP,
270 "\xE1\x80\x9D \xE1\x80\x84 \xE1\x80\x82") /* ဝ င ဂ */
272 SCRIPT(nkoo, NKOO,
273 "N'Ko",
274 HB_SCRIPT_NKO,
275 HINTING_BOTTOM_TO_TOP,
276 "\xDF\x8B \xDF\x80") /* ߋ ߀ */
278 SCRIPT(olck, OLCK,
279 "Ol Chiki",
280 HB_SCRIPT_OL_CHIKI,
281 HINTING_BOTTOM_TO_TOP,
282 "\xE1\xB1\x9B") /* ᱛ */
284 SCRIPT(orkh, ORKH,
285 "Old Turkic",
286 HB_SCRIPT_OLD_TURKIC,
287 HINTING_BOTTOM_TO_TOP,
288 "\xF0\x90\xB0\x97") /* 𐰗 */
290 SCRIPT(osge, OSGE,
291 "Osage",
292 HB_SCRIPT_OSAGE,
293 HINTING_BOTTOM_TO_TOP,
294 "\xF0\x90\x93\x82 \xF0\x90\x93\xAA") /* 𐓂 𐓪 */
296 SCRIPT(osma, OSMA,
297 "Osmanya",
298 HB_SCRIPT_OSMANYA,
299 HINTING_BOTTOM_TO_TOP,
300 "\xF0\x90\x92\x86 \xF0\x90\x92\xA0") /* 𐒆 𐒠 */
302 SCRIPT(rohg, ROHG,
303 "Hanifi Rohingya",
304 HB_SCRIPT_HANIFI_ROHINGYA,
305 HINTING_BOTTOM_TO_TOP,
306 "\xF0\x90\xB4\xB0") /* 𐴰 */
308 SCRIPT(saur, SAUR,
309 "Saurashtra",
310 HB_SCRIPT_SAURASHTRA,
311 HINTING_BOTTOM_TO_TOP,
312 "\xEA\xA2\x9D \xEA\xA3\x90") /* ꢝ ꣐ */
314 SCRIPT(shaw, SHAW,
315 "Shavian",
316 HB_SCRIPT_SHAVIAN,
317 HINTING_BOTTOM_TO_TOP,
318 "\xF0\x90\x91\xB4") /* 𐑴 */
320 SCRIPT(sinh, SINH,
321 "Sinhala",
322 HB_SCRIPT_SINHALA,
323 HINTING_BOTTOM_TO_TOP,
324 "\xE0\xB6\xA7") /* ට */
326 /* only digit zero has a simple (round) shape in the Sundanese script */
327 SCRIPT(sund, SUND,
328 "Sundanese",
329 HB_SCRIPT_SUNDANESE,
330 HINTING_BOTTOM_TO_TOP,
331 "\xE1\xAE\xB0") /* ᮰ */
333 /* only digit zero has a simple (round) shape in the Tamil script */
334 SCRIPT(taml, TAML,
335 "Tamil",
336 HB_SCRIPT_TAMIL,
337 HINTING_BOTTOM_TO_TOP,
338 "\xE0\xAF\xA6") /* ௦ */
340 SCRIPT(tavt, TAVT,
341 "Tai Viet",
342 HB_SCRIPT_TAI_VIET,
343 HINTING_BOTTOM_TO_TOP,
344 "\xEA\xAA\x92 \xEA\xAA\xAB") /* ꪒ ꪫ */
346 /* there are no simple forms for letters; we thus use two digit shapes */
347 SCRIPT(telu, TELU,
348 "Telugu",
349 HB_SCRIPT_TELUGU,
350 HINTING_BOTTOM_TO_TOP,
351 "\xE0\xB1\xA6 \xE0\xB1\xA7") /* ౦ ౧ */
353 SCRIPT(tfng, TFNG,
354 "Tifinagh",
355 HB_SCRIPT_TIFINAGH,
356 HINTING_BOTTOM_TO_TOP,
357 "\xE2\xB5\x94") /* ⵔ */
359 SCRIPT(thai, THAI,
360 "Thai",
361 HB_SCRIPT_THAI,
362 HINTING_BOTTOM_TO_TOP,
363 "\xE0\xB8\xB2 \xE0\xB9\x85 \xE0\xB9\x90") /* า ๅ ๐ */
365 SCRIPT(vaii, VAII,
366 "Vai",
367 HB_SCRIPT_VAI,
368 HINTING_BOTTOM_TO_TOP,
369 "\xEA\x98\x93 \xEA\x96\x9C \xEA\x96\xB4") /* ꘓ ꖜ ꖴ */
371 SCRIPT(yezi, YEZI,
372 "Yezidi",
373 HB_SCRIPT_YEZIDI,
374 HINTING_BOTTOM_TO_TOP,
375 "\xf0\x90\xba\x8b \xf0\x90\xba\xa6") /* 𐺋 𐺦 */
377 SCRIPT(none, NONE,
378 "no script",
379 HB_SCRIPT_INVALID,
380 HINTING_BOTTOM_TO_TOP,
383 /* end of ttfautohint-scripts.h */