17777dab0Sopenharmony_ci// © 2016 and later: Unicode, Inc. and others.
27777dab0Sopenharmony_ci// License & terms of use: http://www.unicode.org/copyright.html
37777dab0Sopenharmony_ci/*
47777dab0Sopenharmony_ci **********************************************************************
57777dab0Sopenharmony_ci *   Copyright (C) 1997-2016, International Business Machines
67777dab0Sopenharmony_ci *   Corporation and others.  All Rights Reserved.
77777dab0Sopenharmony_ci **********************************************************************
87777dab0Sopenharmony_ci *
97777dab0Sopenharmony_ci * File USCRIPT.H
107777dab0Sopenharmony_ci *
117777dab0Sopenharmony_ci * Modification History:
127777dab0Sopenharmony_ci *
137777dab0Sopenharmony_ci *   Date        Name        Description
147777dab0Sopenharmony_ci *   07/06/2001    Ram         Creation.
157777dab0Sopenharmony_ci ******************************************************************************
167777dab0Sopenharmony_ci */
177777dab0Sopenharmony_ci
187777dab0Sopenharmony_ci#ifndef USCRIPT_H
197777dab0Sopenharmony_ci#define USCRIPT_H
207777dab0Sopenharmony_ci#include "unicode/utypes.h"
217777dab0Sopenharmony_ci
227777dab0Sopenharmony_ci/**
237777dab0Sopenharmony_ci * \file
247777dab0Sopenharmony_ci * \brief C API: Unicode Script Information
257777dab0Sopenharmony_ci */
267777dab0Sopenharmony_ci
277777dab0Sopenharmony_ci/**
287777dab0Sopenharmony_ci * Constants for ISO 15924 script codes.
297777dab0Sopenharmony_ci *
307777dab0Sopenharmony_ci * The current set of script code constants supports at least all scripts
317777dab0Sopenharmony_ci * that are encoded in the version of Unicode which ICU currently supports.
327777dab0Sopenharmony_ci * The names of the constants are usually derived from the
337777dab0Sopenharmony_ci * Unicode script property value aliases.
347777dab0Sopenharmony_ci * See UAX #24 Unicode Script Property (http://www.unicode.org/reports/tr24/)
357777dab0Sopenharmony_ci * and http://www.unicode.org/Public/UCD/latest/ucd/PropertyValueAliases.txt .
367777dab0Sopenharmony_ci *
377777dab0Sopenharmony_ci * In addition, constants for many ISO 15924 script codes
387777dab0Sopenharmony_ci * are included, for use with language tags, CLDR data, and similar.
397777dab0Sopenharmony_ci * Some of those codes are not used in the Unicode Character Database (UCD).
407777dab0Sopenharmony_ci * For example, there are no characters that have a UCD script property value of
417777dab0Sopenharmony_ci * Hans or Hant. All Han ideographs have the Hani script property value in Unicode.
427777dab0Sopenharmony_ci *
437777dab0Sopenharmony_ci * Private-use codes Qaaa..Qabx are not included, except as used in the UCD or in CLDR.
447777dab0Sopenharmony_ci *
457777dab0Sopenharmony_ci * Starting with ICU 55, script codes are only added when their scripts
467777dab0Sopenharmony_ci * have been or will certainly be encoded in Unicode,
477777dab0Sopenharmony_ci * and have been assigned Unicode script property value aliases,
487777dab0Sopenharmony_ci * to ensure that their script names are stable and match the names of the constants.
497777dab0Sopenharmony_ci * Script codes like Latf and Aran that are not subject to separate encoding
507777dab0Sopenharmony_ci * may be added at any time.
517777dab0Sopenharmony_ci *
527777dab0Sopenharmony_ci * @stable ICU 2.2
537777dab0Sopenharmony_ci */
547777dab0Sopenharmony_citypedef enum UScriptCode {
557777dab0Sopenharmony_ci    /*
567777dab0Sopenharmony_ci     * Note: UScriptCode constants and their ISO script code comments
577777dab0Sopenharmony_ci     * are parsed by preparseucd.py.
587777dab0Sopenharmony_ci     * It matches lines like
597777dab0Sopenharmony_ci     *     USCRIPT_<Unicode Script value name> = <integer>,  / * <ISO script code> * /
607777dab0Sopenharmony_ci     */
617777dab0Sopenharmony_ci
627777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
637777dab0Sopenharmony_ci      USCRIPT_INVALID_CODE = -1,
647777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
657777dab0Sopenharmony_ci      USCRIPT_COMMON       =  0,  /* Zyyy */
667777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
677777dab0Sopenharmony_ci      USCRIPT_INHERITED    =  1,  /* Zinh */ /* "Code for inherited script", for non-spacing combining marks; also Qaai */
687777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
697777dab0Sopenharmony_ci      USCRIPT_ARABIC       =  2,  /* Arab */
707777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
717777dab0Sopenharmony_ci      USCRIPT_ARMENIAN     =  3,  /* Armn */
727777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
737777dab0Sopenharmony_ci      USCRIPT_BENGALI      =  4,  /* Beng */
747777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
757777dab0Sopenharmony_ci      USCRIPT_BOPOMOFO     =  5,  /* Bopo */
767777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
777777dab0Sopenharmony_ci      USCRIPT_CHEROKEE     =  6,  /* Cher */
787777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
797777dab0Sopenharmony_ci      USCRIPT_COPTIC       =  7,  /* Copt */
807777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
817777dab0Sopenharmony_ci      USCRIPT_CYRILLIC     =  8,  /* Cyrl */
827777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
837777dab0Sopenharmony_ci      USCRIPT_DESERET      =  9,  /* Dsrt */
847777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
857777dab0Sopenharmony_ci      USCRIPT_DEVANAGARI   = 10,  /* Deva */
867777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
877777dab0Sopenharmony_ci      USCRIPT_ETHIOPIC     = 11,  /* Ethi */
887777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
897777dab0Sopenharmony_ci      USCRIPT_GEORGIAN     = 12,  /* Geor */
907777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
917777dab0Sopenharmony_ci      USCRIPT_GOTHIC       = 13,  /* Goth */
927777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
937777dab0Sopenharmony_ci      USCRIPT_GREEK        = 14,  /* Grek */
947777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
957777dab0Sopenharmony_ci      USCRIPT_GUJARATI     = 15,  /* Gujr */
967777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
977777dab0Sopenharmony_ci      USCRIPT_GURMUKHI     = 16,  /* Guru */
987777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
997777dab0Sopenharmony_ci      USCRIPT_HAN          = 17,  /* Hani */
1007777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1017777dab0Sopenharmony_ci      USCRIPT_HANGUL       = 18,  /* Hang */
1027777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1037777dab0Sopenharmony_ci      USCRIPT_HEBREW       = 19,  /* Hebr */
1047777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1057777dab0Sopenharmony_ci      USCRIPT_HIRAGANA     = 20,  /* Hira */
1067777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1077777dab0Sopenharmony_ci      USCRIPT_KANNADA      = 21,  /* Knda */
1087777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1097777dab0Sopenharmony_ci      USCRIPT_KATAKANA     = 22,  /* Kana */
1107777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1117777dab0Sopenharmony_ci      USCRIPT_KHMER        = 23,  /* Khmr */
1127777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1137777dab0Sopenharmony_ci      USCRIPT_LAO          = 24,  /* Laoo */
1147777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1157777dab0Sopenharmony_ci      USCRIPT_LATIN        = 25,  /* Latn */
1167777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1177777dab0Sopenharmony_ci      USCRIPT_MALAYALAM    = 26,  /* Mlym */
1187777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1197777dab0Sopenharmony_ci      USCRIPT_MONGOLIAN    = 27,  /* Mong */
1207777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1217777dab0Sopenharmony_ci      USCRIPT_MYANMAR      = 28,  /* Mymr */
1227777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1237777dab0Sopenharmony_ci      USCRIPT_OGHAM        = 29,  /* Ogam */
1247777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1257777dab0Sopenharmony_ci      USCRIPT_OLD_ITALIC   = 30,  /* Ital */
1267777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1277777dab0Sopenharmony_ci      USCRIPT_ORIYA        = 31,  /* Orya */
1287777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1297777dab0Sopenharmony_ci      USCRIPT_RUNIC        = 32,  /* Runr */
1307777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1317777dab0Sopenharmony_ci      USCRIPT_SINHALA      = 33,  /* Sinh */
1327777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1337777dab0Sopenharmony_ci      USCRIPT_SYRIAC       = 34,  /* Syrc */
1347777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1357777dab0Sopenharmony_ci      USCRIPT_TAMIL        = 35,  /* Taml */
1367777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1377777dab0Sopenharmony_ci      USCRIPT_TELUGU       = 36,  /* Telu */
1387777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1397777dab0Sopenharmony_ci      USCRIPT_THAANA       = 37,  /* Thaa */
1407777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1417777dab0Sopenharmony_ci      USCRIPT_THAI         = 38,  /* Thai */
1427777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1437777dab0Sopenharmony_ci      USCRIPT_TIBETAN      = 39,  /* Tibt */
1447777dab0Sopenharmony_ci      /** Canadian_Aboriginal script. @stable ICU 2.6 */
1457777dab0Sopenharmony_ci      USCRIPT_CANADIAN_ABORIGINAL = 40,  /* Cans */
1467777dab0Sopenharmony_ci      /** Canadian_Aboriginal script (alias). @stable ICU 2.2 */
1477777dab0Sopenharmony_ci      USCRIPT_UCAS         = USCRIPT_CANADIAN_ABORIGINAL,
1487777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1497777dab0Sopenharmony_ci      USCRIPT_YI           = 41,  /* Yiii */
1507777dab0Sopenharmony_ci      /* New scripts in Unicode 3.2 */
1517777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1527777dab0Sopenharmony_ci      USCRIPT_TAGALOG      = 42,  /* Tglg */
1537777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1547777dab0Sopenharmony_ci      USCRIPT_HANUNOO      = 43,  /* Hano */
1557777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1567777dab0Sopenharmony_ci      USCRIPT_BUHID        = 44,  /* Buhd */
1577777dab0Sopenharmony_ci      /** @stable ICU 2.2 */
1587777dab0Sopenharmony_ci      USCRIPT_TAGBANWA     = 45,  /* Tagb */
1597777dab0Sopenharmony_ci
1607777dab0Sopenharmony_ci      /* New scripts in Unicode 4 */
1617777dab0Sopenharmony_ci      /** @stable ICU 2.6 */
1627777dab0Sopenharmony_ci      USCRIPT_BRAILLE      = 46,  /* Brai */
1637777dab0Sopenharmony_ci      /** @stable ICU 2.6 */
1647777dab0Sopenharmony_ci      USCRIPT_CYPRIOT      = 47,  /* Cprt */
1657777dab0Sopenharmony_ci      /** @stable ICU 2.6 */
1667777dab0Sopenharmony_ci      USCRIPT_LIMBU        = 48,  /* Limb */
1677777dab0Sopenharmony_ci      /** @stable ICU 2.6 */
1687777dab0Sopenharmony_ci      USCRIPT_LINEAR_B     = 49,  /* Linb */
1697777dab0Sopenharmony_ci      /** @stable ICU 2.6 */
1707777dab0Sopenharmony_ci      USCRIPT_OSMANYA      = 50,  /* Osma */
1717777dab0Sopenharmony_ci      /** @stable ICU 2.6 */
1727777dab0Sopenharmony_ci      USCRIPT_SHAVIAN      = 51,  /* Shaw */
1737777dab0Sopenharmony_ci      /** @stable ICU 2.6 */
1747777dab0Sopenharmony_ci      USCRIPT_TAI_LE       = 52,  /* Tale */
1757777dab0Sopenharmony_ci      /** @stable ICU 2.6 */
1767777dab0Sopenharmony_ci      USCRIPT_UGARITIC     = 53,  /* Ugar */
1777777dab0Sopenharmony_ci
1787777dab0Sopenharmony_ci      /** New script code in Unicode 4.0.1 @stable ICU 3.0 */
1797777dab0Sopenharmony_ci      USCRIPT_KATAKANA_OR_HIRAGANA = 54,/*Hrkt */
1807777dab0Sopenharmony_ci
1817777dab0Sopenharmony_ci      /* New scripts in Unicode 4.1 */
1827777dab0Sopenharmony_ci      /** @stable ICU 3.4 */
1837777dab0Sopenharmony_ci      USCRIPT_BUGINESE      = 55, /* Bugi */
1847777dab0Sopenharmony_ci      /** @stable ICU 3.4 */
1857777dab0Sopenharmony_ci      USCRIPT_GLAGOLITIC    = 56, /* Glag */
1867777dab0Sopenharmony_ci      /** @stable ICU 3.4 */
1877777dab0Sopenharmony_ci      USCRIPT_KHAROSHTHI    = 57, /* Khar */
1887777dab0Sopenharmony_ci      /** @stable ICU 3.4 */
1897777dab0Sopenharmony_ci      USCRIPT_SYLOTI_NAGRI  = 58, /* Sylo */
1907777dab0Sopenharmony_ci      /** @stable ICU 3.4 */
1917777dab0Sopenharmony_ci      USCRIPT_NEW_TAI_LUE   = 59, /* Talu */
1927777dab0Sopenharmony_ci      /** @stable ICU 3.4 */
1937777dab0Sopenharmony_ci      USCRIPT_TIFINAGH      = 60, /* Tfng */
1947777dab0Sopenharmony_ci      /** @stable ICU 3.4 */
1957777dab0Sopenharmony_ci      USCRIPT_OLD_PERSIAN   = 61, /* Xpeo */
1967777dab0Sopenharmony_ci
1977777dab0Sopenharmony_ci      /* New script codes from Unicode and ISO 15924 */
1987777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
1997777dab0Sopenharmony_ci      USCRIPT_BALINESE                      = 62, /* Bali */
2007777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2017777dab0Sopenharmony_ci      USCRIPT_BATAK                         = 63, /* Batk */
2027777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2037777dab0Sopenharmony_ci      USCRIPT_BLISSYMBOLS                   = 64, /* Blis */
2047777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2057777dab0Sopenharmony_ci      USCRIPT_BRAHMI                        = 65, /* Brah */
2067777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2077777dab0Sopenharmony_ci      USCRIPT_CHAM                          = 66, /* Cham */
2087777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2097777dab0Sopenharmony_ci      USCRIPT_CIRTH                         = 67, /* Cirt */
2107777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2117777dab0Sopenharmony_ci      USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC  = 68, /* Cyrs */
2127777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2137777dab0Sopenharmony_ci      USCRIPT_DEMOTIC_EGYPTIAN              = 69, /* Egyd */
2147777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2157777dab0Sopenharmony_ci      USCRIPT_HIERATIC_EGYPTIAN             = 70, /* Egyh */
2167777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2177777dab0Sopenharmony_ci      USCRIPT_EGYPTIAN_HIEROGLYPHS          = 71, /* Egyp */
2187777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2197777dab0Sopenharmony_ci      USCRIPT_KHUTSURI                      = 72, /* Geok */
2207777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2217777dab0Sopenharmony_ci      USCRIPT_SIMPLIFIED_HAN                = 73, /* Hans */
2227777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2237777dab0Sopenharmony_ci      USCRIPT_TRADITIONAL_HAN               = 74, /* Hant */
2247777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2257777dab0Sopenharmony_ci      USCRIPT_PAHAWH_HMONG                  = 75, /* Hmng */
2267777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2277777dab0Sopenharmony_ci      USCRIPT_OLD_HUNGARIAN                 = 76, /* Hung */
2287777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2297777dab0Sopenharmony_ci      USCRIPT_HARAPPAN_INDUS                = 77, /* Inds */
2307777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2317777dab0Sopenharmony_ci      USCRIPT_JAVANESE                      = 78, /* Java */
2327777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2337777dab0Sopenharmony_ci      USCRIPT_KAYAH_LI                      = 79, /* Kali */
2347777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2357777dab0Sopenharmony_ci      USCRIPT_LATIN_FRAKTUR                 = 80, /* Latf */
2367777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2377777dab0Sopenharmony_ci      USCRIPT_LATIN_GAELIC                  = 81, /* Latg */
2387777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2397777dab0Sopenharmony_ci      USCRIPT_LEPCHA                        = 82, /* Lepc */
2407777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2417777dab0Sopenharmony_ci      USCRIPT_LINEAR_A                      = 83, /* Lina */
2427777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
2437777dab0Sopenharmony_ci      USCRIPT_MANDAIC                       = 84, /* Mand */
2447777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2457777dab0Sopenharmony_ci      USCRIPT_MANDAEAN                      = USCRIPT_MANDAIC,
2467777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2477777dab0Sopenharmony_ci      USCRIPT_MAYAN_HIEROGLYPHS             = 85, /* Maya */
2487777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
2497777dab0Sopenharmony_ci      USCRIPT_MEROITIC_HIEROGLYPHS          = 86, /* Mero */
2507777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2517777dab0Sopenharmony_ci      USCRIPT_MEROITIC                      = USCRIPT_MEROITIC_HIEROGLYPHS,
2527777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2537777dab0Sopenharmony_ci      USCRIPT_NKO                           = 87, /* Nkoo */
2547777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2557777dab0Sopenharmony_ci      USCRIPT_ORKHON                        = 88, /* Orkh */
2567777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2577777dab0Sopenharmony_ci      USCRIPT_OLD_PERMIC                    = 89, /* Perm */
2587777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2597777dab0Sopenharmony_ci      USCRIPT_PHAGS_PA                      = 90, /* Phag */
2607777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2617777dab0Sopenharmony_ci      USCRIPT_PHOENICIAN                    = 91, /* Phnx */
2627777dab0Sopenharmony_ci      /** @stable ICU 52 */
2637777dab0Sopenharmony_ci      USCRIPT_MIAO                          = 92, /* Plrd */
2647777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2657777dab0Sopenharmony_ci      USCRIPT_PHONETIC_POLLARD              = USCRIPT_MIAO,
2667777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2677777dab0Sopenharmony_ci      USCRIPT_RONGORONGO                    = 93, /* Roro */
2687777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2697777dab0Sopenharmony_ci      USCRIPT_SARATI                        = 94, /* Sara */
2707777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2717777dab0Sopenharmony_ci      USCRIPT_ESTRANGELO_SYRIAC             = 95, /* Syre */
2727777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2737777dab0Sopenharmony_ci      USCRIPT_WESTERN_SYRIAC                = 96, /* Syrj */
2747777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2757777dab0Sopenharmony_ci      USCRIPT_EASTERN_SYRIAC                = 97, /* Syrn */
2767777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2777777dab0Sopenharmony_ci      USCRIPT_TENGWAR                       = 98, /* Teng */
2787777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2797777dab0Sopenharmony_ci      USCRIPT_VAI                           = 99, /* Vaii */
2807777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2817777dab0Sopenharmony_ci      USCRIPT_VISIBLE_SPEECH                = 100,/* Visp */
2827777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2837777dab0Sopenharmony_ci      USCRIPT_CUNEIFORM                     = 101,/* Xsux */
2847777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2857777dab0Sopenharmony_ci      USCRIPT_UNWRITTEN_LANGUAGES           = 102,/* Zxxx */
2867777dab0Sopenharmony_ci      /** @stable ICU 3.6 */
2877777dab0Sopenharmony_ci      USCRIPT_UNKNOWN                       = 103,/* Zzzz */ /* Unknown="Code for uncoded script", for unassigned code points */
2887777dab0Sopenharmony_ci
2897777dab0Sopenharmony_ci      /** @stable ICU 3.8 */
2907777dab0Sopenharmony_ci      USCRIPT_CARIAN                        = 104,/* Cari */
2917777dab0Sopenharmony_ci      /** @stable ICU 3.8 */
2927777dab0Sopenharmony_ci      USCRIPT_JAPANESE                      = 105,/* Jpan */
2937777dab0Sopenharmony_ci      /** @stable ICU 3.8 */
2947777dab0Sopenharmony_ci      USCRIPT_LANNA                         = 106,/* Lana */
2957777dab0Sopenharmony_ci      /** @stable ICU 3.8 */
2967777dab0Sopenharmony_ci      USCRIPT_LYCIAN                        = 107,/* Lyci */
2977777dab0Sopenharmony_ci      /** @stable ICU 3.8 */
2987777dab0Sopenharmony_ci      USCRIPT_LYDIAN                        = 108,/* Lydi */
2997777dab0Sopenharmony_ci      /** @stable ICU 3.8 */
3007777dab0Sopenharmony_ci      USCRIPT_OL_CHIKI                      = 109,/* Olck */
3017777dab0Sopenharmony_ci      /** @stable ICU 3.8 */
3027777dab0Sopenharmony_ci      USCRIPT_REJANG                        = 110,/* Rjng */
3037777dab0Sopenharmony_ci      /** @stable ICU 3.8 */
3047777dab0Sopenharmony_ci      USCRIPT_SAURASHTRA                    = 111,/* Saur */
3057777dab0Sopenharmony_ci      /** Sutton SignWriting @stable ICU 3.8 */
3067777dab0Sopenharmony_ci      USCRIPT_SIGN_WRITING                  = 112,/* Sgnw */
3077777dab0Sopenharmony_ci      /** @stable ICU 3.8 */
3087777dab0Sopenharmony_ci      USCRIPT_SUNDANESE                     = 113,/* Sund */
3097777dab0Sopenharmony_ci      /** @stable ICU 3.8 */
3107777dab0Sopenharmony_ci      USCRIPT_MOON                          = 114,/* Moon */
3117777dab0Sopenharmony_ci      /** @stable ICU 3.8 */
3127777dab0Sopenharmony_ci      USCRIPT_MEITEI_MAYEK                  = 115,/* Mtei */
3137777dab0Sopenharmony_ci
3147777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3157777dab0Sopenharmony_ci      USCRIPT_IMPERIAL_ARAMAIC              = 116,/* Armi */
3167777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3177777dab0Sopenharmony_ci      USCRIPT_AVESTAN                       = 117,/* Avst */
3187777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3197777dab0Sopenharmony_ci      USCRIPT_CHAKMA                        = 118,/* Cakm */
3207777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3217777dab0Sopenharmony_ci      USCRIPT_KOREAN                        = 119,/* Kore */
3227777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3237777dab0Sopenharmony_ci      USCRIPT_KAITHI                        = 120,/* Kthi */
3247777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3257777dab0Sopenharmony_ci      USCRIPT_MANICHAEAN                    = 121,/* Mani */
3267777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3277777dab0Sopenharmony_ci      USCRIPT_INSCRIPTIONAL_PAHLAVI         = 122,/* Phli */
3287777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3297777dab0Sopenharmony_ci      USCRIPT_PSALTER_PAHLAVI               = 123,/* Phlp */
3307777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3317777dab0Sopenharmony_ci      USCRIPT_BOOK_PAHLAVI                  = 124,/* Phlv */
3327777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3337777dab0Sopenharmony_ci      USCRIPT_INSCRIPTIONAL_PARTHIAN        = 125,/* Prti */
3347777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3357777dab0Sopenharmony_ci      USCRIPT_SAMARITAN                     = 126,/* Samr */
3367777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3377777dab0Sopenharmony_ci      USCRIPT_TAI_VIET                      = 127,/* Tavt */
3387777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3397777dab0Sopenharmony_ci      USCRIPT_MATHEMATICAL_NOTATION         = 128,/* Zmth */
3407777dab0Sopenharmony_ci      /** @stable ICU 4.0 */
3417777dab0Sopenharmony_ci      USCRIPT_SYMBOLS                       = 129,/* Zsym */
3427777dab0Sopenharmony_ci
3437777dab0Sopenharmony_ci      /** @stable ICU 4.4 */
3447777dab0Sopenharmony_ci      USCRIPT_BAMUM                         = 130,/* Bamu */
3457777dab0Sopenharmony_ci      /** @stable ICU 4.4 */
3467777dab0Sopenharmony_ci      USCRIPT_LISU                          = 131,/* Lisu */
3477777dab0Sopenharmony_ci      /** @stable ICU 4.4 */
3487777dab0Sopenharmony_ci      USCRIPT_NAKHI_GEBA                    = 132,/* Nkgb */
3497777dab0Sopenharmony_ci      /** @stable ICU 4.4 */
3507777dab0Sopenharmony_ci      USCRIPT_OLD_SOUTH_ARABIAN             = 133,/* Sarb */
3517777dab0Sopenharmony_ci
3527777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
3537777dab0Sopenharmony_ci      USCRIPT_BASSA_VAH                     = 134,/* Bass */
3547777dab0Sopenharmony_ci      /** @stable ICU 54 */
3557777dab0Sopenharmony_ci      USCRIPT_DUPLOYAN                      = 135,/* Dupl */
3567777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
3577777dab0Sopenharmony_ci      USCRIPT_ELBASAN                       = 136,/* Elba */
3587777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
3597777dab0Sopenharmony_ci      USCRIPT_GRANTHA                       = 137,/* Gran */
3607777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
3617777dab0Sopenharmony_ci      USCRIPT_KPELLE                        = 138,/* Kpel */
3627777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
3637777dab0Sopenharmony_ci      USCRIPT_LOMA                          = 139,/* Loma */
3647777dab0Sopenharmony_ci      /** Mende Kikakui @stable ICU 4.6 */
3657777dab0Sopenharmony_ci      USCRIPT_MENDE                         = 140,/* Mend */
3667777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
3677777dab0Sopenharmony_ci      USCRIPT_MEROITIC_CURSIVE              = 141,/* Merc */
3687777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
3697777dab0Sopenharmony_ci      USCRIPT_OLD_NORTH_ARABIAN             = 142,/* Narb */
3707777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
3717777dab0Sopenharmony_ci      USCRIPT_NABATAEAN                     = 143,/* Nbat */
3727777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
3737777dab0Sopenharmony_ci      USCRIPT_PALMYRENE                     = 144,/* Palm */
3747777dab0Sopenharmony_ci      /** @stable ICU 54 */
3757777dab0Sopenharmony_ci      USCRIPT_KHUDAWADI                     = 145,/* Sind */
3767777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
3777777dab0Sopenharmony_ci      USCRIPT_SINDHI                        = USCRIPT_KHUDAWADI,
3787777dab0Sopenharmony_ci      /** @stable ICU 4.6 */
3797777dab0Sopenharmony_ci      USCRIPT_WARANG_CITI                   = 146,/* Wara */
3807777dab0Sopenharmony_ci
3817777dab0Sopenharmony_ci      /** @stable ICU 4.8 */
3827777dab0Sopenharmony_ci      USCRIPT_AFAKA                         = 147,/* Afak */
3837777dab0Sopenharmony_ci      /** @stable ICU 4.8 */
3847777dab0Sopenharmony_ci      USCRIPT_JURCHEN                       = 148,/* Jurc */
3857777dab0Sopenharmony_ci      /** @stable ICU 4.8 */
3867777dab0Sopenharmony_ci      USCRIPT_MRO                           = 149,/* Mroo */
3877777dab0Sopenharmony_ci      /** @stable ICU 4.8 */
3887777dab0Sopenharmony_ci      USCRIPT_NUSHU                         = 150,/* Nshu */
3897777dab0Sopenharmony_ci      /** @stable ICU 4.8 */
3907777dab0Sopenharmony_ci      USCRIPT_SHARADA                       = 151,/* Shrd */
3917777dab0Sopenharmony_ci      /** @stable ICU 4.8 */
3927777dab0Sopenharmony_ci      USCRIPT_SORA_SOMPENG                  = 152,/* Sora */
3937777dab0Sopenharmony_ci      /** @stable ICU 4.8 */
3947777dab0Sopenharmony_ci      USCRIPT_TAKRI                         = 153,/* Takr */
3957777dab0Sopenharmony_ci      /** @stable ICU 4.8 */
3967777dab0Sopenharmony_ci      USCRIPT_TANGUT                        = 154,/* Tang */
3977777dab0Sopenharmony_ci      /** @stable ICU 4.8 */
3987777dab0Sopenharmony_ci      USCRIPT_WOLEAI                        = 155,/* Wole */
3997777dab0Sopenharmony_ci
4007777dab0Sopenharmony_ci      /** @stable ICU 49 */
4017777dab0Sopenharmony_ci      USCRIPT_ANATOLIAN_HIEROGLYPHS         = 156,/* Hluw */
4027777dab0Sopenharmony_ci      /** @stable ICU 49 */
4037777dab0Sopenharmony_ci      USCRIPT_KHOJKI                        = 157,/* Khoj */
4047777dab0Sopenharmony_ci      /** @stable ICU 49 */
4057777dab0Sopenharmony_ci      USCRIPT_TIRHUTA                       = 158,/* Tirh */
4067777dab0Sopenharmony_ci
4077777dab0Sopenharmony_ci      /** @stable ICU 52 */
4087777dab0Sopenharmony_ci      USCRIPT_CAUCASIAN_ALBANIAN            = 159,/* Aghb */
4097777dab0Sopenharmony_ci      /** @stable ICU 52 */
4107777dab0Sopenharmony_ci      USCRIPT_MAHAJANI                      = 160,/* Mahj */
4117777dab0Sopenharmony_ci
4127777dab0Sopenharmony_ci      /** @stable ICU 54 */
4137777dab0Sopenharmony_ci      USCRIPT_AHOM                          = 161,/* Ahom */
4147777dab0Sopenharmony_ci      /** @stable ICU 54 */
4157777dab0Sopenharmony_ci      USCRIPT_HATRAN                        = 162,/* Hatr */
4167777dab0Sopenharmony_ci      /** @stable ICU 54 */
4177777dab0Sopenharmony_ci      USCRIPT_MODI                          = 163,/* Modi */
4187777dab0Sopenharmony_ci      /** @stable ICU 54 */
4197777dab0Sopenharmony_ci      USCRIPT_MULTANI                       = 164,/* Mult */
4207777dab0Sopenharmony_ci      /** @stable ICU 54 */
4217777dab0Sopenharmony_ci      USCRIPT_PAU_CIN_HAU                   = 165,/* Pauc */
4227777dab0Sopenharmony_ci      /** @stable ICU 54 */
4237777dab0Sopenharmony_ci      USCRIPT_SIDDHAM                       = 166,/* Sidd */
4247777dab0Sopenharmony_ci
4257777dab0Sopenharmony_ci      /** @stable ICU 58 */
4267777dab0Sopenharmony_ci      USCRIPT_ADLAM                         = 167,/* Adlm */
4277777dab0Sopenharmony_ci      /** @stable ICU 58 */
4287777dab0Sopenharmony_ci      USCRIPT_BHAIKSUKI                     = 168,/* Bhks */
4297777dab0Sopenharmony_ci      /** @stable ICU 58 */
4307777dab0Sopenharmony_ci      USCRIPT_MARCHEN                       = 169,/* Marc */
4317777dab0Sopenharmony_ci      /** @stable ICU 58 */
4327777dab0Sopenharmony_ci      USCRIPT_NEWA                          = 170,/* Newa */
4337777dab0Sopenharmony_ci      /** @stable ICU 58 */
4347777dab0Sopenharmony_ci      USCRIPT_OSAGE                         = 171,/* Osge */
4357777dab0Sopenharmony_ci
4367777dab0Sopenharmony_ci      /** @stable ICU 58 */
4377777dab0Sopenharmony_ci      USCRIPT_HAN_WITH_BOPOMOFO             = 172,/* Hanb */
4387777dab0Sopenharmony_ci      /** @stable ICU 58 */
4397777dab0Sopenharmony_ci      USCRIPT_JAMO                          = 173,/* Jamo */
4407777dab0Sopenharmony_ci      /** @stable ICU 58 */
4417777dab0Sopenharmony_ci      USCRIPT_SYMBOLS_EMOJI                 = 174,/* Zsye */
4427777dab0Sopenharmony_ci
4437777dab0Sopenharmony_ci      /** @stable ICU 60 */
4447777dab0Sopenharmony_ci      USCRIPT_MASARAM_GONDI                 = 175,/* Gonm */
4457777dab0Sopenharmony_ci      /** @stable ICU 60 */
4467777dab0Sopenharmony_ci      USCRIPT_SOYOMBO                       = 176,/* Soyo */
4477777dab0Sopenharmony_ci      /** @stable ICU 60 */
4487777dab0Sopenharmony_ci      USCRIPT_ZANABAZAR_SQUARE              = 177,/* Zanb */
4497777dab0Sopenharmony_ci
4507777dab0Sopenharmony_ci      /** @stable ICU 62 */
4517777dab0Sopenharmony_ci      USCRIPT_DOGRA                         = 178,/* Dogr */
4527777dab0Sopenharmony_ci      /** @stable ICU 62 */
4537777dab0Sopenharmony_ci      USCRIPT_GUNJALA_GONDI                 = 179,/* Gong */
4547777dab0Sopenharmony_ci      /** @stable ICU 62 */
4557777dab0Sopenharmony_ci      USCRIPT_MAKASAR                       = 180,/* Maka */
4567777dab0Sopenharmony_ci      /** @stable ICU 62 */
4577777dab0Sopenharmony_ci      USCRIPT_MEDEFAIDRIN                   = 181,/* Medf */
4587777dab0Sopenharmony_ci      /** @stable ICU 62 */
4597777dab0Sopenharmony_ci      USCRIPT_HANIFI_ROHINGYA               = 182,/* Rohg */
4607777dab0Sopenharmony_ci      /** @stable ICU 62 */
4617777dab0Sopenharmony_ci      USCRIPT_SOGDIAN                       = 183,/* Sogd */
4627777dab0Sopenharmony_ci      /** @stable ICU 62 */
4637777dab0Sopenharmony_ci      USCRIPT_OLD_SOGDIAN                   = 184,/* Sogo */
4647777dab0Sopenharmony_ci
4657777dab0Sopenharmony_ci      /** @stable ICU 64 */
4667777dab0Sopenharmony_ci      USCRIPT_ELYMAIC                       = 185,/* Elym */
4677777dab0Sopenharmony_ci      /** @stable ICU 64 */
4687777dab0Sopenharmony_ci      USCRIPT_NYIAKENG_PUACHUE_HMONG        = 186,/* Hmnp */
4697777dab0Sopenharmony_ci      /** @stable ICU 64 */
4707777dab0Sopenharmony_ci      USCRIPT_NANDINAGARI                   = 187,/* Nand */
4717777dab0Sopenharmony_ci      /** @stable ICU 64 */
4727777dab0Sopenharmony_ci      USCRIPT_WANCHO                        = 188,/* Wcho */
4737777dab0Sopenharmony_ci
4747777dab0Sopenharmony_ci      /** @stable ICU 66 */
4757777dab0Sopenharmony_ci      USCRIPT_CHORASMIAN                    = 189,/* Chrs */
4767777dab0Sopenharmony_ci      /** @stable ICU 66 */
4777777dab0Sopenharmony_ci      USCRIPT_DIVES_AKURU                   = 190,/* Diak */
4787777dab0Sopenharmony_ci      /** @stable ICU 66 */
4797777dab0Sopenharmony_ci      USCRIPT_KHITAN_SMALL_SCRIPT           = 191,/* Kits */
4807777dab0Sopenharmony_ci      /** @stable ICU 66 */
4817777dab0Sopenharmony_ci      USCRIPT_YEZIDI                        = 192,/* Yezi */
4827777dab0Sopenharmony_ci
4837777dab0Sopenharmony_ci      /** @stable ICU 70 */
4847777dab0Sopenharmony_ci      USCRIPT_CYPRO_MINOAN                  = 193,/* Cpmn */
4857777dab0Sopenharmony_ci      /** @stable ICU 70 */
4867777dab0Sopenharmony_ci      USCRIPT_OLD_UYGHUR                    = 194,/* Ougr */
4877777dab0Sopenharmony_ci      /** @stable ICU 70 */
4887777dab0Sopenharmony_ci      USCRIPT_TANGSA                        = 195,/* Tnsa */
4897777dab0Sopenharmony_ci      /** @stable ICU 70 */
4907777dab0Sopenharmony_ci      USCRIPT_TOTO                          = 196,/* Toto */
4917777dab0Sopenharmony_ci      /** @stable ICU 70 */
4927777dab0Sopenharmony_ci      USCRIPT_VITHKUQI                      = 197,/* Vith */
4937777dab0Sopenharmony_ci
4947777dab0Sopenharmony_ci      /** @stable ICU 72 */
4957777dab0Sopenharmony_ci      USCRIPT_KAWI                          = 198,/* Kawi */
4967777dab0Sopenharmony_ci      /** @stable ICU 72 */
4977777dab0Sopenharmony_ci      USCRIPT_NAG_MUNDARI                   = 199,/* Nagm */
4987777dab0Sopenharmony_ci} UScriptCode;
4997777dab0Sopenharmony_ci
5007777dab0Sopenharmony_ci/**
5017777dab0Sopenharmony_ci * Gets the script codes associated with the given locale or ISO 15924 abbreviation or name.
5027777dab0Sopenharmony_ci * Fills in USCRIPT_MALAYALAM given "Malayam" OR "Mlym".
5037777dab0Sopenharmony_ci * Fills in USCRIPT_LATIN given "en" OR "en_US"
5047777dab0Sopenharmony_ci * If the required capacity is greater than the capacity of the destination buffer,
5057777dab0Sopenharmony_ci * then the error code is set to U_BUFFER_OVERFLOW_ERROR and the required capacity is returned.
5067777dab0Sopenharmony_ci *
5077777dab0Sopenharmony_ci * <p>Note: To search by short or long script alias only, use
5087777dab0Sopenharmony_ci * u_getPropertyValueEnum(UCHAR_SCRIPT, alias) instead.  That does
5097777dab0Sopenharmony_ci * a fast lookup with no access of the locale data.
5107777dab0Sopenharmony_ci *
5117777dab0Sopenharmony_ci * @param nameOrAbbrOrLocale name of the script, as given in
5127777dab0Sopenharmony_ci * PropertyValueAliases.txt, or ISO 15924 code or locale
5137777dab0Sopenharmony_ci * @param fillIn the UScriptCode buffer to fill in the script code
5147777dab0Sopenharmony_ci * @param capacity the capacity (size) of UScriptCode buffer passed in.
5157777dab0Sopenharmony_ci * @param err the error status code.
5167777dab0Sopenharmony_ci * @return The number of script codes filled in the buffer passed in
5177777dab0Sopenharmony_ci * @stable ICU 2.4
5187777dab0Sopenharmony_ci */
5197777dab0Sopenharmony_ciU_CAPI int32_t  U_EXPORT2
5207777dab0Sopenharmony_ciuscript_getCode(const char* nameOrAbbrOrLocale,UScriptCode* fillIn,int32_t capacity,UErrorCode *err);
5217777dab0Sopenharmony_ci
5227777dab0Sopenharmony_ci/**
5237777dab0Sopenharmony_ci * Returns the long Unicode script name, if there is one.
5247777dab0Sopenharmony_ci * Otherwise returns the 4-letter ISO 15924 script code.
5257777dab0Sopenharmony_ci * Returns "Malayam" given USCRIPT_MALAYALAM.
5267777dab0Sopenharmony_ci *
5277777dab0Sopenharmony_ci * @param scriptCode UScriptCode enum
5287777dab0Sopenharmony_ci * @return long script name as given in PropertyValueAliases.txt, or the 4-letter code,
5297777dab0Sopenharmony_ci * or NULL if scriptCode is invalid
5307777dab0Sopenharmony_ci * @stable ICU 2.4
5317777dab0Sopenharmony_ci */
5327777dab0Sopenharmony_ciU_CAPI const char*  U_EXPORT2
5337777dab0Sopenharmony_ciuscript_getName(UScriptCode scriptCode);
5347777dab0Sopenharmony_ci
5357777dab0Sopenharmony_ci/**
5367777dab0Sopenharmony_ci * Returns the 4-letter ISO 15924 script code,
5377777dab0Sopenharmony_ci * which is the same as the short Unicode script name if Unicode has names for the script.
5387777dab0Sopenharmony_ci * Returns "Mlym" given USCRIPT_MALAYALAM.
5397777dab0Sopenharmony_ci *
5407777dab0Sopenharmony_ci * @param scriptCode UScriptCode enum
5417777dab0Sopenharmony_ci * @return short script name (4-letter code), or NULL if scriptCode is invalid
5427777dab0Sopenharmony_ci * @stable ICU 2.4
5437777dab0Sopenharmony_ci */
5447777dab0Sopenharmony_ciU_CAPI const char*  U_EXPORT2
5457777dab0Sopenharmony_ciuscript_getShortName(UScriptCode scriptCode);
5467777dab0Sopenharmony_ci
5477777dab0Sopenharmony_ci/**
5487777dab0Sopenharmony_ci * Gets the script code associated with the given codepoint.
5497777dab0Sopenharmony_ci * Returns USCRIPT_MALAYALAM given 0x0D02
5507777dab0Sopenharmony_ci * @param codepoint UChar32 codepoint
5517777dab0Sopenharmony_ci * @param err the error status code.
5527777dab0Sopenharmony_ci * @return The UScriptCode, or 0 if codepoint is invalid
5537777dab0Sopenharmony_ci * @stable ICU 2.4
5547777dab0Sopenharmony_ci */
5557777dab0Sopenharmony_ciU_CAPI UScriptCode  U_EXPORT2
5567777dab0Sopenharmony_ciuscript_getScript(UChar32 codepoint, UErrorCode *err);
5577777dab0Sopenharmony_ci
5587777dab0Sopenharmony_ci/**
5597777dab0Sopenharmony_ci * Do the Script_Extensions of code point c contain script sc?
5607777dab0Sopenharmony_ci * If c does not have explicit Script_Extensions, then this tests whether
5617777dab0Sopenharmony_ci * c has the Script property value sc.
5627777dab0Sopenharmony_ci *
5637777dab0Sopenharmony_ci * Some characters are commonly used in multiple scripts.
5647777dab0Sopenharmony_ci * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
5657777dab0Sopenharmony_ci * @param c code point
5667777dab0Sopenharmony_ci * @param sc script code
5677777dab0Sopenharmony_ci * @return true if sc is in Script_Extensions(c)
5687777dab0Sopenharmony_ci * @stable ICU 49
5697777dab0Sopenharmony_ci */
5707777dab0Sopenharmony_ciU_CAPI UBool U_EXPORT2
5717777dab0Sopenharmony_ciuscript_hasScript(UChar32 c, UScriptCode sc);
5727777dab0Sopenharmony_ci
5737777dab0Sopenharmony_ci/**
5747777dab0Sopenharmony_ci * Writes code point c's Script_Extensions as a list of UScriptCode values
5757777dab0Sopenharmony_ci * to the output scripts array and returns the number of script codes.
5767777dab0Sopenharmony_ci * - If c does have Script_Extensions, then the Script property value
5777777dab0Sopenharmony_ci *   (normally Common or Inherited) is not included.
5787777dab0Sopenharmony_ci * - If c does not have Script_Extensions, then the one Script code is written to the output array.
5797777dab0Sopenharmony_ci * - If c is not a valid code point, then the one USCRIPT_UNKNOWN code is written.
5807777dab0Sopenharmony_ci * In other words, if the return value is 1,
5817777dab0Sopenharmony_ci * then the output array contains exactly c's single Script code.
5827777dab0Sopenharmony_ci * If the return value is n>=2, then the output array contains c's n Script_Extensions script codes.
5837777dab0Sopenharmony_ci *
5847777dab0Sopenharmony_ci * Some characters are commonly used in multiple scripts.
5857777dab0Sopenharmony_ci * For more information, see UAX #24: http://www.unicode.org/reports/tr24/.
5867777dab0Sopenharmony_ci *
5877777dab0Sopenharmony_ci * If there are more than capacity script codes to be written, then
5887777dab0Sopenharmony_ci * U_BUFFER_OVERFLOW_ERROR is set and the number of Script_Extensions is returned.
5897777dab0Sopenharmony_ci * (Usual ICU buffer handling behavior.)
5907777dab0Sopenharmony_ci *
5917777dab0Sopenharmony_ci * @param c code point
5927777dab0Sopenharmony_ci * @param scripts output script code array
5937777dab0Sopenharmony_ci * @param capacity capacity of the scripts array
5947777dab0Sopenharmony_ci * @param errorCode Standard ICU error code. Its input value must
5957777dab0Sopenharmony_ci *                  pass the U_SUCCESS() test, or else the function returns
5967777dab0Sopenharmony_ci *                  immediately. Check for U_FAILURE() on output or use with
5977777dab0Sopenharmony_ci *                  function chaining. (See User Guide for details.)
5987777dab0Sopenharmony_ci * @return number of script codes in c's Script_Extensions, or 1 for the single Script value,
5997777dab0Sopenharmony_ci *         written to scripts unless U_BUFFER_OVERFLOW_ERROR indicates insufficient capacity
6007777dab0Sopenharmony_ci * @stable ICU 49
6017777dab0Sopenharmony_ci */
6027777dab0Sopenharmony_ciU_CAPI int32_t U_EXPORT2
6037777dab0Sopenharmony_ciuscript_getScriptExtensions(UChar32 c,
6047777dab0Sopenharmony_ci                            UScriptCode *scripts, int32_t capacity,
6057777dab0Sopenharmony_ci                            UErrorCode *errorCode);
6067777dab0Sopenharmony_ci
6077777dab0Sopenharmony_ci/**
6087777dab0Sopenharmony_ci * Script usage constants.
6097777dab0Sopenharmony_ci * See UAX #31 Unicode Identifier and Pattern Syntax.
6107777dab0Sopenharmony_ci * http://www.unicode.org/reports/tr31/#Table_Candidate_Characters_for_Exclusion_from_Identifiers
6117777dab0Sopenharmony_ci *
6127777dab0Sopenharmony_ci * @stable ICU 51
6137777dab0Sopenharmony_ci */
6147777dab0Sopenharmony_citypedef enum UScriptUsage {
6157777dab0Sopenharmony_ci    /** Not encoded in Unicode. @stable ICU 51 */
6167777dab0Sopenharmony_ci    USCRIPT_USAGE_NOT_ENCODED,
6177777dab0Sopenharmony_ci    /** Unknown script usage. @stable ICU 51 */
6187777dab0Sopenharmony_ci    USCRIPT_USAGE_UNKNOWN,
6197777dab0Sopenharmony_ci    /** Candidate for Exclusion from Identifiers. @stable ICU 51 */
6207777dab0Sopenharmony_ci    USCRIPT_USAGE_EXCLUDED,
6217777dab0Sopenharmony_ci    /** Limited Use script. @stable ICU 51 */
6227777dab0Sopenharmony_ci    USCRIPT_USAGE_LIMITED_USE,
6237777dab0Sopenharmony_ci    /** Aspirational Use script. @stable ICU 51 */
6247777dab0Sopenharmony_ci    USCRIPT_USAGE_ASPIRATIONAL,
6257777dab0Sopenharmony_ci    /** Recommended script. @stable ICU 51 */
6267777dab0Sopenharmony_ci    USCRIPT_USAGE_RECOMMENDED
6277777dab0Sopenharmony_ci} UScriptUsage;
6287777dab0Sopenharmony_ci
6297777dab0Sopenharmony_ci/**
6307777dab0Sopenharmony_ci * Writes the script sample character string.
6317777dab0Sopenharmony_ci * This string normally consists of one code point but might be longer.
6327777dab0Sopenharmony_ci * The string is empty if the script is not encoded.
6337777dab0Sopenharmony_ci *
6347777dab0Sopenharmony_ci * @param script script code
6357777dab0Sopenharmony_ci * @param dest output string array
6367777dab0Sopenharmony_ci * @param capacity number of UChars in the dest array
6377777dab0Sopenharmony_ci * @param pErrorCode standard ICU in/out error code, must pass U_SUCCESS() on input
6387777dab0Sopenharmony_ci * @return the string length, even if U_BUFFER_OVERFLOW_ERROR
6397777dab0Sopenharmony_ci * @stable ICU 51
6407777dab0Sopenharmony_ci */
6417777dab0Sopenharmony_ciU_CAPI int32_t U_EXPORT2
6427777dab0Sopenharmony_ciuscript_getSampleString(UScriptCode script, UChar *dest, int32_t capacity, UErrorCode *pErrorCode);
6437777dab0Sopenharmony_ci
6447777dab0Sopenharmony_ci#if U_SHOW_CPLUSPLUS_API
6457777dab0Sopenharmony_ci
6467777dab0Sopenharmony_ciU_NAMESPACE_BEGIN
6477777dab0Sopenharmony_ciclass UnicodeString;
6487777dab0Sopenharmony_ciU_NAMESPACE_END
6497777dab0Sopenharmony_ci
6507777dab0Sopenharmony_ci/**
6517777dab0Sopenharmony_ci * Returns the script sample character string.
6527777dab0Sopenharmony_ci * This string normally consists of one code point but might be longer.
6537777dab0Sopenharmony_ci * The string is empty if the script is not encoded.
6547777dab0Sopenharmony_ci *
6557777dab0Sopenharmony_ci * @param script script code
6567777dab0Sopenharmony_ci * @return the sample character string
6577777dab0Sopenharmony_ci * @stable ICU 51
6587777dab0Sopenharmony_ci */
6597777dab0Sopenharmony_ciU_COMMON_API icu::UnicodeString U_EXPORT2
6607777dab0Sopenharmony_ciuscript_getSampleUnicodeString(UScriptCode script);
6617777dab0Sopenharmony_ci
6627777dab0Sopenharmony_ci#endif
6637777dab0Sopenharmony_ci
6647777dab0Sopenharmony_ci/**
6657777dab0Sopenharmony_ci * Returns the script usage according to UAX #31 Unicode Identifier and Pattern Syntax.
6667777dab0Sopenharmony_ci * Returns USCRIPT_USAGE_NOT_ENCODED if the script is not encoded in Unicode.
6677777dab0Sopenharmony_ci *
6687777dab0Sopenharmony_ci * @param script script code
6697777dab0Sopenharmony_ci * @return script usage
6707777dab0Sopenharmony_ci * @see UScriptUsage
6717777dab0Sopenharmony_ci * @stable ICU 51
6727777dab0Sopenharmony_ci */
6737777dab0Sopenharmony_ciU_CAPI UScriptUsage U_EXPORT2
6747777dab0Sopenharmony_ciuscript_getUsage(UScriptCode script);
6757777dab0Sopenharmony_ci
6767777dab0Sopenharmony_ci/**
6777777dab0Sopenharmony_ci * Returns true if the script is written right-to-left.
6787777dab0Sopenharmony_ci * For example, Arab and Hebr.
6797777dab0Sopenharmony_ci *
6807777dab0Sopenharmony_ci * @param script script code
6817777dab0Sopenharmony_ci * @return true if the script is right-to-left
6827777dab0Sopenharmony_ci * @stable ICU 51
6837777dab0Sopenharmony_ci */
6847777dab0Sopenharmony_ciU_CAPI UBool U_EXPORT2
6857777dab0Sopenharmony_ciuscript_isRightToLeft(UScriptCode script);
6867777dab0Sopenharmony_ci
6877777dab0Sopenharmony_ci/**
6887777dab0Sopenharmony_ci * Returns true if the script allows line breaks between letters (excluding hyphenation).
6897777dab0Sopenharmony_ci * Such a script typically requires dictionary-based line breaking.
6907777dab0Sopenharmony_ci * For example, Hani and Thai.
6917777dab0Sopenharmony_ci *
6927777dab0Sopenharmony_ci * @param script script code
6937777dab0Sopenharmony_ci * @return true if the script allows line breaks between letters
6947777dab0Sopenharmony_ci * @stable ICU 51
6957777dab0Sopenharmony_ci */
6967777dab0Sopenharmony_ciU_CAPI UBool U_EXPORT2
6977777dab0Sopenharmony_ciuscript_breaksBetweenLetters(UScriptCode script);
6987777dab0Sopenharmony_ci
6997777dab0Sopenharmony_ci/**
7007777dab0Sopenharmony_ci * Returns true if in modern (or most recent) usage of the script case distinctions are customary.
7017777dab0Sopenharmony_ci * For example, Latn and Cyrl.
7027777dab0Sopenharmony_ci *
7037777dab0Sopenharmony_ci * @param script script code
7047777dab0Sopenharmony_ci * @return true if the script is cased
7057777dab0Sopenharmony_ci * @stable ICU 51
7067777dab0Sopenharmony_ci */
7077777dab0Sopenharmony_ciU_CAPI UBool U_EXPORT2
7087777dab0Sopenharmony_ciuscript_isCased(UScriptCode script);
7097777dab0Sopenharmony_ci
7107777dab0Sopenharmony_ci#endif
711