| 1 | /***************************************************************************/ |
| 2 | /* */ |
| 3 | /* afscript.h */ |
| 4 | /* */ |
| 5 | /* Auto-fitter scripts (specification only). */ |
| 6 | /* */ |
| 7 | /* Copyright 2013-2018 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( mymr, MYMR, |
| 247 | "Myanmar" , |
| 248 | HB_SCRIPT_MYANMAR, |
| 249 | HINTING_BOTTOM_TO_TOP, |
| 250 | "\xE1\x80\x9D \xE1\x80\x84 \xE1\x80\x82" ) /* ဝ င ဂ */ |
| 251 | |
| 252 | SCRIPT( nkoo, NKOO, |
| 253 | "N'Ko" , |
| 254 | HB_SCRIPT_NKO, |
| 255 | HINTING_BOTTOM_TO_TOP, |
| 256 | "\xDF\x8B \xDF\x80" ) /* ߋ ߀ */ |
| 257 | |
| 258 | SCRIPT( none, NONE, |
| 259 | "no script" , |
| 260 | HB_SCRIPT_INVALID, |
| 261 | HINTING_BOTTOM_TO_TOP, |
| 262 | "" ) |
| 263 | |
| 264 | SCRIPT( olck, OLCK, |
| 265 | "Ol Chiki" , |
| 266 | HB_SCRIPT_OL_CHIKI, |
| 267 | HINTING_BOTTOM_TO_TOP, |
| 268 | "\xE1\xB1\x9B" ) /* ᱛ */ |
| 269 | |
| 270 | SCRIPT( orkh, ORKH, |
| 271 | "Old Turkic" , |
| 272 | HB_SCRIPT_OLD_TURKIC, |
| 273 | HINTING_BOTTOM_TO_TOP, |
| 274 | "\xF0\x90\xB0\x97" ) /* 𐰗 */ |
| 275 | |
| 276 | SCRIPT( osge, OSGE, |
| 277 | "Osage" , |
| 278 | HB_SCRIPT_OSAGE, |
| 279 | HINTING_BOTTOM_TO_TOP, |
| 280 | "\xF0\x90\x93\x82 \xF0\x90\x93\xAA" ) /* 𐓂 𐓪 */ |
| 281 | |
| 282 | SCRIPT( osma, OSMA, |
| 283 | "Osmanya" , |
| 284 | HB_SCRIPT_OSMANYA, |
| 285 | HINTING_BOTTOM_TO_TOP, |
| 286 | "\xF0\x90\x92\x86 \xF0\x90\x92\xA0" ) /* 𐒆 𐒠 */ |
| 287 | |
| 288 | SCRIPT( saur, SAUR, |
| 289 | "Saurashtra" , |
| 290 | HB_SCRIPT_SAURASHTRA, |
| 291 | HINTING_BOTTOM_TO_TOP, |
| 292 | "\xEA\xA2\x9D \xEA\xA3\x90" ) /* ꢝ ꣐ */ |
| 293 | |
| 294 | SCRIPT( shaw, SHAW, |
| 295 | "Shavian" , |
| 296 | HB_SCRIPT_SHAVIAN, |
| 297 | HINTING_BOTTOM_TO_TOP, |
| 298 | "\xF0\x90\x91\xB4" ) /* 𐑴 */ |
| 299 | |
| 300 | SCRIPT( sinh, SINH, |
| 301 | "Sinhala" , |
| 302 | HB_SCRIPT_SINHALA, |
| 303 | HINTING_BOTTOM_TO_TOP, |
| 304 | "\xE0\xB6\xA7" ) /* ට */ |
| 305 | |
| 306 | /* only digit zero has a simple (round) shape in the Sundanese script */ |
| 307 | SCRIPT( sund, SUND, |
| 308 | "Sundanese" , |
| 309 | HB_SCRIPT_SUNDANESE, |
| 310 | HINTING_BOTTOM_TO_TOP, |
| 311 | "\xE1\xAE\xB0" ) /* ᮰ */ |
| 312 | |
| 313 | /* only digit zero has a simple (round) shape in the Tamil script */ |
| 314 | SCRIPT( taml, TAML, |
| 315 | "Tamil" , |
| 316 | HB_SCRIPT_TAMIL, |
| 317 | HINTING_BOTTOM_TO_TOP, |
| 318 | "\xE0\xAF\xA6" ) /* ௦ */ |
| 319 | |
| 320 | SCRIPT( tavt, TAVT, |
| 321 | "Tai Viet" , |
| 322 | HB_SCRIPT_TAI_VIET, |
| 323 | HINTING_BOTTOM_TO_TOP, |
| 324 | "\xEA\xAA\x92 \xEA\xAA\xAB" ) /* ꪒ ꪫ */ |
| 325 | |
| 326 | /* there are no simple forms for letters; we thus use two digit shapes */ |
| 327 | SCRIPT( telu, TELU, |
| 328 | "Telugu" , |
| 329 | HB_SCRIPT_TELUGU, |
| 330 | HINTING_BOTTOM_TO_TOP, |
| 331 | "\xE0\xB1\xA6 \xE0\xB1\xA7" ) /* ౦ ౧ */ |
| 332 | |
| 333 | SCRIPT( tfng, TFNG, |
| 334 | "Tifinagh" , |
| 335 | HB_SCRIPT_TIFINAGH, |
| 336 | HINTING_BOTTOM_TO_TOP, |
| 337 | "\xE2\xB5\x94" ) /* ⵔ */ |
| 338 | |
| 339 | SCRIPT( thai, THAI, |
| 340 | "Thai" , |
| 341 | HB_SCRIPT_THAI, |
| 342 | HINTING_BOTTOM_TO_TOP, |
| 343 | "\xE0\xB8\xB2 \xE0\xB9\x85 \xE0\xB9\x90" ) /* า ๅ ๐ */ |
| 344 | |
| 345 | SCRIPT( vaii, VAII, |
| 346 | "Vai" , |
| 347 | HB_SCRIPT_VAI, |
| 348 | HINTING_BOTTOM_TO_TOP, |
| 349 | "\xEA\x98\x93 \xEA\x96\x9C \xEA\x96\xB4" ) /* ꘓ ꖜ ꖴ */ |
| 350 | |
| 351 | #ifdef AF_CONFIG_OPTION_INDIC |
| 352 | |
| 353 | SCRIPT( limb, LIMB, |
| 354 | "Limbu" , |
| 355 | HB_SCRIPT_LIMBU, |
| 356 | HINTING_BOTTOM_TO_TOP, |
| 357 | "o" ) /* XXX */ |
| 358 | |
| 359 | SCRIPT( orya, ORYA, |
| 360 | "Oriya" , |
| 361 | HB_SCRIPT_ORIYA, |
| 362 | HINTING_BOTTOM_TO_TOP, |
| 363 | "o" ) /* XXX */ |
| 364 | |
| 365 | SCRIPT( sylo, SYLO, |
| 366 | "Syloti Nagri" , |
| 367 | HB_SCRIPT_SYLOTI_NAGRI, |
| 368 | HINTING_BOTTOM_TO_TOP, |
| 369 | "o" ) /* XXX */ |
| 370 | |
| 371 | SCRIPT( tibt, TIBT, |
| 372 | "Tibetan" , |
| 373 | HB_SCRIPT_TIBETAN, |
| 374 | HINTING_BOTTOM_TO_TOP, |
| 375 | "o" ) /* XXX */ |
| 376 | |
| 377 | #endif /* AF_CONFIG_OPTION_INDIC */ |
| 378 | |
| 379 | #ifdef AF_CONFIG_OPTION_CJK |
| 380 | |
| 381 | SCRIPT( hani, HANI, |
| 382 | "CJKV ideographs" , |
| 383 | HB_SCRIPT_HAN, |
| 384 | HINTING_BOTTOM_TO_TOP, |
| 385 | "\xE7\x94\xB0 \xE5\x9B\x97" ) /* 田 囗 */ |
| 386 | |
| 387 | #endif /* AF_CONFIG_OPTION_CJK */ |
| 388 | |
| 389 | |
| 390 | /* END */ |
| 391 | |