1 /**************************************************************************** 2 * 3 * afscript.h 4 * 5 * Auto-fitter scripts (specification only). 6 * 7 * Copyright (C) 2013-2020 by 8 * David Turner, Robert Wilhelm, and Werner Lemberg. 9 * 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. 15 * 16 */ 17 18 19 /* The following part can be included multiple times. */ 20 /* Define `SCRIPT' as needed. */ 21 22 23 /* Add new scripts here. The first and second arguments are the */ 24 /* script name in lowercase and uppercase, respectively, followed */ 25 /* by a description string. Then comes the corresponding HarfBuzz */ 26 /* script name tag, followed by a string of standard characters (to */ 27 /* derive the standard width and height of stems). */ 28 /* */ 29 /* Note that fallback scripts only have a default style, thus we */ 30 /* use `HB_SCRIPT_INVALID' as the HarfBuzz script name tag for */ 31 /* them. */ 32 33 SCRIPT( adlm, ADLM, 34 "Adlam", 35 HB_SCRIPT_ADLAM, 36 HINTING_BOTTOM_TO_TOP, 37 "\xF0\x9E\xA4\x8C \xF0\x9E\xA4\xAE" ) /* */ 38 39 SCRIPT( arab, ARAB, 40 "Arabic", 41 HB_SCRIPT_ARABIC, 42 HINTING_BOTTOM_TO_TOP, 43 "\xD9\x84 \xD8\xAD \xD9\x80" ) /* ل ح ـ */ 44 45 SCRIPT( armn, ARMN, 46 "Armenian", 47 HB_SCRIPT_ARMENIAN, 48 HINTING_BOTTOM_TO_TOP, 49 "\xD5\xBD \xD5\x8D" ) /* ս Ս */ 50 51 SCRIPT( avst, AVST, 52 "Avestan", 53 HB_SCRIPT_AVESTAN, 54 HINTING_BOTTOM_TO_TOP, 55 "\xF0\x90\xAC\x9A" ) /* */ 56 57 SCRIPT( bamu, BAMU, 58 "Bamum", 59 HB_SCRIPT_BAMUM, 60 HINTING_BOTTOM_TO_TOP, 61 "\xEA\x9B\x81 \xEA\x9B\xAF" ) /* ꛁ ꛯ */ 62 63 /* there are no simple forms for letters; we thus use two digit shapes */ 64 SCRIPT( beng, BENG, 65 "Bengali", 66 HB_SCRIPT_BENGALI, 67 HINTING_TOP_TO_BOTTOM, 68 "\xE0\xA7\xA6 \xE0\xA7\xAA" ) /* ০ ৪ */ 69 70 SCRIPT( buhd, BUHD, 71 "Buhid", 72 HB_SCRIPT_BUHID, 73 HINTING_BOTTOM_TO_TOP, 74 "\xE1\x9D\x8B \xE1\x9D\x8F" ) /* ᝋ ᝏ */ 75 76 SCRIPT( cakm, CAKM, 77 "Chakma", 78 HB_SCRIPT_CHAKMA, 79 HINTING_BOTTOM_TO_TOP, 80 "\xF0\x91\x84\xA4 \xF0\x91\x84\x89 \xF0\x91\x84\x9B" ) /* */ 81 82 SCRIPT( cans, CANS, 83 "Canadian Syllabics", 84 HB_SCRIPT_CANADIAN_SYLLABICS, 85 HINTING_BOTTOM_TO_TOP, 86 "\xE1\x91\x8C \xE1\x93\x9A" ) /* ᑌ ᓚ */ 87 88 SCRIPT( cari, CARI, 89 "Carian", 90 HB_SCRIPT_CARIAN, 91 HINTING_BOTTOM_TO_TOP, 92 "\xF0\x90\x8A\xAB \xF0\x90\x8B\x89" ) /* */ 93 94 SCRIPT( cher, CHER, 95 "Cherokee", 96 HB_SCRIPT_CHEROKEE, 97 HINTING_BOTTOM_TO_TOP, 98 "\xE1\x8E\xA4 \xE1\x8F\x85 \xEA\xAE\x95" ) /* Ꭴ Ꮕ ꮕ */ 99 100 SCRIPT( copt, COPT, 101 "Coptic", 102 HB_SCRIPT_COPTIC, 103 HINTING_BOTTOM_TO_TOP, 104 "\xE2\xB2\x9E \xE2\xB2\x9F" ) /* Ⲟ ⲟ */ 105 106 SCRIPT( cprt, CPRT, 107 "Cypriot", 108 HB_SCRIPT_CYPRIOT, 109 HINTING_BOTTOM_TO_TOP, 110 "\xF0\x90\xA0\x85 \xF0\x90\xA0\xA3" ) /* */ 111 112 SCRIPT( cyrl, CYRL, 113 "Cyrillic", 114 HB_SCRIPT_CYRILLIC, 115 HINTING_BOTTOM_TO_TOP, 116 "\xD0\xBE \xD0\x9E" ) /* о О */ 117 118 SCRIPT( deva, DEVA, 119 "Devanagari", 120 HB_SCRIPT_DEVANAGARI, 121 HINTING_TOP_TO_BOTTOM, 122 "\xE0\xA4\xA0 \xE0\xA4\xB5 \xE0\xA4\x9F" ) /* ठ व ट */ 123 124 SCRIPT( dsrt, DSRT, 125 "Deseret", 126 HB_SCRIPT_DESERET, 127 HINTING_BOTTOM_TO_TOP, 128 "\xF0\x90\x90\x84 \xF0\x90\x90\xAC" ) /* */ 129 130 SCRIPT( ethi, ETHI, 131 "Ethiopic", 132 HB_SCRIPT_ETHIOPIC, 133 HINTING_BOTTOM_TO_TOP, 134 "\xE1\x8B\x90" ) /* ዐ */ 135 136 SCRIPT( geor, GEOR, 137 "Georgian (Mkhedruli)", 138 HB_SCRIPT_GEORGIAN, 139 HINTING_BOTTOM_TO_TOP, 140 "\xE1\x83\x98 \xE1\x83\x94 \xE1\x83\x90 \xE1\xB2\xBF" ) /* ი ე ა Ი */ 141 142 SCRIPT( geok, GEOK, 143 "Georgian (Khutsuri)", 144 HB_SCRIPT_INVALID, 145 HINTING_BOTTOM_TO_TOP, 146 "\xE1\x82\xB6 \xE1\x82\xB1 \xE2\xB4\x99" ) /* Ⴖ Ⴑ ⴙ */ 147 148 SCRIPT( glag, GLAG, 149 "Glagolitic", 150 HB_SCRIPT_GLAGOLITIC, 151 HINTING_BOTTOM_TO_TOP, 152 "\xE2\xB0\x95 \xE2\xB1\x85" ) /* Ⱅ ⱅ */ 153 154 SCRIPT( goth, GOTH, 155 "Gothic", 156 HB_SCRIPT_GOTHIC, 157 HINTING_TOP_TO_BOTTOM, 158 "\xF0\x90\x8C\xB4 \xF0\x90\x8C\xBE \xF0\x90\x8D\x83" ) /* */ 159 160 SCRIPT( grek, GREK, 161 "Greek", 162 HB_SCRIPT_GREEK, 163 HINTING_BOTTOM_TO_TOP, 164 "\xCE\xBF \xCE\x9F" ) /* ο Ο */ 165 166 SCRIPT( gujr, GUJR, 167 "Gujarati", 168 HB_SCRIPT_GUJARATI, 169 HINTING_BOTTOM_TO_TOP, 170 "\xE0\xAA\x9F \xE0\xAB\xA6" ) /* ટ ૦ */ 171 172 SCRIPT( guru, GURU, 173 "Gurmukhi", 174 HB_SCRIPT_GURMUKHI, 175 HINTING_TOP_TO_BOTTOM, 176 "\xE0\xA8\xA0 \xE0\xA8\xB0 \xE0\xA9\xA6" ) /* ਠ ਰ ੦ */ 177 178 SCRIPT( hebr, HEBR, 179 "Hebrew", 180 HB_SCRIPT_HEBREW, 181 HINTING_BOTTOM_TO_TOP, 182 "\xD7\x9D" ) /* ם */ 183 184 SCRIPT( kali, KALI, 185 "Kayah Li", 186 HB_SCRIPT_KAYAH_LI, 187 HINTING_BOTTOM_TO_TOP, 188 "\xEA\xA4\x8D \xEA\xA4\x80" ) /* ꤍ ꤀ */ 189 190 /* only digit zero has a simple shape in the Khmer script */ 191 SCRIPT( khmr, KHMR, 192 "Khmer", 193 HB_SCRIPT_KHMER, 194 HINTING_BOTTOM_TO_TOP, 195 "\xE1\x9F\xA0" ) /* ០ */ 196 197 SCRIPT( khms, KHMS, 198 "Khmer Symbols", 199 HB_SCRIPT_INVALID, 200 HINTING_BOTTOM_TO_TOP, 201 "\xE1\xA7\xA1 \xE1\xA7\xAA" ) /* ᧡ ᧪ */ 202 203 SCRIPT( knda, KNDA, 204 "Kannada", 205 HB_SCRIPT_KANNADA, 206 HINTING_BOTTOM_TO_TOP, 207 "\xE0\xB3\xA6 \xE0\xB2\xAC" ) /* ೦ ಬ */ 208 209 /* only digit zero has a simple shape in the Lao script */ 210 SCRIPT( lao, LAO, 211 "Lao", 212 HB_SCRIPT_LAO, 213 HINTING_BOTTOM_TO_TOP, 214 "\xE0\xBB\x90" ) /* ໐ */ 215 216 SCRIPT( latn, LATN, 217 "Latin", 218 HB_SCRIPT_LATIN, 219 HINTING_BOTTOM_TO_TOP, 220 "o O 0" ) 221 222 SCRIPT( latb, LATB, 223 "Latin Subscript Fallback", 224 HB_SCRIPT_INVALID, 225 HINTING_BOTTOM_TO_TOP, 226 "\xE2\x82\x92 \xE2\x82\x80" ) /* ₒ ₀ */ 227 228 SCRIPT( latp, LATP, 229 "Latin Superscript Fallback", 230 HB_SCRIPT_INVALID, 231 HINTING_BOTTOM_TO_TOP, 232 "\xE1\xB5\x92 \xE1\xB4\xBC \xE2\x81\xB0" ) /* ᵒ ᴼ ⁰ */ 233 234 SCRIPT( lisu, LISU, 235 "Lisu", 236 HB_SCRIPT_LISU, 237 HINTING_BOTTOM_TO_TOP, 238 "\xEA\x93\xB3" ) /* ꓳ */ 239 240 SCRIPT( mlym, MLYM, 241 "Malayalam", 242 HB_SCRIPT_MALAYALAM, 243 HINTING_BOTTOM_TO_TOP, 244 "\xE0\xB4\xA0 \xE0\xB4\xB1" ) /* ഠ റ */ 245 246 SCRIPT( medf, MEDF, 247 "Medefaidrin", 248 HB_SCRIPT_MEDEFAIDRIN, 249 HINTING_BOTTOM_TO_TOP, 250 "\xF0\x96\xB9\xA1 \xF0\x96\xB9\x9B \xF0\x96\xB9\xAF" ) /* */ 251 252 SCRIPT( mong, MONG, 253 "Mongolian", 254 HB_SCRIPT_MONGOLIAN, 255 HINTING_TOP_TO_BOTTOM, 256 "\xE1\xA1\x82 \xE1\xA0\xAA" ) /* ᡂ ᠪ */ 257 258 SCRIPT( mymr, MYMR, 259 "Myanmar", 260 HB_SCRIPT_MYANMAR, 261 HINTING_BOTTOM_TO_TOP, 262 "\xE1\x80\x9D \xE1\x80\x84 \xE1\x80\x82" ) /* ဝ င ဂ */ 263 264 SCRIPT( nkoo, NKOO, 265 "N'Ko", 266 HB_SCRIPT_NKO, 267 HINTING_BOTTOM_TO_TOP, 268 "\xDF\x8B \xDF\x80" ) /* ߋ ߀ */ 269 270 SCRIPT( none, NONE, 271 "no script", 272 HB_SCRIPT_INVALID, 273 HINTING_BOTTOM_TO_TOP, 274 "" ) 275 276 SCRIPT( olck, OLCK, 277 "Ol Chiki", 278 HB_SCRIPT_OL_CHIKI, 279 HINTING_BOTTOM_TO_TOP, 280 "\xE1\xB1\x9B" ) /* ᱛ */ 281 282 SCRIPT( orkh, ORKH, 283 "Old Turkic", 284 HB_SCRIPT_OLD_TURKIC, 285 HINTING_BOTTOM_TO_TOP, 286 "\xF0\x90\xB0\x97" ) /* */ 287 288 SCRIPT( osge, OSGE, 289 "Osage", 290 HB_SCRIPT_OSAGE, 291 HINTING_BOTTOM_TO_TOP, 292 "\xF0\x90\x93\x82 \xF0\x90\x93\xAA" ) /* */ 293 294 SCRIPT( osma, OSMA, 295 "Osmanya", 296 HB_SCRIPT_OSMANYA, 297 HINTING_BOTTOM_TO_TOP, 298 "\xF0\x90\x92\x86 \xF0\x90\x92\xA0" ) /* */ 299 300 SCRIPT( rohg, ROHG, 301 "Hanifi Rohingya", 302 HB_SCRIPT_HANIFI_ROHINGYA, 303 HINTING_BOTTOM_TO_TOP, 304 "\xF0\x90\xB4\xB0" ) /* */ 305 306 SCRIPT( saur, SAUR, 307 "Saurashtra", 308 HB_SCRIPT_SAURASHTRA, 309 HINTING_BOTTOM_TO_TOP, 310 "\xEA\xA2\x9D \xEA\xA3\x90" ) /* ꢝ ꣐ */ 311 312 SCRIPT( shaw, SHAW, 313 "Shavian", 314 HB_SCRIPT_SHAVIAN, 315 HINTING_BOTTOM_TO_TOP, 316 "\xF0\x90\x91\xB4" ) /* */ 317 318 SCRIPT( sinh, SINH, 319 "Sinhala", 320 HB_SCRIPT_SINHALA, 321 HINTING_BOTTOM_TO_TOP, 322 "\xE0\xB6\xA7" ) /* ට */ 323 324 /* only digit zero has a simple (round) shape in the Sundanese script */ 325 SCRIPT( sund, SUND, 326 "Sundanese", 327 HB_SCRIPT_SUNDANESE, 328 HINTING_BOTTOM_TO_TOP, 329 "\xE1\xAE\xB0" ) /* ᮰ */ 330 331 /* only digit zero has a simple (round) shape in the Tamil script */ 332 SCRIPT( taml, TAML, 333 "Tamil", 334 HB_SCRIPT_TAMIL, 335 HINTING_BOTTOM_TO_TOP, 336 "\xE0\xAF\xA6" ) /* ௦ */ 337 338 SCRIPT( tavt, TAVT, 339 "Tai Viet", 340 HB_SCRIPT_TAI_VIET, 341 HINTING_BOTTOM_TO_TOP, 342 "\xEA\xAA\x92 \xEA\xAA\xAB" ) /* ꪒ ꪫ */ 343 344 /* there are no simple forms for letters; we thus use two digit shapes */ 345 SCRIPT( telu, TELU, 346 "Telugu", 347 HB_SCRIPT_TELUGU, 348 HINTING_BOTTOM_TO_TOP, 349 "\xE0\xB1\xA6 \xE0\xB1\xA7" ) /* ౦ ౧ */ 350 351 SCRIPT( tfng, TFNG, 352 "Tifinagh", 353 HB_SCRIPT_TIFINAGH, 354 HINTING_BOTTOM_TO_TOP, 355 "\xE2\xB5\x94" ) /* ⵔ */ 356 357 SCRIPT( thai, THAI, 358 "Thai", 359 HB_SCRIPT_THAI, 360 HINTING_BOTTOM_TO_TOP, 361 "\xE0\xB8\xB2 \xE0\xB9\x85 \xE0\xB9\x90" ) /* า ๅ ๐ */ 362 363 SCRIPT( vaii, VAII, 364 "Vai", 365 HB_SCRIPT_VAI, 366 HINTING_BOTTOM_TO_TOP, 367 "\xEA\x98\x93 \xEA\x96\x9C \xEA\x96\xB4" ) /* ꘓ ꖜ ꖴ */ 368 369 #ifdef AF_CONFIG_OPTION_INDIC 370 371 SCRIPT( limb, LIMB, 372 "Limbu", 373 HB_SCRIPT_LIMBU, 374 HINTING_BOTTOM_TO_TOP, 375 "o" ) /* XXX */ 376 377 SCRIPT( orya, ORYA, 378 "Oriya", 379 HB_SCRIPT_ORIYA, 380 HINTING_BOTTOM_TO_TOP, 381 "o" ) /* XXX */ 382 383 SCRIPT( sylo, SYLO, 384 "Syloti Nagri", 385 HB_SCRIPT_SYLOTI_NAGRI, 386 HINTING_BOTTOM_TO_TOP, 387 "o" ) /* XXX */ 388 389 SCRIPT( tibt, TIBT, 390 "Tibetan", 391 HB_SCRIPT_TIBETAN, 392 HINTING_BOTTOM_TO_TOP, 393 "o" ) /* XXX */ 394 395 #endif /* AF_CONFIG_OPTION_INDIC */ 396 397 #ifdef AF_CONFIG_OPTION_CJK 398 399 SCRIPT( hani, HANI, 400 "CJKV ideographs", 401 HB_SCRIPT_HAN, 402 HINTING_BOTTOM_TO_TOP, 403 "\xE7\x94\xB0 \xE5\x9B\x97" ) /* 田 囗 */ 404 405 #endif /* AF_CONFIG_OPTION_CJK */ 406 407 408 /* END */ 409