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