Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-21 09:28:37

0001 // © 2016 and later: Unicode, Inc. and others.
0002 // License & terms of use: http://www.unicode.org/copyright.html
0003 /*
0004  **********************************************************************
0005  *   Copyright (C) 1997-2016, International Business Machines
0006  *   Corporation and others.  All Rights Reserved.
0007  **********************************************************************
0008  *
0009  * File USCRIPT.H
0010  *
0011  * Modification History:
0012  *
0013  *   Date        Name        Description
0014  *   07/06/2001    Ram         Creation.
0015  ******************************************************************************
0016  */
0017 
0018 #ifndef USCRIPT_H
0019 #define USCRIPT_H
0020 #include "unicode/utypes.h"
0021 
0022 /**
0023  * \file
0024  * \brief C API: Unicode Script Information
0025  */
0026 
0027 /**
0028  * Constants for ISO 15924 script codes.
0029  *
0030  * The current set of script code constants supports at least all scripts
0031  * that are encoded in the version of Unicode which ICU currently supports.
0032  * The names of the constants are usually derived from the
0033  * Unicode script property value aliases.
0034  * See UAX #24 Unicode Script Property (http://www.unicode.org/reports/tr24/)
0035  * and http://www.unicode.org/Public/UCD/latest/ucd/PropertyValueAliases.txt .
0036  *
0037  * In addition, constants for many ISO 15924 script codes
0038  * are included, for use with language tags, CLDR data, and similar.
0039  * Some of those codes are not used in the Unicode Character Database (UCD).
0040  * For example, there are no characters that have a UCD script property value of
0041  * Hans or Hant. All Han ideographs have the Hani script property value in Unicode.
0042  *
0043  * Private-use codes Qaaa..Qabx are not included, except as used in the UCD or in CLDR.
0044  *
0045  * Starting with ICU 55, script codes are only added when their scripts
0046  * have been or will certainly be encoded in Unicode,
0047  * and have been assigned Unicode script property value aliases,
0048  * to ensure that their script names are stable and match the names of the constants.
0049  * Script codes like Latf and Aran that are not subject to separate encoding
0050  * may be added at any time.
0051  *
0052  * @stable ICU 2.2
0053  */
0054 typedef enum UScriptCode {
0055     /*
0056      * Note: UScriptCode constants and their ISO script code comments
0057      * are parsed by preparseucd.py.
0058      * It matches lines like
0059      *     USCRIPT_<Unicode Script value name> = <integer>,  / * <ISO script code> * /
0060      */
0061 
0062       /** @stable ICU 2.2 */
0063       USCRIPT_INVALID_CODE = -1,
0064       /** @stable ICU 2.2 */
0065       USCRIPT_COMMON       =  0,  /* Zyyy */
0066       /** @stable ICU 2.2 */
0067       USCRIPT_INHERITED    =  1,  /* Zinh */ /* "Code for inherited script", for non-spacing combining marks; also Qaai */
0068       /** @stable ICU 2.2 */
0069       USCRIPT_ARABIC       =  2,  /* Arab */
0070       /** @stable ICU 2.2 */
0071       USCRIPT_ARMENIAN     =  3,  /* Armn */
0072       /** @stable ICU 2.2 */
0073       USCRIPT_BENGALI      =  4,  /* Beng */
0074       /** @stable ICU 2.2 */
0075       USCRIPT_BOPOMOFO     =  5,  /* Bopo */
0076       /** @stable ICU 2.2 */
0077       USCRIPT_CHEROKEE     =  6,  /* Cher */
0078       /** @stable ICU 2.2 */
0079       USCRIPT_COPTIC       =  7,  /* Copt */
0080       /** @stable ICU 2.2 */
0081       USCRIPT_CYRILLIC     =  8,  /* Cyrl */
0082       /** @stable ICU 2.2 */
0083       USCRIPT_DESERET      =  9,  /* Dsrt */
0084       /** @stable ICU 2.2 */
0085       USCRIPT_DEVANAGARI   = 10,  /* Deva */
0086       /** @stable ICU 2.2 */
0087       USCRIPT_ETHIOPIC     = 11,  /* Ethi */
0088       /** @stable ICU 2.2 */
0089       USCRIPT_GEORGIAN     = 12,  /* Geor */
0090       /** @stable ICU 2.2 */
0091       USCRIPT_GOTHIC       = 13,  /* Goth */
0092       /** @stable ICU 2.2 */
0093       USCRIPT_GREEK        = 14,  /* Grek */
0094       /** @stable ICU 2.2 */
0095       USCRIPT_GUJARATI     = 15,  /* Gujr */
0096       /** @stable ICU 2.2 */
0097       USCRIPT_GURMUKHI     = 16,  /* Guru */
0098       /** @stable ICU 2.2 */
0099       USCRIPT_HAN          = 17,  /* Hani */
0100       /** @stable ICU 2.2 */
0101       USCRIPT_HANGUL       = 18,  /* Hang */
0102       /** @stable ICU 2.2 */
0103       USCRIPT_HEBREW       = 19,  /* Hebr */
0104       /** @stable ICU 2.2 */
0105       USCRIPT_HIRAGANA     = 20,  /* Hira */
0106       /** @stable ICU 2.2 */
0107       USCRIPT_KANNADA      = 21,  /* Knda */
0108       /** @stable ICU 2.2 */
0109       USCRIPT_KATAKANA     = 22,  /* Kana */
0110       /** @stable ICU 2.2 */
0111       USCRIPT_KHMER        = 23,  /* Khmr */
0112       /** @stable ICU 2.2 */
0113       USCRIPT_LAO          = 24,  /* Laoo */
0114       /** @stable ICU 2.2 */
0115       USCRIPT_LATIN        = 25,  /* Latn */
0116       /** @stable ICU 2.2 */
0117       USCRIPT_MALAYALAM    = 26,  /* Mlym */
0118       /** @stable ICU 2.2 */
0119       USCRIPT_MONGOLIAN    = 27,  /* Mong */
0120       /** @stable ICU 2.2 */
0121       USCRIPT_MYANMAR      = 28,  /* Mymr */
0122       /** @stable ICU 2.2 */
0123       USCRIPT_OGHAM        = 29,  /* Ogam */
0124       /** @stable ICU 2.2 */
0125       USCRIPT_OLD_ITALIC   = 30,  /* Ital */
0126       /** @stable ICU 2.2 */
0127       USCRIPT_ORIYA        = 31,  /* Orya */
0128       /** @stable ICU 2.2 */
0129       USCRIPT_RUNIC        = 32,  /* Runr */
0130       /** @stable ICU 2.2 */
0131       USCRIPT_SINHALA      = 33,  /* Sinh */
0132       /** @stable ICU 2.2 */
0133       USCRIPT_SYRIAC       = 34,  /* Syrc */
0134       /** @stable ICU 2.2 */
0135       USCRIPT_TAMIL        = 35,  /* Taml */
0136       /** @stable ICU 2.2 */
0137       USCRIPT_TELUGU       = 36,  /* Telu */
0138       /** @stable ICU 2.2 */
0139       USCRIPT_THAANA       = 37,  /* Thaa */
0140       /** @stable ICU 2.2 */
0141       USCRIPT_THAI         = 38,  /* Thai */
0142       /** @stable ICU 2.2 */
0143       USCRIPT_TIBETAN      = 39,  /* Tibt */
0144       /** Canadian_Aboriginal script. @stable ICU 2.6 */
0145       USCRIPT_CANADIAN_ABORIGINAL = 40,  /* Cans */
0146       /** Canadian_Aboriginal script (alias). @stable ICU 2.2 */
0147       USCRIPT_UCAS         = USCRIPT_CANADIAN_ABORIGINAL,
0148       /** @stable ICU 2.2 */
0149       USCRIPT_YI           = 41,  /* Yiii */
0150       /* New scripts in Unicode 3.2 */
0151       /** @stable ICU 2.2 */
0152       USCRIPT_TAGALOG      = 42,  /* Tglg */
0153       /** @stable ICU 2.2 */
0154       USCRIPT_HANUNOO      = 43,  /* Hano */
0155       /** @stable ICU 2.2 */
0156       USCRIPT_BUHID        = 44,  /* Buhd */
0157       /** @stable ICU 2.2 */
0158       USCRIPT_TAGBANWA     = 45,  /* Tagb */
0159 
0160       /* New scripts in Unicode 4 */
0161       /** @stable ICU 2.6 */
0162       USCRIPT_BRAILLE      = 46,  /* Brai */
0163       /** @stable ICU 2.6 */
0164       USCRIPT_CYPRIOT      = 47,  /* Cprt */
0165       /** @stable ICU 2.6 */
0166       USCRIPT_LIMBU        = 48,  /* Limb */
0167       /** @stable ICU 2.6 */
0168       USCRIPT_LINEAR_B     = 49,  /* Linb */
0169       /** @stable ICU 2.6 */
0170       USCRIPT_OSMANYA      = 50,  /* Osma */
0171       /** @stable ICU 2.6 */
0172       USCRIPT_SHAVIAN      = 51,  /* Shaw */
0173       /** @stable ICU 2.6 */
0174       USCRIPT_TAI_LE       = 52,  /* Tale */
0175       /** @stable ICU 2.6 */
0176       USCRIPT_UGARITIC     = 53,  /* Ugar */
0177 
0178       /** New script code in Unicode 4.0.1 @stable ICU 3.0 */
0179       USCRIPT_KATAKANA_OR_HIRAGANA = 54,/*Hrkt */
0180 
0181       /* New scripts in Unicode 4.1 */
0182       /** @stable ICU 3.4 */
0183       USCRIPT_BUGINESE      = 55, /* Bugi */
0184       /** @stable ICU 3.4 */
0185       USCRIPT_GLAGOLITIC    = 56, /* Glag */
0186       /** @stable ICU 3.4 */
0187       USCRIPT_KHAROSHTHI    = 57, /* Khar */
0188       /** @stable ICU 3.4 */
0189       USCRIPT_SYLOTI_NAGRI  = 58, /* Sylo */
0190       /** @stable ICU 3.4 */
0191       USCRIPT_NEW_TAI_LUE   = 59, /* Talu */
0192       /** @stable ICU 3.4 */
0193       USCRIPT_TIFINAGH      = 60, /* Tfng */
0194       /** @stable ICU 3.4 */
0195       USCRIPT_OLD_PERSIAN   = 61, /* Xpeo */
0196 
0197       /* New script codes from Unicode and ISO 15924 */
0198       /** @stable ICU 3.6 */
0199       USCRIPT_BALINESE                      = 62, /* Bali */
0200       /** @stable ICU 3.6 */
0201       USCRIPT_BATAK                         = 63, /* Batk */
0202       /** @stable ICU 3.6 */
0203       USCRIPT_BLISSYMBOLS                   = 64, /* Blis */
0204       /** @stable ICU 3.6 */
0205       USCRIPT_BRAHMI                        = 65, /* Brah */
0206       /** @stable ICU 3.6 */
0207       USCRIPT_CHAM                          = 66, /* Cham */
0208       /** @stable ICU 3.6 */
0209       USCRIPT_CIRTH                         = 67, /* Cirt */
0210       /** @stable ICU 3.6 */
0211       USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC  = 68, /* Cyrs */
0212       /** @stable ICU 3.6 */
0213       USCRIPT_DEMOTIC_EGYPTIAN              = 69, /* Egyd */
0214       /** @stable ICU 3.6 */
0215       USCRIPT_HIERATIC_EGYPTIAN             = 70, /* Egyh */
0216       /** @stable ICU 3.6 */
0217       USCRIPT_EGYPTIAN_HIEROGLYPHS          = 71, /* Egyp */
0218       /** @stable ICU 3.6 */
0219       USCRIPT_KHUTSURI                      = 72, /* Geok */
0220       /** @stable ICU 3.6 */
0221       USCRIPT_SIMPLIFIED_HAN                = 73, /* Hans */
0222       /** @stable ICU 3.6 */
0223       USCRIPT_TRADITIONAL_HAN               = 74, /* Hant */
0224       /** @stable ICU 3.6 */
0225       USCRIPT_PAHAWH_HMONG                  = 75, /* Hmng */
0226       /** @stable ICU 3.6 */
0227       USCRIPT_OLD_HUNGARIAN                 = 76, /* Hung */
0228       /** @stable ICU 3.6 */
0229       USCRIPT_HARAPPAN_INDUS                = 77, /* Inds */
0230       /** @stable ICU 3.6 */
0231       USCRIPT_JAVANESE                      = 78, /* Java */
0232       /** @stable ICU 3.6 */
0233       USCRIPT_KAYAH_LI                      = 79, /* Kali */
0234       /** @stable ICU 3.6 */
0235       USCRIPT_LATIN_FRAKTUR                 = 80, /* Latf */
0236       /** @stable ICU 3.6 */
0237       USCRIPT_LATIN_GAELIC                  = 81, /* Latg */
0238       /** @stable ICU 3.6 */
0239       USCRIPT_LEPCHA                        = 82, /* Lepc */
0240       /** @stable ICU 3.6 */
0241       USCRIPT_LINEAR_A                      = 83, /* Lina */
0242       /** @stable ICU 4.6 */
0243       USCRIPT_MANDAIC                       = 84, /* Mand */
0244       /** @stable ICU 3.6 */
0245       USCRIPT_MANDAEAN                      = USCRIPT_MANDAIC,
0246       /** @stable ICU 3.6 */
0247       USCRIPT_MAYAN_HIEROGLYPHS             = 85, /* Maya */
0248       /** @stable ICU 4.6 */
0249       USCRIPT_MEROITIC_HIEROGLYPHS          = 86, /* Mero */
0250       /** @stable ICU 3.6 */
0251       USCRIPT_MEROITIC                      = USCRIPT_MEROITIC_HIEROGLYPHS,
0252       /** @stable ICU 3.6 */
0253       USCRIPT_NKO                           = 87, /* Nkoo */
0254       /** @stable ICU 3.6 */
0255       USCRIPT_ORKHON                        = 88, /* Orkh */
0256       /** @stable ICU 3.6 */
0257       USCRIPT_OLD_PERMIC                    = 89, /* Perm */
0258       /** @stable ICU 3.6 */
0259       USCRIPT_PHAGS_PA                      = 90, /* Phag */
0260       /** @stable ICU 3.6 */
0261       USCRIPT_PHOENICIAN                    = 91, /* Phnx */
0262       /** @stable ICU 52 */
0263       USCRIPT_MIAO                          = 92, /* Plrd */
0264       /** @stable ICU 3.6 */
0265       USCRIPT_PHONETIC_POLLARD              = USCRIPT_MIAO,
0266       /** @stable ICU 3.6 */
0267       USCRIPT_RONGORONGO                    = 93, /* Roro */
0268       /** @stable ICU 3.6 */
0269       USCRIPT_SARATI                        = 94, /* Sara */
0270       /** @stable ICU 3.6 */
0271       USCRIPT_ESTRANGELO_SYRIAC             = 95, /* Syre */
0272       /** @stable ICU 3.6 */
0273       USCRIPT_WESTERN_SYRIAC                = 96, /* Syrj */
0274       /** @stable ICU 3.6 */
0275       USCRIPT_EASTERN_SYRIAC                = 97, /* Syrn */
0276       /** @stable ICU 3.6 */
0277       USCRIPT_TENGWAR                       = 98, /* Teng */
0278       /** @stable ICU 3.6 */
0279       USCRIPT_VAI                           = 99, /* Vaii */
0280       /** @stable ICU 3.6 */
0281       USCRIPT_VISIBLE_SPEECH                = 100,/* Visp */
0282       /** @stable ICU 3.6 */
0283       USCRIPT_CUNEIFORM                     = 101,/* Xsux */
0284       /** @stable ICU 3.6 */
0285       USCRIPT_UNWRITTEN_LANGUAGES           = 102,/* Zxxx */
0286       /** @stable ICU 3.6 */
0287       USCRIPT_UNKNOWN                       = 103,/* Zzzz */ /* Unknown="Code for uncoded script", for unassigned code points */
0288 
0289       /** @stable ICU 3.8 */
0290       USCRIPT_CARIAN                        = 104,/* Cari */
0291       /** @stable ICU 3.8 */
0292       USCRIPT_JAPANESE                      = 105,/* Jpan */
0293       /** @stable ICU 3.8 */
0294       USCRIPT_LANNA                         = 106,/* Lana */
0295       /** @stable ICU 3.8 */
0296       USCRIPT_LYCIAN                        = 107,/* Lyci */
0297       /** @stable ICU 3.8 */
0298       USCRIPT_LYDIAN                        = 108,/* Lydi */
0299       /** @stable ICU 3.8 */
0300       USCRIPT_OL_CHIKI                      = 109,/* Olck */
0301       /** @stable ICU 3.8 */
0302       USCRIPT_REJANG                        = 110,/* Rjng */
0303       /** @stable ICU 3.8 */
0304       USCRIPT_SAURASHTRA                    = 111,/* Saur */
0305       /** Sutton SignWriting @stable ICU 3.8 */
0306       USCRIPT_SIGN_WRITING                  = 112,/* Sgnw */
0307       /** @stable ICU 3.8 */
0308       USCRIPT_SUNDANESE                     = 113,/* Sund */
0309       /** @stable ICU 3.8 */
0310       USCRIPT_MOON                          = 114,/* Moon */
0311       /** @stable ICU 3.8 */
0312       USCRIPT_MEITEI_MAYEK                  = 115,/* Mtei */
0313 
0314       /** @stable ICU 4.0 */
0315       USCRIPT_IMPERIAL_ARAMAIC              = 116,/* Armi */
0316       /** @stable ICU 4.0 */
0317       USCRIPT_AVESTAN                       = 117,/* Avst */
0318       /** @stable ICU 4.0 */
0319       USCRIPT_CHAKMA                        = 118,/* Cakm */
0320       /** @stable ICU 4.0 */
0321       USCRIPT_KOREAN                        = 119,/* Kore */
0322       /** @stable ICU 4.0 */
0323       USCRIPT_KAITHI                        = 120,/* Kthi */
0324       /** @stable ICU 4.0 */
0325       USCRIPT_MANICHAEAN                    = 121,/* Mani */
0326       /** @stable ICU 4.0 */
0327       USCRIPT_INSCRIPTIONAL_PAHLAVI         = 122,/* Phli */
0328       /** @stable ICU 4.0 */
0329       USCRIPT_PSALTER_PAHLAVI               = 123,/* Phlp */
0330       /** @stable ICU 4.0 */
0331       USCRIPT_BOOK_PAHLAVI                  = 124,/* Phlv */
0332       /** @stable ICU 4.0 */
0333       USCRIPT_INSCRIPTIONAL_PARTHIAN        = 125,/* Prti */
0334       /** @stable ICU 4.0 */
0335       USCRIPT_SAMARITAN                     = 126,/* Samr */
0336       /** @stable ICU 4.0 */
0337       USCRIPT_TAI_VIET                      = 127,/* Tavt */
0338       /** @stable ICU 4.0 */
0339       USCRIPT_MATHEMATICAL_NOTATION         = 128,/* Zmth */
0340       /** @stable ICU 4.0 */
0341       USCRIPT_SYMBOLS                       = 129,/* Zsym */
0342 
0343       /** @stable ICU 4.4 */
0344       USCRIPT_BAMUM                         = 130,/* Bamu */
0345       /** @stable ICU 4.4 */
0346       USCRIPT_LISU                          = 131,/* Lisu */
0347       /** @stable ICU 4.4 */
0348       USCRIPT_NAKHI_GEBA                    = 132,/* Nkgb */
0349       /** @stable ICU 4.4 */
0350       USCRIPT_OLD_SOUTH_ARABIAN             = 133,/* Sarb */
0351 
0352       /** @stable ICU 4.6 */
0353       USCRIPT_BASSA_VAH                     = 134,/* Bass */
0354       /** @stable ICU 54 */
0355       USCRIPT_DUPLOYAN                      = 135,/* Dupl */
0356 #ifndef U_HIDE_DEPRECATED_API
0357       /** @deprecated ICU 54 Typo, use USCRIPT_DUPLOYAN */
0358       USCRIPT_DUPLOYAN_SHORTAND             = USCRIPT_DUPLOYAN,
0359 #endif  /* U_HIDE_DEPRECATED_API */
0360       /** @stable ICU 4.6 */
0361       USCRIPT_ELBASAN                       = 136,/* Elba */
0362       /** @stable ICU 4.6 */
0363       USCRIPT_GRANTHA                       = 137,/* Gran */
0364       /** @stable ICU 4.6 */
0365       USCRIPT_KPELLE                        = 138,/* Kpel */
0366       /** @stable ICU 4.6 */
0367       USCRIPT_LOMA                          = 139,/* Loma */
0368       /** Mende Kikakui @stable ICU 4.6 */
0369       USCRIPT_MENDE                         = 140,/* Mend */
0370       /** @stable ICU 4.6 */
0371       USCRIPT_MEROITIC_CURSIVE              = 141,/* Merc */
0372       /** @stable ICU 4.6 */
0373       USCRIPT_OLD_NORTH_ARABIAN             = 142,/* Narb */
0374       /** @stable ICU 4.6 */
0375       USCRIPT_NABATAEAN                     = 143,/* Nbat */
0376       /** @stable ICU 4.6 */
0377       USCRIPT_PALMYRENE                     = 144,/* Palm */
0378       /** @stable ICU 54 */
0379       USCRIPT_KHUDAWADI                     = 145,/* Sind */
0380       /** @stable ICU 4.6 */
0381       USCRIPT_SINDHI                        = USCRIPT_KHUDAWADI,
0382       /** @stable ICU 4.6 */
0383       USCRIPT_WARANG_CITI                   = 146,/* Wara */
0384 
0385       /** @stable ICU 4.8 */
0386       USCRIPT_AFAKA                         = 147,/* Afak */
0387       /** @stable ICU 4.8 */
0388       USCRIPT_JURCHEN                       = 148,/* Jurc */
0389       /** @stable ICU 4.8 */
0390       USCRIPT_MRO                           = 149,/* Mroo */
0391       /** @stable ICU 4.8 */
0392       USCRIPT_NUSHU                         = 150,/* Nshu */
0393       /** @stable ICU 4.8 */
0394       USCRIPT_SHARADA                       = 151,/* Shrd */
0395       /** @stable ICU 4.8 */
0396       USCRIPT_SORA_SOMPENG                  = 152,/* Sora */
0397       /** @stable ICU 4.8 */
0398       USCRIPT_TAKRI                         = 153,/* Takr */
0399       /** @stable ICU 4.8 */
0400       USCRIPT_TANGUT                        = 154,/* Tang */
0401       /** @stable ICU 4.8 */
0402       USCRIPT_WOLEAI                        = 155,/* Wole */
0403 
0404       /** @stable ICU 49 */
0405       USCRIPT_ANATOLIAN_HIEROGLYPHS         = 156,/* Hluw */
0406       /** @stable ICU 49 */
0407       USCRIPT_KHOJKI                        = 157,/* Khoj */
0408       /** @stable ICU 49 */
0409       USCRIPT_TIRHUTA                       = 158,/* Tirh */
0410 
0411       /** @stable ICU 52 */
0412       USCRIPT_CAUCASIAN_ALBANIAN            = 159,/* Aghb */
0413       /** @stable ICU 52 */
0414       USCRIPT_MAHAJANI                      = 160,/* Mahj */
0415 
0416       /** @stable ICU 54 */
0417       USCRIPT_AHOM                          = 161,/* Ahom */
0418       /** @stable ICU 54 */
0419       USCRIPT_HATRAN                        = 162,/* Hatr */
0420       /** @stable ICU 54 */
0421       USCRIPT_MODI                          = 163,/* Modi */
0422       /** @stable ICU 54 */
0423       USCRIPT_MULTANI                       = 164,/* Mult */
0424       /** @stable ICU 54 */
0425       USCRIPT_PAU_CIN_HAU                   = 165,/* Pauc */
0426       /** @stable ICU 54 */
0427       USCRIPT_SIDDHAM                       = 166,/* Sidd */
0428 
0429       /** @stable ICU 58 */
0430       USCRIPT_ADLAM                         = 167,/* Adlm */
0431       /** @stable ICU 58 */
0432       USCRIPT_BHAIKSUKI                     = 168,/* Bhks */
0433       /** @stable ICU 58 */
0434       USCRIPT_MARCHEN                       = 169,/* Marc */
0435       /** @stable ICU 58 */
0436       USCRIPT_NEWA                          = 170,/* Newa */
0437       /** @stable ICU 58 */
0438       USCRIPT_OSAGE                         = 171,/* Osge */
0439 
0440       /** @stable ICU 58 */
0441       USCRIPT_HAN_WITH_BOPOMOFO             = 172,/* Hanb */
0442       /** @stable ICU 58 */
0443       USCRIPT_JAMO                          = 173,/* Jamo */
0444       /** @stable ICU 58 */
0445       USCRIPT_SYMBOLS_EMOJI                 = 174,/* Zsye */
0446 
0447       /** @stable ICU 60 */
0448       USCRIPT_MASARAM_GONDI                 = 175,/* Gonm */
0449       /** @stable ICU 60 */
0450       USCRIPT_SOYOMBO                       = 176,/* Soyo */
0451       /** @stable ICU 60 */
0452       USCRIPT_ZANABAZAR_SQUARE              = 177,/* Zanb */
0453 
0454       /** @stable ICU 62 */
0455       USCRIPT_DOGRA                         = 178,/* Dogr */
0456       /** @stable ICU 62 */
0457       USCRIPT_GUNJALA_GONDI                 = 179,/* Gong */
0458       /** @stable ICU 62 */
0459       USCRIPT_MAKASAR                       = 180,/* Maka */
0460       /** @stable ICU 62 */
0461       USCRIPT_MEDEFAIDRIN                   = 181,/* Medf */
0462       /** @stable ICU 62 */
0463       USCRIPT_HANIFI_ROHINGYA               = 182,/* Rohg */
0464       /** @stable ICU 62 */
0465       USCRIPT_SOGDIAN                       = 183,/* Sogd */
0466       /** @stable ICU 62 */
0467       USCRIPT_OLD_SOGDIAN                   = 184,/* Sogo */
0468 
0469       /** @stable ICU 64 */
0470       USCRIPT_ELYMAIC                       = 185,/* Elym */
0471       /** @stable ICU 64 */
0472       USCRIPT_NYIAKENG_PUACHUE_HMONG        = 186,/* Hmnp */
0473       /** @stable ICU 64 */
0474       USCRIPT_NANDINAGARI                   = 187,/* Nand */
0475       /** @stable ICU 64 */
0476       USCRIPT_WANCHO                        = 188,/* Wcho */
0477 
0478       /** @stable ICU 66 */
0479       USCRIPT_CHORASMIAN                    = 189,/* Chrs */
0480       /** @stable ICU 66 */
0481       USCRIPT_DIVES_AKURU                   = 190,/* Diak */
0482       /** @stable ICU 66 */
0483       USCRIPT_KHITAN_SMALL_SCRIPT           = 191,/* Kits */
0484       /** @stable ICU 66 */
0485       USCRIPT_YEZIDI                        = 192,/* Yezi */
0486 
0487       /** @stable ICU 70 */
0488       USCRIPT_CYPRO_MINOAN                  = 193,/* Cpmn */
0489       /** @stable ICU 70 */
0490       USCRIPT_OLD_UYGHUR                    = 194,/* Ougr */
0491       /** @stable ICU 70 */
0492       USCRIPT_TANGSA                        = 195,/* Tnsa */
0493       /** @stable ICU 70 */
0494       USCRIPT_TOTO                          = 196,/* Toto */
0495       /** @stable ICU 70 */
0496       USCRIPT_VITHKUQI                      = 197,/* Vith */
0497 
0498       /** @stable ICU 72 */
0499       USCRIPT_KAWI                          = 198,/* Kawi */
0500       /** @stable ICU 72 */
0501       USCRIPT_NAG_MUNDARI                   = 199,/* Nagm */
0502 
0503       /** @stable ICU 75 */
0504       USCRIPT_ARABIC_NASTALIQ               = 200, /* Aran */
0505 
0506       /** @stable ICU 76 */
0507       USCRIPT_GARAY                         = 201, /* Gara */
0508       /** @stable ICU 76 */
0509       USCRIPT_GURUNG_KHEMA                  = 202, /* Gukh */
0510       /** @stable ICU 76 */
0511       USCRIPT_KIRAT_RAI                     = 203, /* Krai */
0512       /** @stable ICU 76 */
0513       USCRIPT_OL_ONAL                       = 204, /* Onao */
0514       /** @stable ICU 76 */
0515       USCRIPT_SUNUWAR                       = 205, /* Sunu */
0516       /** @stable ICU 76 */
0517       USCRIPT_TODHRI                        = 206, /* Todr */
0518       /** @stable ICU 76 */
0519       USCRIPT_TULU_TIGALARI                 = 207, /* Tutg */
0520 
0521 #ifndef U_HIDE_DEPRECATED_API
0522     /**
0523      * One more than the highest normal UScriptCode value.
0524      * The highest value is available via u_getIntPropertyMaxValue(UCHAR_SCRIPT).
0525      *
0526      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
0527      */
0528     USCRIPT_CODE_LIMIT    = 208
0529 #endif  // U_HIDE_DEPRECATED_API
0530 } UScriptCode;
0531 
0532 /**
0533  * Gets the script codes associated with the given locale or ISO 15924 abbreviation or name.
0534  * Fills in USCRIPT_MALAYALAM given "Malayam" OR "Mlym".
0535  * Fills in USCRIPT_LATIN given "en" OR "en_US"
0536  * If the required capacity is greater than the capacity of the destination buffer,
0537  * then the error code is set to U_BUFFER_OVERFLOW_ERROR and the required capacity is returned.
0538  *
0539  * <p>Note: To search by short or long script alias only, use
0540  * u_getPropertyValueEnum(UCHAR_SCRIPT, alias) instead.  That does
0541  * a fast lookup with no access of the locale data.
0542  *
0543  * @param nameOrAbbrOrLocale name of the script, as given in
0544  * PropertyValueAliases.txt, or ISO 15924 code or locale
0545  * @param fillIn the UScriptCode buffer to fill in the script code
0546  * @param capacity the capacity (size) of UScriptCode buffer passed in.
0547  * @param err the error status code.
0548  * @return The number of script codes filled in the buffer passed in
0549  * @stable ICU 2.4
0550  */
0551 U_CAPI int32_t  U_EXPORT2
0552 uscript_getCode(const char* nameOrAbbrOrLocale,UScriptCode* fillIn,int32_t capacity,UErrorCode *err);
0553 
0554 /**
0555  * Returns the long Unicode script name, if there is one.
0556  * Otherwise returns the 4-letter ISO 15924 script code.
0557  * Returns "Malayam" given USCRIPT_MALAYALAM.
0558  *
0559  * @param scriptCode UScriptCode enum
0560  * @return long script name as given in PropertyValueAliases.txt, or the 4-letter code,
0561  * or NULL if scriptCode is invalid
0562  * @stable ICU 2.4
0563  */
0564 U_CAPI const char*  U_EXPORT2
0565 uscript_getName(UScriptCode scriptCode);
0566 
0567 /**
0568  * Returns the 4-letter ISO 15924 script code,
0569  * which is the same as the short Unicode script name if Unicode has names for the script.
0570  * Returns "Mlym" given USCRIPT_MALAYALAM.
0571  *
0572  * @param scriptCode UScriptCode enum
0573  * @return short script name (4-letter code), or NULL if scriptCode is invalid
0574  * @stable ICU 2.4
0575  */
0576 U_CAPI const char*  U_EXPORT2
0577 uscript_getShortName(UScriptCode scriptCode);
0578 
0579 /**
0580  * Gets the script code associated with the given codepoint.
0581  * Returns USCRIPT_MALAYALAM given 0x0D02
0582  * @param codepoint UChar32 codepoint
0583  * @param err the error status code.
0584  * @return The UScriptCode, or 0 if codepoint is invalid
0585  * @stable ICU 2.4
0586  */
0587 U_CAPI UScriptCode  U_EXPORT2
0588 uscript_getScript(UChar32 codepoint, UErrorCode *err);
0589 
0590 /**
0591  * Do the Script_Extensions of code point c contain script sc?
0592  * If c does not have explicit Script_Extensions, then this tests whether
0593  * c has the Script property value sc.
0594  *
0595  * Some characters are commonly used in multiple scripts.
0596  * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
0597  * @param c code point
0598  * @param sc script code
0599  * @return true if sc is in Script_Extensions(c)
0600  * @stable ICU 49
0601  */
0602 U_CAPI UBool U_EXPORT2
0603 uscript_hasScript(UChar32 c, UScriptCode sc);
0604 
0605 /**
0606  * Writes code point c's Script_Extensions as a list of UScriptCode values
0607  * to the output scripts array and returns the number of script codes.
0608  * - If c does have Script_Extensions, then the Script property value
0609  *   (normally Common or Inherited) is not included.
0610  * - If c does not have Script_Extensions, then the one Script code is written to the output array.
0611  * - If c is not a valid code point, then the one USCRIPT_UNKNOWN code is written.
0612  * In other words, if the return value is 1,
0613  * then the output array contains exactly c's single Script code.
0614  * If the return value is n>=2, then the output array contains c's n Script_Extensions script codes.
0615  *
0616  * Some characters are commonly used in multiple scripts.
0617  * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
0618  *
0619  * If there are more than capacity script codes to be written, then
0620  * U_BUFFER_OVERFLOW_ERROR is set and the number of Script_Extensions is returned.
0621  * (Usual ICU buffer handling behavior.)
0622  *
0623  * @param c code point
0624  * @param scripts output script code array
0625  * @param capacity capacity of the scripts array
0626  * @param errorCode Standard ICU error code. Its input value must
0627  *                  pass the U_SUCCESS() test, or else the function returns
0628  *                  immediately. Check for U_FAILURE() on output or use with
0629  *                  function chaining. (See User Guide for details.)
0630  * @return number of script codes in c's Script_Extensions, or 1 for the single Script value,
0631  *         written to scripts unless U_BUFFER_OVERFLOW_ERROR indicates insufficient capacity
0632  * @stable ICU 49
0633  */
0634 U_CAPI int32_t U_EXPORT2
0635 uscript_getScriptExtensions(UChar32 c,
0636                             UScriptCode *scripts, int32_t capacity,
0637                             UErrorCode *errorCode);
0638 
0639 /**
0640  * Script usage constants.
0641  * See UAX #31 Unicode Identifier and Pattern Syntax.
0642  * http://www.unicode.org/reports/tr31/#Table_Candidate_Characters_for_Exclusion_from_Identifiers
0643  *
0644  * @stable ICU 51
0645  */
0646 typedef enum UScriptUsage {
0647     /** Not encoded in Unicode. @stable ICU 51 */
0648     USCRIPT_USAGE_NOT_ENCODED,
0649     /** Unknown script usage. @stable ICU 51 */
0650     USCRIPT_USAGE_UNKNOWN,
0651     /** Candidate for Exclusion from Identifiers. @stable ICU 51 */
0652     USCRIPT_USAGE_EXCLUDED,
0653     /** Limited Use script. @stable ICU 51 */
0654     USCRIPT_USAGE_LIMITED_USE,
0655     /** Aspirational Use script. @stable ICU 51 */
0656     USCRIPT_USAGE_ASPIRATIONAL,
0657     /** Recommended script. @stable ICU 51 */
0658     USCRIPT_USAGE_RECOMMENDED
0659 } UScriptUsage;
0660 
0661 /**
0662  * Writes the script sample character string.
0663  * This string normally consists of one code point but might be longer.
0664  * The string is empty if the script is not encoded.
0665  *
0666  * @param script script code
0667  * @param dest output string array
0668  * @param capacity number of UChars in the dest array
0669  * @param pErrorCode standard ICU in/out error code, must pass U_SUCCESS() on input
0670  * @return the string length, even if U_BUFFER_OVERFLOW_ERROR
0671  * @stable ICU 51
0672  */
0673 U_CAPI int32_t U_EXPORT2
0674 uscript_getSampleString(UScriptCode script, UChar *dest, int32_t capacity, UErrorCode *pErrorCode);
0675 
0676 #if U_SHOW_CPLUSPLUS_API
0677 
0678 U_NAMESPACE_BEGIN
0679 class UnicodeString;
0680 U_NAMESPACE_END
0681 
0682 /**
0683  * Returns the script sample character string.
0684  * This string normally consists of one code point but might be longer.
0685  * The string is empty if the script is not encoded.
0686  *
0687  * @param script script code
0688  * @return the sample character string
0689  * @stable ICU 51
0690  */
0691 U_COMMON_API icu::UnicodeString U_EXPORT2
0692 uscript_getSampleUnicodeString(UScriptCode script);
0693 
0694 #endif
0695 
0696 /**
0697  * Returns the script usage according to UAX #31 Unicode Identifier and Pattern Syntax.
0698  * Returns USCRIPT_USAGE_NOT_ENCODED if the script is not encoded in Unicode.
0699  *
0700  * @param script script code
0701  * @return script usage
0702  * @see UScriptUsage
0703  * @stable ICU 51
0704  */
0705 U_CAPI UScriptUsage U_EXPORT2
0706 uscript_getUsage(UScriptCode script);
0707 
0708 /**
0709  * Returns true if the script is written right-to-left.
0710  * For example, Arab and Hebr.
0711  *
0712  * @param script script code
0713  * @return true if the script is right-to-left
0714  * @stable ICU 51
0715  */
0716 U_CAPI UBool U_EXPORT2
0717 uscript_isRightToLeft(UScriptCode script);
0718 
0719 /**
0720  * Returns true if the script allows line breaks between letters (excluding hyphenation).
0721  * Such a script typically requires dictionary-based line breaking.
0722  * For example, Hani and Thai.
0723  *
0724  * @param script script code
0725  * @return true if the script allows line breaks between letters
0726  * @stable ICU 51
0727  */
0728 U_CAPI UBool U_EXPORT2
0729 uscript_breaksBetweenLetters(UScriptCode script);
0730 
0731 /**
0732  * Returns true if in modern (or most recent) usage of the script case distinctions are customary.
0733  * For example, Latn and Cyrl.
0734  *
0735  * @param script script code
0736  * @return true if the script is cased
0737  * @stable ICU 51
0738  */
0739 U_CAPI UBool U_EXPORT2
0740 uscript_isCased(UScriptCode script);
0741 
0742 #endif