Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/unicode/uscript.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

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 #ifndef U_HIDE_DEPRECATED_API
0504     /**
0505      * One more than the highest normal UScriptCode value.
0506      * The highest value is available via u_getIntPropertyMaxValue(UCHAR_SCRIPT).
0507      *
0508      * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
0509      */
0510     USCRIPT_CODE_LIMIT    = 200
0511 #endif  // U_HIDE_DEPRECATED_API
0512 } UScriptCode;
0513 
0514 /**
0515  * Gets the script codes associated with the given locale or ISO 15924 abbreviation or name.
0516  * Fills in USCRIPT_MALAYALAM given "Malayam" OR "Mlym".
0517  * Fills in USCRIPT_LATIN given "en" OR "en_US"
0518  * If the required capacity is greater than the capacity of the destination buffer,
0519  * then the error code is set to U_BUFFER_OVERFLOW_ERROR and the required capacity is returned.
0520  *
0521  * <p>Note: To search by short or long script alias only, use
0522  * u_getPropertyValueEnum(UCHAR_SCRIPT, alias) instead.  That does
0523  * a fast lookup with no access of the locale data.
0524  *
0525  * @param nameOrAbbrOrLocale name of the script, as given in
0526  * PropertyValueAliases.txt, or ISO 15924 code or locale
0527  * @param fillIn the UScriptCode buffer to fill in the script code
0528  * @param capacity the capacity (size) of UScriptCode buffer passed in.
0529  * @param err the error status code.
0530  * @return The number of script codes filled in the buffer passed in
0531  * @stable ICU 2.4
0532  */
0533 U_CAPI int32_t  U_EXPORT2
0534 uscript_getCode(const char* nameOrAbbrOrLocale,UScriptCode* fillIn,int32_t capacity,UErrorCode *err);
0535 
0536 /**
0537  * Returns the long Unicode script name, if there is one.
0538  * Otherwise returns the 4-letter ISO 15924 script code.
0539  * Returns "Malayam" given USCRIPT_MALAYALAM.
0540  *
0541  * @param scriptCode UScriptCode enum
0542  * @return long script name as given in PropertyValueAliases.txt, or the 4-letter code,
0543  * or NULL if scriptCode is invalid
0544  * @stable ICU 2.4
0545  */
0546 U_CAPI const char*  U_EXPORT2
0547 uscript_getName(UScriptCode scriptCode);
0548 
0549 /**
0550  * Returns the 4-letter ISO 15924 script code,
0551  * which is the same as the short Unicode script name if Unicode has names for the script.
0552  * Returns "Mlym" given USCRIPT_MALAYALAM.
0553  *
0554  * @param scriptCode UScriptCode enum
0555  * @return short script name (4-letter code), or NULL if scriptCode is invalid
0556  * @stable ICU 2.4
0557  */
0558 U_CAPI const char*  U_EXPORT2
0559 uscript_getShortName(UScriptCode scriptCode);
0560 
0561 /**
0562  * Gets the script code associated with the given codepoint.
0563  * Returns USCRIPT_MALAYALAM given 0x0D02
0564  * @param codepoint UChar32 codepoint
0565  * @param err the error status code.
0566  * @return The UScriptCode, or 0 if codepoint is invalid
0567  * @stable ICU 2.4
0568  */
0569 U_CAPI UScriptCode  U_EXPORT2
0570 uscript_getScript(UChar32 codepoint, UErrorCode *err);
0571 
0572 /**
0573  * Do the Script_Extensions of code point c contain script sc?
0574  * If c does not have explicit Script_Extensions, then this tests whether
0575  * c has the Script property value sc.
0576  *
0577  * Some characters are commonly used in multiple scripts.
0578  * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
0579  * @param c code point
0580  * @param sc script code
0581  * @return true if sc is in Script_Extensions(c)
0582  * @stable ICU 49
0583  */
0584 U_CAPI UBool U_EXPORT2
0585 uscript_hasScript(UChar32 c, UScriptCode sc);
0586 
0587 /**
0588  * Writes code point c's Script_Extensions as a list of UScriptCode values
0589  * to the output scripts array and returns the number of script codes.
0590  * - If c does have Script_Extensions, then the Script property value
0591  *   (normally Common or Inherited) is not included.
0592  * - If c does not have Script_Extensions, then the one Script code is written to the output array.
0593  * - If c is not a valid code point, then the one USCRIPT_UNKNOWN code is written.
0594  * In other words, if the return value is 1,
0595  * then the output array contains exactly c's single Script code.
0596  * If the return value is n>=2, then the output array contains c's n Script_Extensions script codes.
0597  *
0598  * Some characters are commonly used in multiple scripts.
0599  * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
0600  *
0601  * If there are more than capacity script codes to be written, then
0602  * U_BUFFER_OVERFLOW_ERROR is set and the number of Script_Extensions is returned.
0603  * (Usual ICU buffer handling behavior.)
0604  *
0605  * @param c code point
0606  * @param scripts output script code array
0607  * @param capacity capacity of the scripts array
0608  * @param errorCode Standard ICU error code. Its input value must
0609  *                  pass the U_SUCCESS() test, or else the function returns
0610  *                  immediately. Check for U_FAILURE() on output or use with
0611  *                  function chaining. (See User Guide for details.)
0612  * @return number of script codes in c's Script_Extensions, or 1 for the single Script value,
0613  *         written to scripts unless U_BUFFER_OVERFLOW_ERROR indicates insufficient capacity
0614  * @stable ICU 49
0615  */
0616 U_CAPI int32_t U_EXPORT2
0617 uscript_getScriptExtensions(UChar32 c,
0618                             UScriptCode *scripts, int32_t capacity,
0619                             UErrorCode *errorCode);
0620 
0621 /**
0622  * Script usage constants.
0623  * See UAX #31 Unicode Identifier and Pattern Syntax.
0624  * http://www.unicode.org/reports/tr31/#Table_Candidate_Characters_for_Exclusion_from_Identifiers
0625  *
0626  * @stable ICU 51
0627  */
0628 typedef enum UScriptUsage {
0629     /** Not encoded in Unicode. @stable ICU 51 */
0630     USCRIPT_USAGE_NOT_ENCODED,
0631     /** Unknown script usage. @stable ICU 51 */
0632     USCRIPT_USAGE_UNKNOWN,
0633     /** Candidate for Exclusion from Identifiers. @stable ICU 51 */
0634     USCRIPT_USAGE_EXCLUDED,
0635     /** Limited Use script. @stable ICU 51 */
0636     USCRIPT_USAGE_LIMITED_USE,
0637     /** Aspirational Use script. @stable ICU 51 */
0638     USCRIPT_USAGE_ASPIRATIONAL,
0639     /** Recommended script. @stable ICU 51 */
0640     USCRIPT_USAGE_RECOMMENDED
0641 } UScriptUsage;
0642 
0643 /**
0644  * Writes the script sample character string.
0645  * This string normally consists of one code point but might be longer.
0646  * The string is empty if the script is not encoded.
0647  *
0648  * @param script script code
0649  * @param dest output string array
0650  * @param capacity number of UChars in the dest array
0651  * @param pErrorCode standard ICU in/out error code, must pass U_SUCCESS() on input
0652  * @return the string length, even if U_BUFFER_OVERFLOW_ERROR
0653  * @stable ICU 51
0654  */
0655 U_CAPI int32_t U_EXPORT2
0656 uscript_getSampleString(UScriptCode script, UChar *dest, int32_t capacity, UErrorCode *pErrorCode);
0657 
0658 #if U_SHOW_CPLUSPLUS_API
0659 
0660 U_NAMESPACE_BEGIN
0661 class UnicodeString;
0662 U_NAMESPACE_END
0663 
0664 /**
0665  * Returns the script sample character string.
0666  * This string normally consists of one code point but might be longer.
0667  * The string is empty if the script is not encoded.
0668  *
0669  * @param script script code
0670  * @return the sample character string
0671  * @stable ICU 51
0672  */
0673 U_COMMON_API icu::UnicodeString U_EXPORT2
0674 uscript_getSampleUnicodeString(UScriptCode script);
0675 
0676 #endif
0677 
0678 /**
0679  * Returns the script usage according to UAX #31 Unicode Identifier and Pattern Syntax.
0680  * Returns USCRIPT_USAGE_NOT_ENCODED if the script is not encoded in Unicode.
0681  *
0682  * @param script script code
0683  * @return script usage
0684  * @see UScriptUsage
0685  * @stable ICU 51
0686  */
0687 U_CAPI UScriptUsage U_EXPORT2
0688 uscript_getUsage(UScriptCode script);
0689 
0690 /**
0691  * Returns true if the script is written right-to-left.
0692  * For example, Arab and Hebr.
0693  *
0694  * @param script script code
0695  * @return true if the script is right-to-left
0696  * @stable ICU 51
0697  */
0698 U_CAPI UBool U_EXPORT2
0699 uscript_isRightToLeft(UScriptCode script);
0700 
0701 /**
0702  * Returns true if the script allows line breaks between letters (excluding hyphenation).
0703  * Such a script typically requires dictionary-based line breaking.
0704  * For example, Hani and Thai.
0705  *
0706  * @param script script code
0707  * @return true if the script allows line breaks between letters
0708  * @stable ICU 51
0709  */
0710 U_CAPI UBool U_EXPORT2
0711 uscript_breaksBetweenLetters(UScriptCode script);
0712 
0713 /**
0714  * Returns true if in modern (or most recent) usage of the script case distinctions are customary.
0715  * For example, Latn and Cyrl.
0716  *
0717  * @param script script code
0718  * @return true if the script is cased
0719  * @stable ICU 51
0720  */
0721 U_CAPI UBool U_EXPORT2
0722 uscript_isCased(UScriptCode script);
0723 
0724 #endif