tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

afscript.h (11464B)


      1 /****************************************************************************
      2 *
      3 * afscript.h
      4 *
      5 *   Auto-fitter scripts (specification only).
      6 *
      7 * Copyright (C) 2013-2025 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 */