annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/unicode/uscript.h @ 69:33d812a61356

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