tor-browser

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

uscript.h (29643B)


      1 // © 2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 /*
      4 **********************************************************************
      5 *   Copyright (C) 1997-2016, International Business Machines
      6 *   Corporation and others.  All Rights Reserved.
      7 **********************************************************************
      8 *
      9 * File USCRIPT.H
     10 *
     11 * Modification History:
     12 *
     13 *   Date        Name        Description
     14 *   07/06/2001    Ram         Creation.
     15 ******************************************************************************
     16 */
     17 
     18 #ifndef USCRIPT_H
     19 #define USCRIPT_H
     20 #include "unicode/utypes.h"
     21 
     22 /**
     23 * \file
     24 * \brief C API: Unicode Script Information
     25 */
     26 
     27 /**
     28 * Constants for ISO 15924 script codes.
     29 *
     30 * The current set of script code constants supports at least all scripts
     31 * that are encoded in the version of Unicode which ICU currently supports.
     32 * The names of the constants are usually derived from the
     33 * Unicode script property value aliases.
     34 * See UAX #24 Unicode Script Property (http://www.unicode.org/reports/tr24/)
     35 * and http://www.unicode.org/Public/UCD/latest/ucd/PropertyValueAliases.txt .
     36 *
     37 * In addition, constants for many ISO 15924 script codes
     38 * are included, for use with language tags, CLDR data, and similar.
     39 * Some of those codes are not used in the Unicode Character Database (UCD).
     40 * For example, there are no characters that have a UCD script property value of
     41 * Hans or Hant. All Han ideographs have the Hani script property value in Unicode.
     42 *
     43 * Private-use codes Qaaa..Qabx are not included, except as used in the UCD or in CLDR.
     44 *
     45 * Starting with ICU 55, script codes are only added when their scripts
     46 * have been or will certainly be encoded in Unicode,
     47 * and have been assigned Unicode script property value aliases,
     48 * to ensure that their script names are stable and match the names of the constants.
     49 * Script codes like Latf and Aran that are not subject to separate encoding
     50 * may be added at any time.
     51 *
     52 * @stable ICU 2.2
     53 */
     54 typedef enum UScriptCode {
     55    /*
     56     * Note: UScriptCode constants and their ISO script code comments
     57     * are parsed by preparseucd.py.
     58     * It matches lines like
     59     *     USCRIPT_<Unicode Script value name> = <integer>,  / * <ISO script code> * /
     60     */
     61 
     62      /** @stable ICU 2.2 */
     63      USCRIPT_INVALID_CODE = -1,
     64      /** @stable ICU 2.2 */
     65      USCRIPT_COMMON       =  0,  /* Zyyy */
     66      /** @stable ICU 2.2 */
     67      USCRIPT_INHERITED    =  1,  /* Zinh */ /* "Code for inherited script", for non-spacing combining marks; also Qaai */
     68      /** @stable ICU 2.2 */
     69      USCRIPT_ARABIC       =  2,  /* Arab */
     70      /** @stable ICU 2.2 */
     71      USCRIPT_ARMENIAN     =  3,  /* Armn */
     72      /** @stable ICU 2.2 */
     73      USCRIPT_BENGALI      =  4,  /* Beng */
     74      /** @stable ICU 2.2 */
     75      USCRIPT_BOPOMOFO     =  5,  /* Bopo */
     76      /** @stable ICU 2.2 */
     77      USCRIPT_CHEROKEE     =  6,  /* Cher */
     78      /** @stable ICU 2.2 */
     79      USCRIPT_COPTIC       =  7,  /* Copt */
     80      /** @stable ICU 2.2 */
     81      USCRIPT_CYRILLIC     =  8,  /* Cyrl */
     82      /** @stable ICU 2.2 */
     83      USCRIPT_DESERET      =  9,  /* Dsrt */
     84      /** @stable ICU 2.2 */
     85      USCRIPT_DEVANAGARI   = 10,  /* Deva */
     86      /** @stable ICU 2.2 */
     87      USCRIPT_ETHIOPIC     = 11,  /* Ethi */
     88      /** @stable ICU 2.2 */
     89      USCRIPT_GEORGIAN     = 12,  /* Geor */
     90      /** @stable ICU 2.2 */
     91      USCRIPT_GOTHIC       = 13,  /* Goth */
     92      /** @stable ICU 2.2 */
     93      USCRIPT_GREEK        = 14,  /* Grek */
     94      /** @stable ICU 2.2 */
     95      USCRIPT_GUJARATI     = 15,  /* Gujr */
     96      /** @stable ICU 2.2 */
     97      USCRIPT_GURMUKHI     = 16,  /* Guru */
     98      /** @stable ICU 2.2 */
     99      USCRIPT_HAN          = 17,  /* Hani */
    100      /** @stable ICU 2.2 */
    101      USCRIPT_HANGUL       = 18,  /* Hang */
    102      /** @stable ICU 2.2 */
    103      USCRIPT_HEBREW       = 19,  /* Hebr */
    104      /** @stable ICU 2.2 */
    105      USCRIPT_HIRAGANA     = 20,  /* Hira */
    106      /** @stable ICU 2.2 */
    107      USCRIPT_KANNADA      = 21,  /* Knda */
    108      /** @stable ICU 2.2 */
    109      USCRIPT_KATAKANA     = 22,  /* Kana */
    110      /** @stable ICU 2.2 */
    111      USCRIPT_KHMER        = 23,  /* Khmr */
    112      /** @stable ICU 2.2 */
    113      USCRIPT_LAO          = 24,  /* Laoo */
    114      /** @stable ICU 2.2 */
    115      USCRIPT_LATIN        = 25,  /* Latn */
    116      /** @stable ICU 2.2 */
    117      USCRIPT_MALAYALAM    = 26,  /* Mlym */
    118      /** @stable ICU 2.2 */
    119      USCRIPT_MONGOLIAN    = 27,  /* Mong */
    120      /** @stable ICU 2.2 */
    121      USCRIPT_MYANMAR      = 28,  /* Mymr */
    122      /** @stable ICU 2.2 */
    123      USCRIPT_OGHAM        = 29,  /* Ogam */
    124      /** @stable ICU 2.2 */
    125      USCRIPT_OLD_ITALIC   = 30,  /* Ital */
    126      /** @stable ICU 2.2 */
    127      USCRIPT_ORIYA        = 31,  /* Orya */
    128      /** @stable ICU 2.2 */
    129      USCRIPT_RUNIC        = 32,  /* Runr */
    130      /** @stable ICU 2.2 */
    131      USCRIPT_SINHALA      = 33,  /* Sinh */
    132      /** @stable ICU 2.2 */
    133      USCRIPT_SYRIAC       = 34,  /* Syrc */
    134      /** @stable ICU 2.2 */
    135      USCRIPT_TAMIL        = 35,  /* Taml */
    136      /** @stable ICU 2.2 */
    137      USCRIPT_TELUGU       = 36,  /* Telu */
    138      /** @stable ICU 2.2 */
    139      USCRIPT_THAANA       = 37,  /* Thaa */
    140      /** @stable ICU 2.2 */
    141      USCRIPT_THAI         = 38,  /* Thai */
    142      /** @stable ICU 2.2 */
    143      USCRIPT_TIBETAN      = 39,  /* Tibt */
    144      /** Canadian_Aboriginal script. @stable ICU 2.6 */
    145      USCRIPT_CANADIAN_ABORIGINAL = 40,  /* Cans */
    146      /** Canadian_Aboriginal script (alias). @stable ICU 2.2 */
    147      USCRIPT_UCAS         = USCRIPT_CANADIAN_ABORIGINAL,
    148      /** @stable ICU 2.2 */
    149      USCRIPT_YI           = 41,  /* Yiii */
    150      /* New scripts in Unicode 3.2 */
    151      /** @stable ICU 2.2 */
    152      USCRIPT_TAGALOG      = 42,  /* Tglg */
    153      /** @stable ICU 2.2 */
    154      USCRIPT_HANUNOO      = 43,  /* Hano */
    155      /** @stable ICU 2.2 */
    156      USCRIPT_BUHID        = 44,  /* Buhd */
    157      /** @stable ICU 2.2 */
    158      USCRIPT_TAGBANWA     = 45,  /* Tagb */
    159 
    160      /* New scripts in Unicode 4 */
    161      /** @stable ICU 2.6 */
    162      USCRIPT_BRAILLE      = 46,  /* Brai */
    163      /** @stable ICU 2.6 */
    164      USCRIPT_CYPRIOT      = 47,  /* Cprt */
    165      /** @stable ICU 2.6 */
    166      USCRIPT_LIMBU        = 48,  /* Limb */
    167      /** @stable ICU 2.6 */
    168      USCRIPT_LINEAR_B     = 49,  /* Linb */
    169      /** @stable ICU 2.6 */
    170      USCRIPT_OSMANYA      = 50,  /* Osma */
    171      /** @stable ICU 2.6 */
    172      USCRIPT_SHAVIAN      = 51,  /* Shaw */
    173      /** @stable ICU 2.6 */
    174      USCRIPT_TAI_LE       = 52,  /* Tale */
    175      /** @stable ICU 2.6 */
    176      USCRIPT_UGARITIC     = 53,  /* Ugar */
    177 
    178      /** New script code in Unicode 4.0.1 @stable ICU 3.0 */
    179      USCRIPT_KATAKANA_OR_HIRAGANA = 54,/*Hrkt */
    180 
    181      /* New scripts in Unicode 4.1 */
    182      /** @stable ICU 3.4 */
    183      USCRIPT_BUGINESE      = 55, /* Bugi */
    184      /** @stable ICU 3.4 */
    185      USCRIPT_GLAGOLITIC    = 56, /* Glag */
    186      /** @stable ICU 3.4 */
    187      USCRIPT_KHAROSHTHI    = 57, /* Khar */
    188      /** @stable ICU 3.4 */
    189      USCRIPT_SYLOTI_NAGRI  = 58, /* Sylo */
    190      /** @stable ICU 3.4 */
    191      USCRIPT_NEW_TAI_LUE   = 59, /* Talu */
    192      /** @stable ICU 3.4 */
    193      USCRIPT_TIFINAGH      = 60, /* Tfng */
    194      /** @stable ICU 3.4 */
    195      USCRIPT_OLD_PERSIAN   = 61, /* Xpeo */
    196 
    197      /* New script codes from Unicode and ISO 15924 */
    198      /** @stable ICU 3.6 */
    199      USCRIPT_BALINESE                      = 62, /* Bali */
    200      /** @stable ICU 3.6 */
    201      USCRIPT_BATAK                         = 63, /* Batk */
    202      /** @stable ICU 3.6 */
    203      USCRIPT_BLISSYMBOLS                   = 64, /* Blis */
    204      /** @stable ICU 3.6 */
    205      USCRIPT_BRAHMI                        = 65, /* Brah */
    206      /** @stable ICU 3.6 */
    207      USCRIPT_CHAM                          = 66, /* Cham */
    208      /** @stable ICU 3.6 */
    209      USCRIPT_CIRTH                         = 67, /* Cirt */
    210      /** @stable ICU 3.6 */
    211      USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC  = 68, /* Cyrs */
    212      /** @stable ICU 3.6 */
    213      USCRIPT_DEMOTIC_EGYPTIAN              = 69, /* Egyd */
    214      /** @stable ICU 3.6 */
    215      USCRIPT_HIERATIC_EGYPTIAN             = 70, /* Egyh */
    216      /** @stable ICU 3.6 */
    217      USCRIPT_EGYPTIAN_HIEROGLYPHS          = 71, /* Egyp */
    218      /** @stable ICU 3.6 */
    219      USCRIPT_KHUTSURI                      = 72, /* Geok */
    220      /** @stable ICU 3.6 */
    221      USCRIPT_SIMPLIFIED_HAN                = 73, /* Hans */
    222      /** @stable ICU 3.6 */
    223      USCRIPT_TRADITIONAL_HAN               = 74, /* Hant */
    224      /** @stable ICU 3.6 */
    225      USCRIPT_PAHAWH_HMONG                  = 75, /* Hmng */
    226      /** @stable ICU 3.6 */
    227      USCRIPT_OLD_HUNGARIAN                 = 76, /* Hung */
    228      /** @stable ICU 3.6 */
    229      USCRIPT_HARAPPAN_INDUS                = 77, /* Inds */
    230      /** @stable ICU 3.6 */
    231      USCRIPT_JAVANESE                      = 78, /* Java */
    232      /** @stable ICU 3.6 */
    233      USCRIPT_KAYAH_LI                      = 79, /* Kali */
    234      /** @stable ICU 3.6 */
    235      USCRIPT_LATIN_FRAKTUR                 = 80, /* Latf */
    236      /** @stable ICU 3.6 */
    237      USCRIPT_LATIN_GAELIC                  = 81, /* Latg */
    238      /** @stable ICU 3.6 */
    239      USCRIPT_LEPCHA                        = 82, /* Lepc */
    240      /** @stable ICU 3.6 */
    241      USCRIPT_LINEAR_A                      = 83, /* Lina */
    242      /** @stable ICU 4.6 */
    243      USCRIPT_MANDAIC                       = 84, /* Mand */
    244      /** @stable ICU 3.6 */
    245      USCRIPT_MANDAEAN                      = USCRIPT_MANDAIC,
    246      /** @stable ICU 3.6 */
    247      USCRIPT_MAYAN_HIEROGLYPHS             = 85, /* Maya */
    248      /** @stable ICU 4.6 */
    249      USCRIPT_MEROITIC_HIEROGLYPHS          = 86, /* Mero */
    250      /** @stable ICU 3.6 */
    251      USCRIPT_MEROITIC                      = USCRIPT_MEROITIC_HIEROGLYPHS,
    252      /** @stable ICU 3.6 */
    253      USCRIPT_NKO                           = 87, /* Nkoo */
    254      /** @stable ICU 3.6 */
    255      USCRIPT_ORKHON                        = 88, /* Orkh */
    256      /** @stable ICU 3.6 */
    257      USCRIPT_OLD_PERMIC                    = 89, /* Perm */
    258      /** @stable ICU 3.6 */
    259      USCRIPT_PHAGS_PA                      = 90, /* Phag */
    260      /** @stable ICU 3.6 */
    261      USCRIPT_PHOENICIAN                    = 91, /* Phnx */
    262      /** @stable ICU 52 */
    263      USCRIPT_MIAO                          = 92, /* Plrd */
    264      /** @stable ICU 3.6 */
    265      USCRIPT_PHONETIC_POLLARD              = USCRIPT_MIAO,
    266      /** @stable ICU 3.6 */
    267      USCRIPT_RONGORONGO                    = 93, /* Roro */
    268      /** @stable ICU 3.6 */
    269      USCRIPT_SARATI                        = 94, /* Sara */
    270      /** @stable ICU 3.6 */
    271      USCRIPT_ESTRANGELO_SYRIAC             = 95, /* Syre */
    272      /** @stable ICU 3.6 */
    273      USCRIPT_WESTERN_SYRIAC                = 96, /* Syrj */
    274      /** @stable ICU 3.6 */
    275      USCRIPT_EASTERN_SYRIAC                = 97, /* Syrn */
    276      /** @stable ICU 3.6 */
    277      USCRIPT_TENGWAR                       = 98, /* Teng */
    278      /** @stable ICU 3.6 */
    279      USCRIPT_VAI                           = 99, /* Vaii */
    280      /** @stable ICU 3.6 */
    281      USCRIPT_VISIBLE_SPEECH                = 100,/* Visp */
    282      /** @stable ICU 3.6 */
    283      USCRIPT_CUNEIFORM                     = 101,/* Xsux */
    284      /** @stable ICU 3.6 */
    285      USCRIPT_UNWRITTEN_LANGUAGES           = 102,/* Zxxx */
    286      /** @stable ICU 3.6 */
    287      USCRIPT_UNKNOWN                       = 103,/* Zzzz */ /* Unknown="Code for uncoded script", for unassigned code points */
    288 
    289      /** @stable ICU 3.8 */
    290      USCRIPT_CARIAN                        = 104,/* Cari */
    291      /** @stable ICU 3.8 */
    292      USCRIPT_JAPANESE                      = 105,/* Jpan */
    293      /** @stable ICU 3.8 */
    294      USCRIPT_LANNA                         = 106,/* Lana */
    295      /** @stable ICU 3.8 */
    296      USCRIPT_LYCIAN                        = 107,/* Lyci */
    297      /** @stable ICU 3.8 */
    298      USCRIPT_LYDIAN                        = 108,/* Lydi */
    299      /** @stable ICU 3.8 */
    300      USCRIPT_OL_CHIKI                      = 109,/* Olck */
    301      /** @stable ICU 3.8 */
    302      USCRIPT_REJANG                        = 110,/* Rjng */
    303      /** @stable ICU 3.8 */
    304      USCRIPT_SAURASHTRA                    = 111,/* Saur */
    305      /** Sutton SignWriting @stable ICU 3.8 */
    306      USCRIPT_SIGN_WRITING                  = 112,/* Sgnw */
    307      /** @stable ICU 3.8 */
    308      USCRIPT_SUNDANESE                     = 113,/* Sund */
    309      /** @stable ICU 3.8 */
    310      USCRIPT_MOON                          = 114,/* Moon */
    311      /** @stable ICU 3.8 */
    312      USCRIPT_MEITEI_MAYEK                  = 115,/* Mtei */
    313 
    314      /** @stable ICU 4.0 */
    315      USCRIPT_IMPERIAL_ARAMAIC              = 116,/* Armi */
    316      /** @stable ICU 4.0 */
    317      USCRIPT_AVESTAN                       = 117,/* Avst */
    318      /** @stable ICU 4.0 */
    319      USCRIPT_CHAKMA                        = 118,/* Cakm */
    320      /** @stable ICU 4.0 */
    321      USCRIPT_KOREAN                        = 119,/* Kore */
    322      /** @stable ICU 4.0 */
    323      USCRIPT_KAITHI                        = 120,/* Kthi */
    324      /** @stable ICU 4.0 */
    325      USCRIPT_MANICHAEAN                    = 121,/* Mani */
    326      /** @stable ICU 4.0 */
    327      USCRIPT_INSCRIPTIONAL_PAHLAVI         = 122,/* Phli */
    328      /** @stable ICU 4.0 */
    329      USCRIPT_PSALTER_PAHLAVI               = 123,/* Phlp */
    330      /** @stable ICU 4.0 */
    331      USCRIPT_BOOK_PAHLAVI                  = 124,/* Phlv */
    332      /** @stable ICU 4.0 */
    333      USCRIPT_INSCRIPTIONAL_PARTHIAN        = 125,/* Prti */
    334      /** @stable ICU 4.0 */
    335      USCRIPT_SAMARITAN                     = 126,/* Samr */
    336      /** @stable ICU 4.0 */
    337      USCRIPT_TAI_VIET                      = 127,/* Tavt */
    338      /** @stable ICU 4.0 */
    339      USCRIPT_MATHEMATICAL_NOTATION         = 128,/* Zmth */
    340      /** @stable ICU 4.0 */
    341      USCRIPT_SYMBOLS                       = 129,/* Zsym */
    342 
    343      /** @stable ICU 4.4 */
    344      USCRIPT_BAMUM                         = 130,/* Bamu */
    345      /** @stable ICU 4.4 */
    346      USCRIPT_LISU                          = 131,/* Lisu */
    347      /** @stable ICU 4.4 */
    348      USCRIPT_NAKHI_GEBA                    = 132,/* Nkgb */
    349      /** @stable ICU 4.4 */
    350      USCRIPT_OLD_SOUTH_ARABIAN             = 133,/* Sarb */
    351 
    352      /** @stable ICU 4.6 */
    353      USCRIPT_BASSA_VAH                     = 134,/* Bass */
    354      /** @stable ICU 54 */
    355      USCRIPT_DUPLOYAN                      = 135,/* Dupl */
    356 #ifndef U_HIDE_DEPRECATED_API
    357      /** @deprecated ICU 54 Typo, use USCRIPT_DUPLOYAN */
    358      USCRIPT_DUPLOYAN_SHORTAND             = USCRIPT_DUPLOYAN,
    359 #endif  /* U_HIDE_DEPRECATED_API */
    360      /** @stable ICU 4.6 */
    361      USCRIPT_ELBASAN                       = 136,/* Elba */
    362      /** @stable ICU 4.6 */
    363      USCRIPT_GRANTHA                       = 137,/* Gran */
    364      /** @stable ICU 4.6 */
    365      USCRIPT_KPELLE                        = 138,/* Kpel */
    366      /** @stable ICU 4.6 */
    367      USCRIPT_LOMA                          = 139,/* Loma */
    368      /** Mende Kikakui @stable ICU 4.6 */
    369      USCRIPT_MENDE                         = 140,/* Mend */
    370      /** @stable ICU 4.6 */
    371      USCRIPT_MEROITIC_CURSIVE              = 141,/* Merc */
    372      /** @stable ICU 4.6 */
    373      USCRIPT_OLD_NORTH_ARABIAN             = 142,/* Narb */
    374      /** @stable ICU 4.6 */
    375      USCRIPT_NABATAEAN                     = 143,/* Nbat */
    376      /** @stable ICU 4.6 */
    377      USCRIPT_PALMYRENE                     = 144,/* Palm */
    378      /** @stable ICU 54 */
    379      USCRIPT_KHUDAWADI                     = 145,/* Sind */
    380      /** @stable ICU 4.6 */
    381      USCRIPT_SINDHI                        = USCRIPT_KHUDAWADI,
    382      /** @stable ICU 4.6 */
    383      USCRIPT_WARANG_CITI                   = 146,/* Wara */
    384 
    385      /** @stable ICU 4.8 */
    386      USCRIPT_AFAKA                         = 147,/* Afak */
    387      /** @stable ICU 4.8 */
    388      USCRIPT_JURCHEN                       = 148,/* Jurc */
    389      /** @stable ICU 4.8 */
    390      USCRIPT_MRO                           = 149,/* Mroo */
    391      /** @stable ICU 4.8 */
    392      USCRIPT_NUSHU                         = 150,/* Nshu */
    393      /** @stable ICU 4.8 */
    394      USCRIPT_SHARADA                       = 151,/* Shrd */
    395      /** @stable ICU 4.8 */
    396      USCRIPT_SORA_SOMPENG                  = 152,/* Sora */
    397      /** @stable ICU 4.8 */
    398      USCRIPT_TAKRI                         = 153,/* Takr */
    399      /** @stable ICU 4.8 */
    400      USCRIPT_TANGUT                        = 154,/* Tang */
    401      /** @stable ICU 4.8 */
    402      USCRIPT_WOLEAI                        = 155,/* Wole */
    403 
    404      /** @stable ICU 49 */
    405      USCRIPT_ANATOLIAN_HIEROGLYPHS         = 156,/* Hluw */
    406      /** @stable ICU 49 */
    407      USCRIPT_KHOJKI                        = 157,/* Khoj */
    408      /** @stable ICU 49 */
    409      USCRIPT_TIRHUTA                       = 158,/* Tirh */
    410 
    411      /** @stable ICU 52 */
    412      USCRIPT_CAUCASIAN_ALBANIAN            = 159,/* Aghb */
    413      /** @stable ICU 52 */
    414      USCRIPT_MAHAJANI                      = 160,/* Mahj */
    415 
    416      /** @stable ICU 54 */
    417      USCRIPT_AHOM                          = 161,/* Ahom */
    418      /** @stable ICU 54 */
    419      USCRIPT_HATRAN                        = 162,/* Hatr */
    420      /** @stable ICU 54 */
    421      USCRIPT_MODI                          = 163,/* Modi */
    422      /** @stable ICU 54 */
    423      USCRIPT_MULTANI                       = 164,/* Mult */
    424      /** @stable ICU 54 */
    425      USCRIPT_PAU_CIN_HAU                   = 165,/* Pauc */
    426      /** @stable ICU 54 */
    427      USCRIPT_SIDDHAM                       = 166,/* Sidd */
    428 
    429      /** @stable ICU 58 */
    430      USCRIPT_ADLAM                         = 167,/* Adlm */
    431      /** @stable ICU 58 */
    432      USCRIPT_BHAIKSUKI                     = 168,/* Bhks */
    433      /** @stable ICU 58 */
    434      USCRIPT_MARCHEN                       = 169,/* Marc */
    435      /** @stable ICU 58 */
    436      USCRIPT_NEWA                          = 170,/* Newa */
    437      /** @stable ICU 58 */
    438      USCRIPT_OSAGE                         = 171,/* Osge */
    439 
    440      /** @stable ICU 58 */
    441      USCRIPT_HAN_WITH_BOPOMOFO             = 172,/* Hanb */
    442      /** @stable ICU 58 */
    443      USCRIPT_JAMO                          = 173,/* Jamo */
    444      /** @stable ICU 58 */
    445      USCRIPT_SYMBOLS_EMOJI                 = 174,/* Zsye */
    446 
    447      /** @stable ICU 60 */
    448      USCRIPT_MASARAM_GONDI                 = 175,/* Gonm */
    449      /** @stable ICU 60 */
    450      USCRIPT_SOYOMBO                       = 176,/* Soyo */
    451      /** @stable ICU 60 */
    452      USCRIPT_ZANABAZAR_SQUARE              = 177,/* Zanb */
    453 
    454      /** @stable ICU 62 */
    455      USCRIPT_DOGRA                         = 178,/* Dogr */
    456      /** @stable ICU 62 */
    457      USCRIPT_GUNJALA_GONDI                 = 179,/* Gong */
    458      /** @stable ICU 62 */
    459      USCRIPT_MAKASAR                       = 180,/* Maka */
    460      /** @stable ICU 62 */
    461      USCRIPT_MEDEFAIDRIN                   = 181,/* Medf */
    462      /** @stable ICU 62 */
    463      USCRIPT_HANIFI_ROHINGYA               = 182,/* Rohg */
    464      /** @stable ICU 62 */
    465      USCRIPT_SOGDIAN                       = 183,/* Sogd */
    466      /** @stable ICU 62 */
    467      USCRIPT_OLD_SOGDIAN                   = 184,/* Sogo */
    468 
    469      /** @stable ICU 64 */
    470      USCRIPT_ELYMAIC                       = 185,/* Elym */
    471      /** @stable ICU 64 */
    472      USCRIPT_NYIAKENG_PUACHUE_HMONG        = 186,/* Hmnp */
    473      /** @stable ICU 64 */
    474      USCRIPT_NANDINAGARI                   = 187,/* Nand */
    475      /** @stable ICU 64 */
    476      USCRIPT_WANCHO                        = 188,/* Wcho */
    477 
    478      /** @stable ICU 66 */
    479      USCRIPT_CHORASMIAN                    = 189,/* Chrs */
    480      /** @stable ICU 66 */
    481      USCRIPT_DIVES_AKURU                   = 190,/* Diak */
    482      /** @stable ICU 66 */
    483      USCRIPT_KHITAN_SMALL_SCRIPT           = 191,/* Kits */
    484      /** @stable ICU 66 */
    485      USCRIPT_YEZIDI                        = 192,/* Yezi */
    486 
    487      /** @stable ICU 70 */
    488      USCRIPT_CYPRO_MINOAN                  = 193,/* Cpmn */
    489      /** @stable ICU 70 */
    490      USCRIPT_OLD_UYGHUR                    = 194,/* Ougr */
    491      /** @stable ICU 70 */
    492      USCRIPT_TANGSA                        = 195,/* Tnsa */
    493      /** @stable ICU 70 */
    494      USCRIPT_TOTO                          = 196,/* Toto */
    495      /** @stable ICU 70 */
    496      USCRIPT_VITHKUQI                      = 197,/* Vith */
    497 
    498      /** @stable ICU 72 */
    499      USCRIPT_KAWI                          = 198,/* Kawi */
    500      /** @stable ICU 72 */
    501      USCRIPT_NAG_MUNDARI                   = 199,/* Nagm */
    502 
    503      /** @stable ICU 75 */
    504      USCRIPT_ARABIC_NASTALIQ               = 200, /* Aran */
    505 
    506      /** @stable ICU 76 */
    507      USCRIPT_GARAY                         = 201, /* Gara */
    508      /** @stable ICU 76 */
    509      USCRIPT_GURUNG_KHEMA                  = 202, /* Gukh */
    510      /** @stable ICU 76 */
    511      USCRIPT_KIRAT_RAI                     = 203, /* Krai */
    512      /** @stable ICU 76 */
    513      USCRIPT_OL_ONAL                       = 204, /* Onao */
    514      /** @stable ICU 76 */
    515      USCRIPT_SUNUWAR                       = 205, /* Sunu */
    516      /** @stable ICU 76 */
    517      USCRIPT_TODHRI                        = 206, /* Todr */
    518      /** @stable ICU 76 */
    519      USCRIPT_TULU_TIGALARI                 = 207, /* Tutg */
    520 
    521      /** @stable ICU 78 */
    522      USCRIPT_BERIA_ERFE                    = 208, /* Berf */
    523      /** @stable ICU 78 */
    524      USCRIPT_SIDETIC                       = 209, /* Sidt */
    525      /** @stable ICU 78 */
    526      USCRIPT_TAI_YO                        = 210, /* Tayo */
    527      /** @stable ICU 78 */
    528      USCRIPT_TOLONG_SIKI                   = 211, /* Tols */
    529      /** @stable ICU 78 */
    530      USCRIPT_TRADITIONAL_HAN_WITH_LATIN    = 212, /* Hntl */
    531 
    532 #ifndef U_HIDE_DEPRECATED_API
    533    /**
    534     * One more than the highest normal UScriptCode value.
    535     * The highest value is available via u_getIntPropertyMaxValue(UCHAR_SCRIPT).
    536     *
    537     * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
    538     */
    539    USCRIPT_CODE_LIMIT    = 213
    540 #endif  // U_HIDE_DEPRECATED_API
    541 } UScriptCode;
    542 
    543 /**
    544 * Gets the script codes associated with the given locale or ISO 15924 abbreviation or name.
    545 * Fills in USCRIPT_MALAYALAM given "Malayam" OR "Mlym".
    546 * Fills in USCRIPT_LATIN given "en" OR "en_US"
    547 * If the required capacity is greater than the capacity of the destination buffer,
    548 * then the error code is set to U_BUFFER_OVERFLOW_ERROR and the required capacity is returned.
    549 *
    550 * <p>Note: To search by short or long script alias only, use
    551 * u_getPropertyValueEnum(UCHAR_SCRIPT, alias) instead.  That does
    552 * a fast lookup with no access of the locale data.
    553 *
    554 * @param nameOrAbbrOrLocale name of the script, as given in
    555 * PropertyValueAliases.txt, or ISO 15924 code or locale
    556 * @param fillIn the UScriptCode buffer to fill in the script code
    557 * @param capacity the capacity (size) of UScriptCode buffer passed in.
    558 * @param err the error status code.
    559 * @return The number of script codes filled in the buffer passed in
    560 * @stable ICU 2.4
    561 */
    562 U_CAPI int32_t  U_EXPORT2
    563 uscript_getCode(const char* nameOrAbbrOrLocale,UScriptCode* fillIn,int32_t capacity,UErrorCode *err);
    564 
    565 /**
    566 * Returns the long Unicode script name, if there is one.
    567 * Otherwise returns the 4-letter ISO 15924 script code.
    568 * Returns "Malayam" given USCRIPT_MALAYALAM.
    569 *
    570 * @param scriptCode UScriptCode enum
    571 * @return long script name as given in PropertyValueAliases.txt, or the 4-letter code,
    572 * or NULL if scriptCode is invalid
    573 * @stable ICU 2.4
    574 */
    575 U_CAPI const char*  U_EXPORT2
    576 uscript_getName(UScriptCode scriptCode);
    577 
    578 /**
    579 * Returns the 4-letter ISO 15924 script code,
    580 * which is the same as the short Unicode script name if Unicode has names for the script.
    581 * Returns "Mlym" given USCRIPT_MALAYALAM.
    582 *
    583 * @param scriptCode UScriptCode enum
    584 * @return short script name (4-letter code), or NULL if scriptCode is invalid
    585 * @stable ICU 2.4
    586 */
    587 U_CAPI const char*  U_EXPORT2
    588 uscript_getShortName(UScriptCode scriptCode);
    589 
    590 /**
    591 * Gets the script code associated with the given codepoint.
    592 * Returns USCRIPT_MALAYALAM given 0x0D02
    593 * @param codepoint UChar32 codepoint
    594 * @param err the error status code.
    595 * @return The UScriptCode, or 0 if codepoint is invalid
    596 * @stable ICU 2.4
    597 */
    598 U_CAPI UScriptCode  U_EXPORT2
    599 uscript_getScript(UChar32 codepoint, UErrorCode *err);
    600 
    601 /**
    602 * Do the Script_Extensions of code point c contain script sc?
    603 * If c does not have explicit Script_Extensions, then this tests whether
    604 * c has the Script property value sc.
    605 *
    606 * Some characters are commonly used in multiple scripts.
    607 * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
    608 * @param c code point
    609 * @param sc script code
    610 * @return true if sc is in Script_Extensions(c)
    611 * @stable ICU 49
    612 */
    613 U_CAPI UBool U_EXPORT2
    614 uscript_hasScript(UChar32 c, UScriptCode sc);
    615 
    616 /**
    617 * Writes code point c's Script_Extensions as a list of UScriptCode values
    618 * to the output scripts array and returns the number of script codes.
    619 * - If c does have Script_Extensions, then the Script property value
    620 *   (normally Common or Inherited) is not included.
    621 * - If c does not have Script_Extensions, then the one Script code is written to the output array.
    622 * - If c is not a valid code point, then the one USCRIPT_UNKNOWN code is written.
    623 * In other words, if the return value is 1,
    624 * then the output array contains exactly c's single Script code.
    625 * If the return value is n>=2, then the output array contains c's n Script_Extensions script codes.
    626 *
    627 * Some characters are commonly used in multiple scripts.
    628 * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
    629 *
    630 * If there are more than capacity script codes to be written, then
    631 * U_BUFFER_OVERFLOW_ERROR is set and the number of Script_Extensions is returned.
    632 * (Usual ICU buffer handling behavior.)
    633 *
    634 * @param c code point
    635 * @param scripts output script code array
    636 * @param capacity capacity of the scripts array
    637 * @param errorCode Standard ICU error code. Its input value must
    638 *                  pass the U_SUCCESS() test, or else the function returns
    639 *                  immediately. Check for U_FAILURE() on output or use with
    640 *                  function chaining. (See User Guide for details.)
    641 * @return number of script codes in c's Script_Extensions, or 1 for the single Script value,
    642 *         written to scripts unless U_BUFFER_OVERFLOW_ERROR indicates insufficient capacity
    643 * @stable ICU 49
    644 */
    645 U_CAPI int32_t U_EXPORT2
    646 uscript_getScriptExtensions(UChar32 c,
    647                            UScriptCode *scripts, int32_t capacity,
    648                            UErrorCode *errorCode);
    649 
    650 /**
    651 * Script usage constants.
    652 * See UAX #31 Unicode Identifier and Pattern Syntax.
    653 * http://www.unicode.org/reports/tr31/#Table_Candidate_Characters_for_Exclusion_from_Identifiers
    654 *
    655 * @stable ICU 51
    656 */
    657 typedef enum UScriptUsage {
    658    /** Not encoded in Unicode. @stable ICU 51 */
    659    USCRIPT_USAGE_NOT_ENCODED,
    660    /** Unknown script usage. @stable ICU 51 */
    661    USCRIPT_USAGE_UNKNOWN,
    662    /** Candidate for Exclusion from Identifiers. @stable ICU 51 */
    663    USCRIPT_USAGE_EXCLUDED,
    664    /** Limited Use script. @stable ICU 51 */
    665    USCRIPT_USAGE_LIMITED_USE,
    666    /** Aspirational Use script. @stable ICU 51 */
    667    USCRIPT_USAGE_ASPIRATIONAL,
    668    /** Recommended script. @stable ICU 51 */
    669    USCRIPT_USAGE_RECOMMENDED
    670 } UScriptUsage;
    671 
    672 /**
    673 * Writes the script sample character string.
    674 * This string normally consists of one code point but might be longer.
    675 * The string is empty if the script is not encoded.
    676 *
    677 * @param script script code
    678 * @param dest output string array
    679 * @param capacity number of UChars in the dest array
    680 * @param pErrorCode standard ICU in/out error code, must pass U_SUCCESS() on input
    681 * @return the string length, even if U_BUFFER_OVERFLOW_ERROR
    682 * @stable ICU 51
    683 */
    684 U_CAPI int32_t U_EXPORT2
    685 uscript_getSampleString(UScriptCode script, UChar *dest, int32_t capacity, UErrorCode *pErrorCode);
    686 
    687 #if U_SHOW_CPLUSPLUS_API
    688 
    689 U_NAMESPACE_BEGIN
    690 class UnicodeString;
    691 U_NAMESPACE_END
    692 
    693 /**
    694 * Returns the script sample character string.
    695 * This string normally consists of one code point but might be longer.
    696 * The string is empty if the script is not encoded.
    697 *
    698 * @param script script code
    699 * @return the sample character string
    700 * @stable ICU 51
    701 */
    702 U_COMMON_API icu::UnicodeString U_EXPORT2
    703 uscript_getSampleUnicodeString(UScriptCode script);
    704 
    705 #endif
    706 
    707 /**
    708 * Returns the script usage according to UAX #31 Unicode Identifier and Pattern Syntax.
    709 * Returns USCRIPT_USAGE_NOT_ENCODED if the script is not encoded in Unicode.
    710 *
    711 * @param script script code
    712 * @return script usage
    713 * @see UScriptUsage
    714 * @stable ICU 51
    715 */
    716 U_CAPI UScriptUsage U_EXPORT2
    717 uscript_getUsage(UScriptCode script);
    718 
    719 /**
    720 * Returns true if the script is written right-to-left.
    721 * For example, Arab and Hebr.
    722 *
    723 * @param script script code
    724 * @return true if the script is right-to-left
    725 * @stable ICU 51
    726 */
    727 U_CAPI UBool U_EXPORT2
    728 uscript_isRightToLeft(UScriptCode script);
    729 
    730 /**
    731 * Returns true if the script allows line breaks between letters (excluding hyphenation).
    732 * Such a script typically requires dictionary-based line breaking.
    733 * For example, Hani and Thai.
    734 *
    735 * @param script script code
    736 * @return true if the script allows line breaks between letters
    737 * @stable ICU 51
    738 */
    739 U_CAPI UBool U_EXPORT2
    740 uscript_breaksBetweenLetters(UScriptCode script);
    741 
    742 /**
    743 * Returns true if in modern (or most recent) usage of the script case distinctions are customary.
    744 * For example, Latn and Cyrl.
    745 *
    746 * @param script script code
    747 * @return true if the script is cased
    748 * @stable ICU 51
    749 */
    750 U_CAPI UBool U_EXPORT2
    751 uscript_isCased(UScriptCode script);
    752 
    753 #endif