ICU 62.1  62.1
uchar.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 **********************************************************************
5 * Copyright (C) 1997-2016, International Business Machines
6 * Corporation and others. All Rights Reserved.
7 **********************************************************************
8 *
9 * File UCHAR.H
10 *
11 * Modification History:
12 *
13 * Date Name Description
14 * 04/02/97 aliu Creation.
15 * 03/29/99 helena Updated for C APIs.
16 * 4/15/99 Madhu Updated for C Implementation and Javadoc
17 * 5/20/99 Madhu Added the function u_getVersion()
18 * 8/19/1999 srl Upgraded scripts to Unicode 3.0
19 * 8/27/1999 schererm UCharDirection constants: U_...
20 * 11/11/1999 weiv added u_isalnum(), cleaned comments
21 * 01/11/2000 helena Renamed u_getVersion to u_getUnicodeVersion().
22 ******************************************************************************
23 */
24 
25 #ifndef UCHAR_H
26 #define UCHAR_H
27 
28 #include "unicode/utypes.h"
29 #include "unicode/stringoptions.h"
30 
32 
33 /*==========================================================================*/
34 /* Unicode version number */
35 /*==========================================================================*/
45 #define U_UNICODE_VERSION "11.0"
46 
127 #define UCHAR_MIN_VALUE 0
128 
137 #define UCHAR_MAX_VALUE 0x10ffff
138 
143 #define U_MASK(x) ((uint32_t)1<<(x))
144 
165 typedef enum UProperty {
166  /*
167  * Note: UProperty constants are parsed by preparseucd.py.
168  * It matches lines like
169  * UCHAR_<Unicode property name>=<integer>,
170  */
171 
172  /* Note: Place UCHAR_ALPHABETIC before UCHAR_BINARY_START so that
173  debuggers display UCHAR_ALPHABETIC as the symbolic name for 0,
174  rather than UCHAR_BINARY_START. Likewise for other *_START
175  identifiers. */
176 
456 #ifndef U_HIDE_DEPRECATED_API
457 
462 #endif // U_HIDE_DEPRECATED_API
463 
471  UCHAR_BLOCK=0x1001,
499  UCHAR_SCRIPT=0x100A,
549 #ifndef U_HIDE_DEPRECATED_API
550 
555 #endif // U_HIDE_DEPRECATED_API
556 
568 #ifndef U_HIDE_DEPRECATED_API
569 
574 #endif // U_HIDE_DEPRECATED_API
575 
581 #ifndef U_HIDE_DEPRECATED_API
582 
587 #endif // U_HIDE_DEPRECATED_API
588 
591  UCHAR_AGE=0x4000,
600 #ifndef U_HIDE_DEPRECATED_API
601 
604 #endif /* U_HIDE_DEPRECATED_API */
605 
610  UCHAR_NAME=0x4005,
626 #ifndef U_HIDE_DEPRECATED_API
627 
632 #endif /* U_HIDE_DEPRECATED_API */
633 
639 #ifndef U_HIDE_DEPRECATED_API
640 
645 #endif // U_HIDE_DEPRECATED_API
646 
655 #ifndef U_HIDE_DEPRECATED_API
656 
661 #endif // U_HIDE_DEPRECATED_API
662 
665 } UProperty;
666 
672 typedef enum UCharCategory
673 {
674  /*
675  * Note: UCharCategory constants and their API comments are parsed by preparseucd.py.
676  * It matches pairs of lines like
677  * / ** <Unicode 2-letter General_Category value> comment... * /
678  * U_<[A-Z_]+> = <integer>,
679  */
680 
751 } UCharCategory;
752 
767 #define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES)
768 
770 #define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER)
771 
772 #define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER)
773 
774 #define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER)
775 
776 #define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER)
777 
778 #define U_GC_LO_MASK U_MASK(U_OTHER_LETTER)
779 
781 #define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK)
782 
783 #define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK)
784 
785 #define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK)
786 
788 #define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER)
789 
790 #define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER)
791 
792 #define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER)
793 
795 #define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR)
796 
797 #define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR)
798 
799 #define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR)
800 
802 #define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR)
803 
804 #define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR)
805 
806 #define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR)
807 
808 #define U_GC_CS_MASK U_MASK(U_SURROGATE)
809 
811 #define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION)
812 
813 #define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION)
814 
815 #define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION)
816 
817 #define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION)
818 
819 #define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION)
820 
822 #define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL)
823 
824 #define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL)
825 
826 #define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL)
827 
828 #define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL)
829 
831 #define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION)
832 
833 #define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION)
834 
835 
837 #define U_GC_L_MASK \
838  (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
839 
841 #define U_GC_LC_MASK \
842  (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
843 
845 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
846 
848 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
849 
851 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
852 
854 #define U_GC_C_MASK \
855  (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
856 
858 #define U_GC_P_MASK \
859  (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
860  U_GC_PI_MASK|U_GC_PF_MASK)
861 
863 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
864 
869 typedef enum UCharDirection {
870  /*
871  * Note: UCharDirection constants and their API comments are parsed by preparseucd.py.
872  * It matches pairs of lines like
873  * / ** <Unicode 1..3-letter Bidi_Class value> comment... * /
874  * U_<[A-Z_]+> = <integer>,
875  */
876 
923 #ifndef U_HIDE_DEPRECATED_API
924 
931 #endif // U_HIDE_DEPRECATED_API
933 
941  /*
942  * Note: UBidiPairedBracketType constants are parsed by preparseucd.py.
943  * It matches lines like
944  * U_BPT_<Unicode Bidi_Paired_Bracket_Type value name>
945  */
946 
953 #ifndef U_HIDE_DEPRECATED_API
954 
960  U_BPT_COUNT /* 3 */
961 #endif // U_HIDE_DEPRECATED_API
963 
969  /*
970  * Note: UBlockCode constants are parsed by preparseucd.py.
971  * It matches lines like
972  * UBLOCK_<Unicode Block value name> = <integer>,
973  */
974 
976  UBLOCK_NO_BLOCK = 0, /*[none]*/ /* Special range indicating No_Block */
977 
979  UBLOCK_BASIC_LATIN = 1, /*[0000]*/
980 
983 
985  UBLOCK_LATIN_EXTENDED_A =3, /*[0100]*/
986 
988  UBLOCK_LATIN_EXTENDED_B =4, /*[0180]*/
989 
991  UBLOCK_IPA_EXTENSIONS =5, /*[0250]*/
992 
995 
998 
1003  UBLOCK_GREEK =8, /*[0370]*/
1004 
1006  UBLOCK_CYRILLIC =9, /*[0400]*/
1007 
1009  UBLOCK_ARMENIAN =10, /*[0530]*/
1010 
1012  UBLOCK_HEBREW =11, /*[0590]*/
1013 
1015  UBLOCK_ARABIC =12, /*[0600]*/
1016 
1018  UBLOCK_SYRIAC =13, /*[0700]*/
1019 
1021  UBLOCK_THAANA =14, /*[0780]*/
1022 
1024  UBLOCK_DEVANAGARI =15, /*[0900]*/
1025 
1027  UBLOCK_BENGALI =16, /*[0980]*/
1028 
1030  UBLOCK_GURMUKHI =17, /*[0A00]*/
1031 
1033  UBLOCK_GUJARATI =18, /*[0A80]*/
1034 
1036  UBLOCK_ORIYA =19, /*[0B00]*/
1037 
1039  UBLOCK_TAMIL =20, /*[0B80]*/
1040 
1042  UBLOCK_TELUGU =21, /*[0C00]*/
1043 
1045  UBLOCK_KANNADA =22, /*[0C80]*/
1046 
1048  UBLOCK_MALAYALAM =23, /*[0D00]*/
1049 
1051  UBLOCK_SINHALA =24, /*[0D80]*/
1052 
1054  UBLOCK_THAI =25, /*[0E00]*/
1055 
1057  UBLOCK_LAO =26, /*[0E80]*/
1058 
1060  UBLOCK_TIBETAN =27, /*[0F00]*/
1061 
1063  UBLOCK_MYANMAR =28, /*[1000]*/
1064 
1066  UBLOCK_GEORGIAN =29, /*[10A0]*/
1067 
1069  UBLOCK_HANGUL_JAMO =30, /*[1100]*/
1070 
1072  UBLOCK_ETHIOPIC =31, /*[1200]*/
1073 
1075  UBLOCK_CHEROKEE =32, /*[13A0]*/
1076 
1079 
1081  UBLOCK_OGHAM =34, /*[1680]*/
1082 
1084  UBLOCK_RUNIC =35, /*[16A0]*/
1085 
1087  UBLOCK_KHMER =36, /*[1780]*/
1088 
1090  UBLOCK_MONGOLIAN =37, /*[1800]*/
1091 
1094 
1096  UBLOCK_GREEK_EXTENDED =39, /*[1F00]*/
1097 
1100 
1103 
1105  UBLOCK_CURRENCY_SYMBOLS =42, /*[20A0]*/
1106 
1112 
1115 
1117  UBLOCK_NUMBER_FORMS =45, /*[2150]*/
1118 
1120  UBLOCK_ARROWS =46, /*[2190]*/
1121 
1124 
1127 
1129  UBLOCK_CONTROL_PICTURES =49, /*[2400]*/
1130 
1133 
1136 
1138  UBLOCK_BOX_DRAWING =52, /*[2500]*/
1139 
1141  UBLOCK_BLOCK_ELEMENTS =53, /*[2580]*/
1142 
1144  UBLOCK_GEOMETRIC_SHAPES =54, /*[25A0]*/
1145 
1148 
1150  UBLOCK_DINGBATS =56, /*[2700]*/
1151 
1153  UBLOCK_BRAILLE_PATTERNS =57, /*[2800]*/
1154 
1157 
1159  UBLOCK_KANGXI_RADICALS =59, /*[2F00]*/
1160 
1163 
1166 
1168  UBLOCK_HIRAGANA =62, /*[3040]*/
1169 
1171  UBLOCK_KATAKANA =63, /*[30A0]*/
1172 
1174  UBLOCK_BOPOMOFO =64, /*[3100]*/
1175 
1178 
1180  UBLOCK_KANBUN =66, /*[3190]*/
1181 
1184 
1187 
1190 
1193 
1196 
1198  UBLOCK_YI_SYLLABLES =72, /*[A000]*/
1199 
1201  UBLOCK_YI_RADICALS =73, /*[A490]*/
1202 
1204  UBLOCK_HANGUL_SYLLABLES =74, /*[AC00]*/
1205 
1207  UBLOCK_HIGH_SURROGATES =75, /*[D800]*/
1208 
1211 
1213  UBLOCK_LOW_SURROGATES =77, /*[DC00]*/
1214 
1224  UBLOCK_PRIVATE_USE_AREA =78, /*[E000]*/
1235 
1238 
1241 
1244 
1247 
1250 
1253 
1256 
1258  UBLOCK_SPECIALS =86, /*[FFF0]*/
1259 
1262 
1263  /* New blocks in Unicode 3.1 */
1264 
1266  UBLOCK_OLD_ITALIC = 88, /*[10300]*/
1268  UBLOCK_GOTHIC = 89, /*[10330]*/
1270  UBLOCK_DESERET = 90, /*[10400]*/
1274  UBLOCK_MUSICAL_SYMBOLS = 92, /*[1D100]*/
1282  UBLOCK_TAGS = 96, /*[E0000]*/
1283 
1284  /* New blocks in Unicode 3.2 */
1285 
1294  UBLOCK_TAGALOG = 98, /*[1700]*/
1296  UBLOCK_HANUNOO = 99, /*[1720]*/
1298  UBLOCK_BUHID = 100, /*[1740]*/
1300  UBLOCK_TAGBANWA = 101, /*[1760]*/
1314  UBLOCK_VARIATION_SELECTORS = 108, /*[FE00]*/
1319 
1320  /* New blocks in Unicode 4 */
1321 
1323  UBLOCK_LIMBU = 111, /*[1900]*/
1325  UBLOCK_TAI_LE = 112, /*[1950]*/
1327  UBLOCK_KHMER_SYMBOLS = 113, /*[19E0]*/
1329  UBLOCK_PHONETIC_EXTENSIONS = 114, /*[1D00]*/
1335  UBLOCK_LINEAR_B_SYLLABARY = 117, /*[10000]*/
1337  UBLOCK_LINEAR_B_IDEOGRAMS = 118, /*[10080]*/
1339  UBLOCK_AEGEAN_NUMBERS = 119, /*[10100]*/
1341  UBLOCK_UGARITIC = 120, /*[10380]*/
1343  UBLOCK_SHAVIAN = 121, /*[10450]*/
1345  UBLOCK_OSMANYA = 122, /*[10480]*/
1347  UBLOCK_CYPRIOT_SYLLABARY = 123, /*[10800]*/
1349  UBLOCK_TAI_XUAN_JING_SYMBOLS = 124, /*[1D300]*/
1352 
1353  /* New blocks in Unicode 4.1 */
1354 
1358  UBLOCK_ANCIENT_GREEK_NUMBERS = 127, /*[10140]*/
1360  UBLOCK_ARABIC_SUPPLEMENT = 128, /*[0750]*/
1362  UBLOCK_BUGINESE = 129, /*[1A00]*/
1364  UBLOCK_CJK_STROKES = 130, /*[31C0]*/
1368  UBLOCK_COPTIC = 132, /*[2C80]*/
1370  UBLOCK_ETHIOPIC_EXTENDED = 133, /*[2D80]*/
1372  UBLOCK_ETHIOPIC_SUPPLEMENT = 134, /*[1380]*/
1374  UBLOCK_GEORGIAN_SUPPLEMENT = 135, /*[2D00]*/
1376  UBLOCK_GLAGOLITIC = 136, /*[2C00]*/
1378  UBLOCK_KHAROSHTHI = 137, /*[10A00]*/
1382  UBLOCK_NEW_TAI_LUE = 139, /*[1980]*/
1384  UBLOCK_OLD_PERSIAN = 140, /*[103A0]*/
1390  UBLOCK_SYLOTI_NAGRI = 143, /*[A800]*/
1392  UBLOCK_TIFINAGH = 144, /*[2D30]*/
1394  UBLOCK_VERTICAL_FORMS = 145, /*[FE10]*/
1395 
1396  /* New blocks in Unicode 5.0 */
1397 
1399  UBLOCK_NKO = 146, /*[07C0]*/
1401  UBLOCK_BALINESE = 147, /*[1B00]*/
1403  UBLOCK_LATIN_EXTENDED_C = 148, /*[2C60]*/
1405  UBLOCK_LATIN_EXTENDED_D = 149, /*[A720]*/
1407  UBLOCK_PHAGS_PA = 150, /*[A840]*/
1409  UBLOCK_PHOENICIAN = 151, /*[10900]*/
1411  UBLOCK_CUNEIFORM = 152, /*[12000]*/
1415  UBLOCK_COUNTING_ROD_NUMERALS = 154, /*[1D360]*/
1416 
1417  /* New blocks in Unicode 5.1 */
1418 
1420  UBLOCK_SUNDANESE = 155, /*[1B80]*/
1422  UBLOCK_LEPCHA = 156, /*[1C00]*/
1424  UBLOCK_OL_CHIKI = 157, /*[1C50]*/
1426  UBLOCK_CYRILLIC_EXTENDED_A = 158, /*[2DE0]*/
1428  UBLOCK_VAI = 159, /*[A500]*/
1430  UBLOCK_CYRILLIC_EXTENDED_B = 160, /*[A640]*/
1432  UBLOCK_SAURASHTRA = 161, /*[A880]*/
1434  UBLOCK_KAYAH_LI = 162, /*[A900]*/
1436  UBLOCK_REJANG = 163, /*[A930]*/
1438  UBLOCK_CHAM = 164, /*[AA00]*/
1440  UBLOCK_ANCIENT_SYMBOLS = 165, /*[10190]*/
1442  UBLOCK_PHAISTOS_DISC = 166, /*[101D0]*/
1444  UBLOCK_LYCIAN = 167, /*[10280]*/
1446  UBLOCK_CARIAN = 168, /*[102A0]*/
1448  UBLOCK_LYDIAN = 169, /*[10920]*/
1450  UBLOCK_MAHJONG_TILES = 170, /*[1F000]*/
1452  UBLOCK_DOMINO_TILES = 171, /*[1F030]*/
1453 
1454  /* New blocks in Unicode 5.2 */
1455 
1457  UBLOCK_SAMARITAN = 172, /*[0800]*/
1461  UBLOCK_TAI_THAM = 174, /*[1A20]*/
1463  UBLOCK_VEDIC_EXTENSIONS = 175, /*[1CD0]*/
1465  UBLOCK_LISU = 176, /*[A4D0]*/
1467  UBLOCK_BAMUM = 177, /*[A6A0]*/
1471  UBLOCK_DEVANAGARI_EXTENDED = 179, /*[A8E0]*/
1475  UBLOCK_JAVANESE = 181, /*[A980]*/
1477  UBLOCK_MYANMAR_EXTENDED_A = 182, /*[AA60]*/
1479  UBLOCK_TAI_VIET = 183, /*[AA80]*/
1481  UBLOCK_MEETEI_MAYEK = 184, /*[ABC0]*/
1485  UBLOCK_IMPERIAL_ARAMAIC = 186, /*[10840]*/
1487  UBLOCK_OLD_SOUTH_ARABIAN = 187, /*[10A60]*/
1489  UBLOCK_AVESTAN = 188, /*[10B00]*/
1493  UBLOCK_INSCRIPTIONAL_PAHLAVI = 190, /*[10B60]*/
1495  UBLOCK_OLD_TURKIC = 191, /*[10C00]*/
1497  UBLOCK_RUMI_NUMERAL_SYMBOLS = 192, /*[10E60]*/
1499  UBLOCK_KAITHI = 193, /*[11080]*/
1501  UBLOCK_EGYPTIAN_HIEROGLYPHS = 194, /*[13000]*/
1508 
1509  /* New blocks in Unicode 6.0 */
1510 
1512  UBLOCK_MANDAIC = 198, /*[0840]*/
1514  UBLOCK_BATAK = 199, /*[1BC0]*/
1516  UBLOCK_ETHIOPIC_EXTENDED_A = 200, /*[AB00]*/
1518  UBLOCK_BRAHMI = 201, /*[11000]*/
1520  UBLOCK_BAMUM_SUPPLEMENT = 202, /*[16800]*/
1522  UBLOCK_KANA_SUPPLEMENT = 203, /*[1B000]*/
1524  UBLOCK_PLAYING_CARDS = 204, /*[1F0A0]*/
1528  UBLOCK_EMOTICONS = 206, /*[1F600]*/
1532  UBLOCK_ALCHEMICAL_SYMBOLS = 208, /*[1F700]*/
1535 
1536  /* New blocks in Unicode 6.1 */
1537 
1539  UBLOCK_ARABIC_EXTENDED_A = 210, /*[08A0]*/
1543  UBLOCK_CHAKMA = 212, /*[11100]*/
1547  UBLOCK_MEROITIC_CURSIVE = 214, /*[109A0]*/
1549  UBLOCK_MEROITIC_HIEROGLYPHS = 215, /*[10980]*/
1551  UBLOCK_MIAO = 216, /*[16F00]*/
1553  UBLOCK_SHARADA = 217, /*[11180]*/
1555  UBLOCK_SORA_SOMPENG = 218, /*[110D0]*/
1559  UBLOCK_TAKRI = 220, /*[11680]*/
1560 
1561  /* New blocks in Unicode 7.0 */
1562 
1564  UBLOCK_BASSA_VAH = 221, /*[16AD0]*/
1566  UBLOCK_CAUCASIAN_ALBANIAN = 222, /*[10530]*/
1568  UBLOCK_COPTIC_EPACT_NUMBERS = 223, /*[102E0]*/
1572  UBLOCK_DUPLOYAN = 225, /*[1BC00]*/
1574  UBLOCK_ELBASAN = 226, /*[10500]*/
1578  UBLOCK_GRANTHA = 228, /*[11300]*/
1580  UBLOCK_KHOJKI = 229, /*[11200]*/
1582  UBLOCK_KHUDAWADI = 230, /*[112B0]*/
1584  UBLOCK_LATIN_EXTENDED_E = 231, /*[AB30]*/
1586  UBLOCK_LINEAR_A = 232, /*[10600]*/
1588  UBLOCK_MAHAJANI = 233, /*[11150]*/
1590  UBLOCK_MANICHAEAN = 234, /*[10AC0]*/
1592  UBLOCK_MENDE_KIKAKUI = 235, /*[1E800]*/
1594  UBLOCK_MODI = 236, /*[11600]*/
1596  UBLOCK_MRO = 237, /*[16A40]*/
1598  UBLOCK_MYANMAR_EXTENDED_B = 238, /*[A9E0]*/
1600  UBLOCK_NABATAEAN = 239, /*[10880]*/
1602  UBLOCK_OLD_NORTH_ARABIAN = 240, /*[10A80]*/
1604  UBLOCK_OLD_PERMIC = 241, /*[10350]*/
1606  UBLOCK_ORNAMENTAL_DINGBATS = 242, /*[1F650]*/
1608  UBLOCK_PAHAWH_HMONG = 243, /*[16B00]*/
1610  UBLOCK_PALMYRENE = 244, /*[10860]*/
1612  UBLOCK_PAU_CIN_HAU = 245, /*[11AC0]*/
1614  UBLOCK_PSALTER_PAHLAVI = 246, /*[10B80]*/
1618  UBLOCK_SIDDHAM = 248, /*[11580]*/
1622  UBLOCK_SUPPLEMENTAL_ARROWS_C = 250, /*[1F800]*/
1624  UBLOCK_TIRHUTA = 251, /*[11480]*/
1626  UBLOCK_WARANG_CITI = 252, /*[118A0]*/
1627 
1628  /* New blocks in Unicode 8.0 */
1629 
1631  UBLOCK_AHOM = 253, /*[11700]*/
1633  UBLOCK_ANATOLIAN_HIEROGLYPHS = 254, /*[14400]*/
1635  UBLOCK_CHEROKEE_SUPPLEMENT = 255, /*[AB70]*/
1641  UBLOCK_HATRAN = 258, /*[108E0]*/
1643  UBLOCK_MULTANI = 259, /*[11280]*/
1645  UBLOCK_OLD_HUNGARIAN = 260, /*[10C80]*/
1649  UBLOCK_SUTTON_SIGNWRITING = 262, /*[1D800]*/
1650 
1651  /* New blocks in Unicode 9.0 */
1652 
1654  UBLOCK_ADLAM = 263, /*[1E900]*/
1656  UBLOCK_BHAIKSUKI = 264, /*[11C00]*/
1658  UBLOCK_CYRILLIC_EXTENDED_C = 265, /*[1C80]*/
1660  UBLOCK_GLAGOLITIC_SUPPLEMENT = 266, /*[1E000]*/
1664  UBLOCK_MARCHEN = 268, /*[11C70]*/
1666  UBLOCK_MONGOLIAN_SUPPLEMENT = 269, /*[11660]*/
1668  UBLOCK_NEWA = 270, /*[11400]*/
1670  UBLOCK_OSAGE = 271, /*[104B0]*/
1672  UBLOCK_TANGUT = 272, /*[17000]*/
1674  UBLOCK_TANGUT_COMPONENTS = 273, /*[18800]*/
1675 
1676  // New blocks in Unicode 10.0
1677 
1681  UBLOCK_KANA_EXTENDED_A = 275, /*[1B100]*/
1683  UBLOCK_MASARAM_GONDI = 276, /*[11D00]*/
1685  UBLOCK_NUSHU = 277, /*[1B170]*/
1687  UBLOCK_SOYOMBO = 278, /*[11A50]*/
1689  UBLOCK_SYRIAC_SUPPLEMENT = 279, /*[0860]*/
1691  UBLOCK_ZANABAZAR_SQUARE = 280, /*[11A00]*/
1692 
1693  // New blocks in Unicode 11.0
1694 
1696  UBLOCK_CHESS_SYMBOLS = 281, /*[1FA00]*/
1698  UBLOCK_DOGRA = 282, /*[11800]*/
1700  UBLOCK_GEORGIAN_EXTENDED = 283, /*[1C90]*/
1702  UBLOCK_GUNJALA_GONDI = 284, /*[11D60]*/
1704  UBLOCK_HANIFI_ROHINGYA = 285, /*[10D00]*/
1706  UBLOCK_INDIC_SIYAQ_NUMBERS = 286, /*[1EC70]*/
1708  UBLOCK_MAKASAR = 287, /*[11EE0]*/
1710  UBLOCK_MAYAN_NUMERALS = 288, /*[1D2E0]*/
1712  UBLOCK_MEDEFAIDRIN = 289, /*[16E40]*/
1714  UBLOCK_OLD_SOGDIAN = 290, /*[10F00]*/
1716  UBLOCK_SOGDIAN = 291, /*[10F30]*/
1717 
1718 #ifndef U_HIDE_DEPRECATED_API
1719 
1726 #endif // U_HIDE_DEPRECATED_API
1727 
1730 };
1731 
1733 typedef enum UBlockCode UBlockCode;
1734 
1742 typedef enum UEastAsianWidth {
1743  /*
1744  * Note: UEastAsianWidth constants are parsed by preparseucd.py.
1745  * It matches lines like
1746  * U_EA_<Unicode East_Asian_Width value name>
1747  */
1748 
1749  U_EA_NEUTRAL, /*[N]*/
1750  U_EA_AMBIGUOUS, /*[A]*/
1751  U_EA_HALFWIDTH, /*[H]*/
1752  U_EA_FULLWIDTH, /*[F]*/
1753  U_EA_NARROW, /*[Na]*/
1754  U_EA_WIDE, /*[W]*/
1755 #ifndef U_HIDE_DEPRECATED_API
1756 
1763 #endif // U_HIDE_DEPRECATED_API
1764 } UEastAsianWidth;
1765 
1777 typedef enum UCharNameChoice {
1780 #ifndef U_HIDE_DEPRECATED_API
1781 
1787 #endif /* U_HIDE_DEPRECATED_API */
1788 
1792 #ifndef U_HIDE_DEPRECATED_API
1793 
1798 #endif // U_HIDE_DEPRECATED_API
1799 } UCharNameChoice;
1800 
1814 typedef enum UPropertyNameChoice {
1815  U_SHORT_PROPERTY_NAME,
1816  U_LONG_PROPERTY_NAME,
1817 #ifndef U_HIDE_DEPRECATED_API
1818 
1823 #endif // U_HIDE_DEPRECATED_API
1825 
1832 typedef enum UDecompositionType {
1833  /*
1834  * Note: UDecompositionType constants are parsed by preparseucd.py.
1835  * It matches lines like
1836  * U_DT_<Unicode Decomposition_Type value name>
1837  */
1838 
1839  U_DT_NONE, /*[none]*/
1840  U_DT_CANONICAL, /*[can]*/
1841  U_DT_COMPAT, /*[com]*/
1842  U_DT_CIRCLE, /*[enc]*/
1843  U_DT_FINAL, /*[fin]*/
1844  U_DT_FONT, /*[font]*/
1845  U_DT_FRACTION, /*[fra]*/
1846  U_DT_INITIAL, /*[init]*/
1847  U_DT_ISOLATED, /*[iso]*/
1848  U_DT_MEDIAL, /*[med]*/
1849  U_DT_NARROW, /*[nar]*/
1850  U_DT_NOBREAK, /*[nb]*/
1851  U_DT_SMALL, /*[sml]*/
1852  U_DT_SQUARE, /*[sqr]*/
1853  U_DT_SUB, /*[sub]*/
1854  U_DT_SUPER, /*[sup]*/
1855  U_DT_VERTICAL, /*[vert]*/
1856  U_DT_WIDE, /*[wide]*/
1857 #ifndef U_HIDE_DEPRECATED_API
1858 
1864  U_DT_COUNT /* 18 */
1865 #endif // U_HIDE_DEPRECATED_API
1867 
1874 typedef enum UJoiningType {
1875  /*
1876  * Note: UJoiningType constants are parsed by preparseucd.py.
1877  * It matches lines like
1878  * U_JT_<Unicode Joining_Type value name>
1879  */
1880 
1881  U_JT_NON_JOINING, /*[U]*/
1882  U_JT_JOIN_CAUSING, /*[C]*/
1883  U_JT_DUAL_JOINING, /*[D]*/
1884  U_JT_LEFT_JOINING, /*[L]*/
1885  U_JT_RIGHT_JOINING, /*[R]*/
1886  U_JT_TRANSPARENT, /*[T]*/
1887 #ifndef U_HIDE_DEPRECATED_API
1888 
1894  U_JT_COUNT /* 6 */
1895 #endif // U_HIDE_DEPRECATED_API
1896 } UJoiningType;
1897 
1904 typedef enum UJoiningGroup {
1905  /*
1906  * Note: UJoiningGroup constants are parsed by preparseucd.py.
1907  * It matches lines like
1908  * U_JG_<Unicode Joining_Group value name>
1909  */
1910 
1911  U_JG_NO_JOINING_GROUP,
1912  U_JG_AIN,
1913  U_JG_ALAPH,
1914  U_JG_ALEF,
1915  U_JG_BEH,
1916  U_JG_BETH,
1917  U_JG_DAL,
1918  U_JG_DALATH_RISH,
1919  U_JG_E,
1920  U_JG_FEH,
1921  U_JG_FINAL_SEMKATH,
1922  U_JG_GAF,
1923  U_JG_GAMAL,
1924  U_JG_HAH,
1926  U_JG_HAMZA_ON_HEH_GOAL=U_JG_TEH_MARBUTA_GOAL,
1927  U_JG_HE,
1928  U_JG_HEH,
1929  U_JG_HEH_GOAL,
1930  U_JG_HETH,
1931  U_JG_KAF,
1932  U_JG_KAPH,
1933  U_JG_KNOTTED_HEH,
1934  U_JG_LAM,
1935  U_JG_LAMADH,
1936  U_JG_MEEM,
1937  U_JG_MIM,
1938  U_JG_NOON,
1939  U_JG_NUN,
1940  U_JG_PE,
1941  U_JG_QAF,
1942  U_JG_QAPH,
1943  U_JG_REH,
1944  U_JG_REVERSED_PE,
1945  U_JG_SAD,
1946  U_JG_SADHE,
1947  U_JG_SEEN,
1948  U_JG_SEMKATH,
1949  U_JG_SHIN,
1950  U_JG_SWASH_KAF,
1951  U_JG_SYRIAC_WAW,
1952  U_JG_TAH,
1953  U_JG_TAW,
1954  U_JG_TEH_MARBUTA,
1955  U_JG_TETH,
1956  U_JG_WAW,
1957  U_JG_YEH,
1958  U_JG_YEH_BARREE,
1959  U_JG_YEH_WITH_TAIL,
1960  U_JG_YUDH,
1961  U_JG_YUDH_HE,
1962  U_JG_ZAIN,
2017 #ifndef U_HIDE_DEPRECATED_API
2018 
2025 #endif // U_HIDE_DEPRECATED_API
2026 } UJoiningGroup;
2027 
2035  /*
2036  * Note: UGraphemeClusterBreak constants are parsed by preparseucd.py.
2037  * It matches lines like
2038  * U_GCB_<Unicode Grapheme_Cluster_Break value name>
2039  */
2040 
2041  U_GCB_OTHER = 0, /*[XX]*/
2042  U_GCB_CONTROL = 1, /*[CN]*/
2043  U_GCB_CR = 2, /*[CR]*/
2044  U_GCB_EXTEND = 3, /*[EX]*/
2045  U_GCB_L = 4, /*[L]*/
2046  U_GCB_LF = 5, /*[LF]*/
2047  U_GCB_LV = 6, /*[LV]*/
2048  U_GCB_LVT = 7, /*[LVT]*/
2049  U_GCB_T = 8, /*[T]*/
2050  U_GCB_V = 9, /*[V]*/
2052  U_GCB_SPACING_MARK = 10, /*[SM]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
2054  U_GCB_PREPEND = 11, /*[PP]*/
2056  U_GCB_REGIONAL_INDICATOR = 12, /*[RI]*/ /* new in Unicode 6.2/ICU 50 */
2058  U_GCB_E_BASE = 13, /*[EB]*/ /* from here on: new in Unicode 9.0/ICU 58 */
2060  U_GCB_E_BASE_GAZ = 14, /*[EBG]*/
2062  U_GCB_E_MODIFIER = 15, /*[EM]*/
2064  U_GCB_GLUE_AFTER_ZWJ = 16, /*[GAZ]*/
2066  U_GCB_ZWJ = 17, /*[ZWJ]*/
2067 
2068 #ifndef U_HIDE_DEPRECATED_API
2069 
2076 #endif // U_HIDE_DEPRECATED_API
2078 
2086 typedef enum UWordBreakValues {
2087  /*
2088  * Note: UWordBreakValues constants are parsed by preparseucd.py.
2089  * It matches lines like
2090  * U_WB_<Unicode Word_Break value name>
2091  */
2092 
2093  U_WB_OTHER = 0, /*[XX]*/
2094  U_WB_ALETTER = 1, /*[LE]*/
2095  U_WB_FORMAT = 2, /*[FO]*/
2096  U_WB_KATAKANA = 3, /*[KA]*/
2097  U_WB_MIDLETTER = 4, /*[ML]*/
2098  U_WB_MIDNUM = 5, /*[MN]*/
2099  U_WB_NUMERIC = 6, /*[NU]*/
2100  U_WB_EXTENDNUMLET = 7, /*[EX]*/
2102  U_WB_CR = 8, /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
2104  U_WB_EXTEND = 9, /*[Extend]*/
2106  U_WB_LF = 10, /*[LF]*/
2108  U_WB_MIDNUMLET =11, /*[MB]*/
2110  U_WB_NEWLINE =12, /*[NL]*/
2112  U_WB_REGIONAL_INDICATOR = 13, /*[RI]*/ /* new in Unicode 6.2/ICU 50 */
2114  U_WB_HEBREW_LETTER = 14, /*[HL]*/ /* from here on: new in Unicode 6.3/ICU 52 */
2116  U_WB_SINGLE_QUOTE = 15, /*[SQ]*/
2118  U_WB_DOUBLE_QUOTE = 16, /*[DQ]*/
2120  U_WB_E_BASE = 17, /*[EB]*/ /* from here on: new in Unicode 9.0/ICU 58 */
2122  U_WB_E_BASE_GAZ = 18, /*[EBG]*/
2124  U_WB_E_MODIFIER = 19, /*[EM]*/
2126  U_WB_GLUE_AFTER_ZWJ = 20, /*[GAZ]*/
2128  U_WB_ZWJ = 21, /*[ZWJ]*/
2130  U_WB_WSEGSPACE = 22, /*[WSEGSPACE]*/
2131 
2132 #ifndef U_HIDE_DEPRECATED_API
2133 
2140 #endif // U_HIDE_DEPRECATED_API
2142 
2149 typedef enum USentenceBreak {
2150  /*
2151  * Note: USentenceBreak constants are parsed by preparseucd.py.
2152  * It matches lines like
2153  * U_SB_<Unicode Sentence_Break value name>
2154  */
2155 
2156  U_SB_OTHER = 0, /*[XX]*/
2157  U_SB_ATERM = 1, /*[AT]*/
2158  U_SB_CLOSE = 2, /*[CL]*/
2159  U_SB_FORMAT = 3, /*[FO]*/
2160  U_SB_LOWER = 4, /*[LO]*/
2161  U_SB_NUMERIC = 5, /*[NU]*/
2162  U_SB_OLETTER = 6, /*[LE]*/
2163  U_SB_SEP = 7, /*[SE]*/
2164  U_SB_SP = 8, /*[SP]*/
2165  U_SB_STERM = 9, /*[ST]*/
2166  U_SB_UPPER = 10, /*[UP]*/
2167  U_SB_CR = 11, /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
2168  U_SB_EXTEND = 12, /*[EX]*/
2169  U_SB_LF = 13, /*[LF]*/
2170  U_SB_SCONTINUE = 14, /*[SC]*/
2171 #ifndef U_HIDE_DEPRECATED_API
2172 
2179 #endif // U_HIDE_DEPRECATED_API
2180 } USentenceBreak;
2181 
2188 typedef enum ULineBreak {
2189  /*
2190  * Note: ULineBreak constants are parsed by preparseucd.py.
2191  * It matches lines like
2192  * U_LB_<Unicode Line_Break value name>
2193  */
2194 
2195  U_LB_UNKNOWN = 0, /*[XX]*/
2196  U_LB_AMBIGUOUS = 1, /*[AI]*/
2197  U_LB_ALPHABETIC = 2, /*[AL]*/
2198  U_LB_BREAK_BOTH = 3, /*[B2]*/
2199  U_LB_BREAK_AFTER = 4, /*[BA]*/
2200  U_LB_BREAK_BEFORE = 5, /*[BB]*/
2201  U_LB_MANDATORY_BREAK = 6, /*[BK]*/
2202  U_LB_CONTINGENT_BREAK = 7, /*[CB]*/
2203  U_LB_CLOSE_PUNCTUATION = 8, /*[CL]*/
2204  U_LB_COMBINING_MARK = 9, /*[CM]*/
2205  U_LB_CARRIAGE_RETURN = 10, /*[CR]*/
2206  U_LB_EXCLAMATION = 11, /*[EX]*/
2207  U_LB_GLUE = 12, /*[GL]*/
2208  U_LB_HYPHEN = 13, /*[HY]*/
2209  U_LB_IDEOGRAPHIC = 14, /*[ID]*/
2211  U_LB_INSEPARABLE = 15, /*[IN]*/
2212  U_LB_INSEPERABLE = U_LB_INSEPARABLE,
2213  U_LB_INFIX_NUMERIC = 16, /*[IS]*/
2214  U_LB_LINE_FEED = 17, /*[LF]*/
2215  U_LB_NONSTARTER = 18, /*[NS]*/
2216  U_LB_NUMERIC = 19, /*[NU]*/
2217  U_LB_OPEN_PUNCTUATION = 20, /*[OP]*/
2218  U_LB_POSTFIX_NUMERIC = 21, /*[PO]*/
2219  U_LB_PREFIX_NUMERIC = 22, /*[PR]*/
2220  U_LB_QUOTATION = 23, /*[QU]*/
2221  U_LB_COMPLEX_CONTEXT = 24, /*[SA]*/
2222  U_LB_SURROGATE = 25, /*[SG]*/
2223  U_LB_SPACE = 26, /*[SP]*/
2224  U_LB_BREAK_SYMBOLS = 27, /*[SY]*/
2225  U_LB_ZWSPACE = 28, /*[ZW]*/
2227  U_LB_NEXT_LINE = 29, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */
2229  U_LB_WORD_JOINER = 30, /*[WJ]*/
2231  U_LB_H2 = 31, /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */
2233  U_LB_H3 = 32, /*[H3]*/
2235  U_LB_JL = 33, /*[JL]*/
2237  U_LB_JT = 34, /*[JT]*/
2239  U_LB_JV = 35, /*[JV]*/
2241  U_LB_CLOSE_PARENTHESIS = 36, /*[CP]*/ /* new in Unicode 5.2/ICU 4.4 */
2243  U_LB_CONDITIONAL_JAPANESE_STARTER = 37,/*[CJ]*/ /* new in Unicode 6.1/ICU 49 */
2245  U_LB_HEBREW_LETTER = 38, /*[HL]*/ /* new in Unicode 6.1/ICU 49 */
2247  U_LB_REGIONAL_INDICATOR = 39,/*[RI]*/ /* new in Unicode 6.2/ICU 50 */
2249  U_LB_E_BASE = 40, /*[EB]*/ /* from here on: new in Unicode 9.0/ICU 58 */
2251  U_LB_E_MODIFIER = 41, /*[EM]*/
2253  U_LB_ZWJ = 42, /*[ZWJ]*/
2254 #ifndef U_HIDE_DEPRECATED_API
2255 
2262 #endif // U_HIDE_DEPRECATED_API
2263 } ULineBreak;
2264 
2271 typedef enum UNumericType {
2272  /*
2273  * Note: UNumericType constants are parsed by preparseucd.py.
2274  * It matches lines like
2275  * U_NT_<Unicode Numeric_Type value name>
2276  */
2277 
2278  U_NT_NONE, /*[None]*/
2279  U_NT_DECIMAL, /*[de]*/
2280  U_NT_DIGIT, /*[di]*/
2281  U_NT_NUMERIC, /*[nu]*/
2282 #ifndef U_HIDE_DEPRECATED_API
2283 
2290 #endif // U_HIDE_DEPRECATED_API
2291 } UNumericType;
2292 
2299 typedef enum UHangulSyllableType {
2300  /*
2301  * Note: UHangulSyllableType constants are parsed by preparseucd.py.
2302  * It matches lines like
2303  * U_HST_<Unicode Hangul_Syllable_Type value name>
2304  */
2305 
2306  U_HST_NOT_APPLICABLE, /*[NA]*/
2307  U_HST_LEADING_JAMO, /*[L]*/
2308  U_HST_VOWEL_JAMO, /*[V]*/
2309  U_HST_TRAILING_JAMO, /*[T]*/
2310  U_HST_LV_SYLLABLE, /*[LV]*/
2311  U_HST_LVT_SYLLABLE, /*[LVT]*/
2312 #ifndef U_HIDE_DEPRECATED_API
2313 
2320 #endif // U_HIDE_DEPRECATED_API
2322 
2349 U_STABLE UBool U_EXPORT2
2351 
2364 U_STABLE UBool U_EXPORT2
2366 
2379 U_STABLE UBool U_EXPORT2
2381 
2394 U_STABLE UBool U_EXPORT2
2396 
2415 U_STABLE UBool U_EXPORT2
2417 
2455 U_STABLE int32_t U_EXPORT2
2457 
2476 U_STABLE int32_t U_EXPORT2
2478 
2505 U_STABLE int32_t U_EXPORT2
2507 
2530 U_STABLE double U_EXPORT2
2532 
2540 #define U_NO_NUMERIC_VALUE ((double)-123456789.)
2541 
2565 U_STABLE UBool U_EXPORT2
2566 u_islower(UChar32 c);
2567 
2592 U_STABLE UBool U_EXPORT2
2593 u_isupper(UChar32 c);
2594 
2609 U_STABLE UBool U_EXPORT2
2610 u_istitle(UChar32 c);
2611 
2630 U_STABLE UBool U_EXPORT2
2631 u_isdigit(UChar32 c);
2632 
2651 U_STABLE UBool U_EXPORT2
2652 u_isalpha(UChar32 c);
2653 
2672 U_STABLE UBool U_EXPORT2
2673 u_isalnum(UChar32 c);
2674 
2695 U_STABLE UBool U_EXPORT2
2696 u_isxdigit(UChar32 c);
2697 
2711 U_STABLE UBool U_EXPORT2
2712 u_ispunct(UChar32 c);
2713 
2730 U_STABLE UBool U_EXPORT2
2731 u_isgraph(UChar32 c);
2732 
2758 U_STABLE UBool U_EXPORT2
2759 u_isblank(UChar32 c);
2760 
2783 U_STABLE UBool U_EXPORT2
2784 u_isdefined(UChar32 c);
2785 
2804 U_STABLE UBool U_EXPORT2
2805 u_isspace(UChar32 c);
2806 
2825 U_STABLE UBool U_EXPORT2
2827 
2865 U_STABLE UBool U_EXPORT2
2867 
2889 U_STABLE UBool U_EXPORT2
2890 u_iscntrl(UChar32 c);
2891 
2904 U_STABLE UBool U_EXPORT2
2906 
2922 U_STABLE UBool U_EXPORT2
2923 u_isprint(UChar32 c);
2924 
2943 U_STABLE UBool U_EXPORT2
2944 u_isbase(UChar32 c);
2945 
2962 U_STABLE UCharDirection U_EXPORT2
2964 
2980 U_STABLE UBool U_EXPORT2
2982 
3002 U_STABLE UChar32 U_EXPORT2
3004 
3021 U_STABLE UChar32 U_EXPORT2
3023 
3035 U_STABLE int8_t U_EXPORT2
3036 u_charType(UChar32 c);
3037 
3051 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
3052 
3070 typedef UBool U_CALLCONV
3071 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
3072 
3092 U_STABLE void U_EXPORT2
3093 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
3094 
3095 #if !UCONFIG_NO_NORMALIZATION
3096 
3104 U_STABLE uint8_t U_EXPORT2
3106 
3107 #endif
3108 
3132 U_STABLE int32_t U_EXPORT2
3134 
3144 U_STABLE UBlockCode U_EXPORT2
3146 
3179 U_STABLE int32_t U_EXPORT2
3180 u_charName(UChar32 code, UCharNameChoice nameChoice,
3181  char *buffer, int32_t bufferLength,
3182  UErrorCode *pErrorCode);
3183 
3184 #ifndef U_HIDE_DEPRECATED_API
3185 
3203 U_DEPRECATED int32_t U_EXPORT2
3205  char *dest, int32_t destCapacity,
3206  UErrorCode *pErrorCode);
3207 #endif /* U_HIDE_DEPRECATED_API */
3208 
3229 U_STABLE UChar32 U_EXPORT2
3230 u_charFromName(UCharNameChoice nameChoice,
3231  const char *name,
3232  UErrorCode *pErrorCode);
3233 
3251 typedef UBool U_CALLCONV UEnumCharNamesFn(void *context,
3252  UChar32 code,
3253  UCharNameChoice nameChoice,
3254  const char *name,
3255  int32_t length);
3256 
3278 U_STABLE void U_EXPORT2
3279 u_enumCharNames(UChar32 start, UChar32 limit,
3280  UEnumCharNamesFn *fn,
3281  void *context,
3282  UCharNameChoice nameChoice,
3283  UErrorCode *pErrorCode);
3284 
3316 U_STABLE const char* U_EXPORT2
3317 u_getPropertyName(UProperty property,
3318  UPropertyNameChoice nameChoice);
3319 
3339 U_STABLE UProperty U_EXPORT2
3340 u_getPropertyEnum(const char* alias);
3341 
3389 U_STABLE const char* U_EXPORT2
3391  int32_t value,
3392  UPropertyNameChoice nameChoice);
3393 
3425 U_STABLE int32_t U_EXPORT2
3427  const char* alias);
3428 
3446 U_STABLE UBool U_EXPORT2
3447 u_isIDStart(UChar32 c);
3448 
3470 U_STABLE UBool U_EXPORT2
3471 u_isIDPart(UChar32 c);
3472 
3493 U_STABLE UBool U_EXPORT2
3495 
3512 U_STABLE UBool U_EXPORT2
3514 
3533 U_STABLE UBool U_EXPORT2
3535 
3558 U_STABLE UChar32 U_EXPORT2
3559 u_tolower(UChar32 c);
3560 
3583 U_STABLE UChar32 U_EXPORT2
3584 u_toupper(UChar32 c);
3585 
3608 U_STABLE UChar32 U_EXPORT2
3609 u_totitle(UChar32 c);
3610 
3633 U_STABLE UChar32 U_EXPORT2
3634 u_foldCase(UChar32 c, uint32_t options);
3635 
3674 U_STABLE int32_t U_EXPORT2
3675 u_digit(UChar32 ch, int8_t radix);
3676 
3705 U_STABLE UChar32 U_EXPORT2
3706 u_forDigit(int32_t digit, int8_t radix);
3707 
3722 U_STABLE void U_EXPORT2
3723 u_charAge(UChar32 c, UVersionInfo versionArray);
3724 
3736 U_STABLE void U_EXPORT2
3737 u_getUnicodeVersion(UVersionInfo versionArray);
3738 
3739 #if !UCONFIG_NO_NORMALIZATION
3740 
3761 U_STABLE int32_t U_EXPORT2
3762 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
3763 
3764 #endif
3765 
3766 
3768 
3769 #endif /*_UCHAR*/
3770 /*eof*/
uint8_t UVersionInfo[U_MAX_VERSION_LENGTH]
The binary form of a version on ICU APIs is an array of 4 uint8_t.
Definition: uversion.h:59
Binary property Ideographic.
Definition: uchar.h:241
Unicode 4.0.1 renames the "Cyrillic Supplementary" block to "Cyrillic Supplement".
Definition: uchar.h:1292
Binary property Changes_When_Lowercased.
Definition: uchar.h:393
Binary property IDS_Binary_Operator (new in Unicode 3.2).
Definition: uchar.h:245
Binary property Case_Ignorable.
Definition: uchar.h:391
UBool u_isUWhiteSpace(UChar32 c)
Check if a code point has the White_Space Unicode property.
UBool u_istitle(UChar32 c)
Determines whether the specified code point is a titlecase letter.
Enumerated property NFC_Quick_Check.
Definition: uchar.h:511
UChar32 u_totitle(UChar32 c)
The given character is mapped to its titlecase equivalent according to UnicodeData.txt; if none is defined, the character itself is returned.
One more than the highest normal UJoiningGroup value.
Definition: uchar.h:2024
Miscellaneous property Script_Extensions (new in Unicode 6.0).
Definition: uchar.h:652
const char * u_getPropertyName(UProperty property, UPropertyNameChoice nameChoice)
Return the Unicode name for a given property, as given in the Unicode database file PropertyAliases...
Same as UBLOCK_PRIVATE_USE_AREA.
Definition: uchar.h:1234
UChar32 u_foldCase(UChar32 c, uint32_t options)
The given character is mapped to its case folding equivalent according to UnicodeData.txt and CaseFolding.txt; if the character has no case folding equivalent, the character itself is returned.
First constant for enumerated/integer Unicode properties.
Definition: uchar.h:468
UChar32 u_getBidiPairedBracket(UChar32 c)
Maps the specified character to its paired bracket character.
Binary property XID_Start.
Definition: uchar.h:298
Binary property Join_Control.
Definition: uchar.h:252
Binary property Logical_Order_Exception (new in Unicode 3.2).
Definition: uchar.h:256
Binary property White_Space.
Definition: uchar.h:291
String property Titlecase_Mapping.
Definition: uchar.h:625
One more than the highest normal UPropertyNameChoice value.
Definition: uchar.h:1822
One more than the last constant for enumerated/integer Unicode properties.
Definition: uchar.h:554
Enumerated property Numeric_Type.
Definition: uchar.h:496
Binary property xdigit (a C/POSIX character class).
Definition: uchar.h:387
UBlockCode ublock_getCode(UChar32 c)
Returns the Unicode allocation block that contains the character.
Binary property Alphabetic.
Definition: uchar.h:179
First constant for double Unicode properties.
Definition: uchar.h:580
C API: Bit set option bit constants for various string and character processing functions.
UBool UEnumCharNamesFn(void *context, UChar32 code, UCharNameChoice nameChoice, const char *name, int32_t length)
Type of a callback function for u_enumCharNames() that gets called for each Unicode character with th...
Definition: uchar.h:3251
One more than the highest normal USentenceBreak value.
Definition: uchar.h:2178
UBool u_isgraph(UChar32 c)
Determines whether the specified code point is a "graphic" character (printable, excluding spaces)...
Binary property Emoji_Component.
Definition: uchar.h:438
Binary property Emoji.
Definition: uchar.h:410
Cn "Other, Not Assigned (no characters in [UnicodeData.txt] have this property)" (same as U_UNASSIGNE...
Definition: uchar.h:684
String property Simple_Case_Folding.
Definition: uchar.h:613
Binary property NFC_Inert.
Definition: uchar.h:334
Binary property graph (a C/POSIX character class).
Definition: uchar.h:377
String property Bidi_Mirroring_Glyph.
Definition: uchar.h:596
One more than the last constant for bit-mask Unicode properties.
Definition: uchar.h:573
UBool u_isdefined(UChar32 c)
Determines whether the specified code point is "defined", which usually means that it is assigned a c...
Enumerated property Block.
Definition: uchar.h:471
Represents a nonexistent or invalid property or property value.
Definition: uchar.h:664
Renamed from the misspelled "inseperable" in Unicode 4.0.1/ICU 3.0.
Definition: uchar.h:2211
Binary property Radical (new in Unicode 3.2).
Definition: uchar.h:271
UCharDirection
This specifies the language directional property of a character set.
Definition: uchar.h:869
Binary property IDS_Trinary_Operator (new in Unicode 3.2).
Definition: uchar.h:249
Binary property Grapheme_Link (new in Unicode 3.2).
Definition: uchar.h:223
Enumerated property Decomposition_Type.
Definition: uchar.h:477
Binary property Regional_Indicator.
Definition: uchar.h:443
#define U_CALLCONV
Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary in callback function typedefs to ma...
Definition: platform.h:836
String property Case_Folding.
Definition: uchar.h:599
String property Name.
Definition: uchar.h:610
String property Simple_Uppercase_Mapping.
Definition: uchar.h:622
UChar32 u_forDigit(int32_t digit, int8_t radix)
Determines the character representation for a specific digit in the specified radix.
Enumerated property Bidi_Class.
Definition: uchar.h:466
int32_t u_charDigitValue(UChar32 c)
Returns the decimal digit value of a decimal digit character.
Enumerated property General_Category.
Definition: uchar.h:484
Binary property Prepended_Concatenation_Mark.
Definition: uchar.h:448
Sm.
Definition: uchar.h:732
String property Unicode_1_Name.
Definition: uchar.h:631
int32_t u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode)
Get the FC_NFKC_Closure property string for a character.
UNumericType
Numeric Type constants.
Definition: uchar.h:2271
One more than the highest normal UBidiPairedBracketType value.
Definition: uchar.h:960
Binary property Pattern_White_Space (new in Unicode 4.1).
Definition: uchar.h:362
Close paired bracket.
Definition: uchar.h:952
UBool u_iscntrl(UChar32 c)
Determines whether the specified code point is a control character (as defined by this function)...
UBool UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type)
Callback from u_enumCharTypes(), is called for each contiguous range of code points c (where start<=c...
Definition: uchar.h:3071
Binary property Changes_When_Casefolded.
Definition: uchar.h:399
Binary property NFD_Inert.
Definition: uchar.h:320
Binary property Diacritic.
Definition: uchar.h:204
Binary property Terminal_Punctuation.
Definition: uchar.h:280
UChar32 u_charFromName(UCharNameChoice nameChoice, const char *name, UErrorCode *pErrorCode)
Find a Unicode character by its name and return its code point value.
One more than the highest normal UNumericType value.
Definition: uchar.h:2289
UBool u_isUAlphabetic(UChar32 c)
Check if a code point has the Alphabetic Unicode property.
Enumerated property NFD_Quick_Check.
Definition: uchar.h:505
void u_charAge(UChar32 c, UVersionInfo versionArray)
Get the "age" of the code point.
int32_t u_getPropertyValueEnum(UProperty property, const char *alias)
Return the property value integer for a given value name, as specified in the Unicode database file P...
#define U_CDECL_BEGIN
This is used to begin a declaration of a library private ICU C API.
Definition: umachine.h:84
Binary property STerm (new in Unicode 4.0.1).
Definition: uchar.h:307
Enumerated property Joining_Group.
Definition: uchar.h:487
Binary property ID_Continue.
Definition: uchar.h:234
Binary property Emoji_Presentation.
Definition: uchar.h:417
Open paired bracket.
Definition: uchar.h:950
Binary property blank (a C/POSIX character class).
Definition: uchar.h:372
Binary property Quotation_Mark.
Definition: uchar.h:267
#define U_DEPRECATED
This is used to declare a function as a deprecated public ICU C API.
Definition: umachine.h:115
Binary property Changes_When_NFKC_Casefolded.
Definition: uchar.h:403
First constant for binary Unicode properties.
Definition: uchar.h:181
Binary property Noncharacter_Code_Point.
Definition: uchar.h:265
Binary property Hyphen.
Definition: uchar.h:229
Enumerated property East_Asian_Width.
Definition: uchar.h:481
ULineBreak
Line Break constants.
Definition: uchar.h:2188
One more than the highest UCharDirection value.
Definition: uchar.h:930
Binary property Full_Composition_Exclusion.
Definition: uchar.h:212
Bitmask property General_Category_Mask.
Definition: uchar.h:565
String property Simple_Titlecase_Mapping.
Definition: uchar.h:619
One more than the highest normal UGraphemeClusterBreak value.
Definition: uchar.h:2075
Unicode 3.2 renames this block to "Combining Diacritical Marks for Symbols".
Definition: uchar.h:1111
int32_t u_digit(UChar32 ch, int8_t radix)
Returns the decimal digit value of the code point in the specified radix.
UDecompositionType
Decomposition Type constants.
Definition: uchar.h:1832
UBool u_isprint(UChar32 c)
Determines whether the specified code point is a printable character.
UBool u_isxdigit(UChar32 c)
Determines whether the specified code point is a hexadecimal digit.
One more than the highest normal ULineBreak value.
Definition: uchar.h:2261
UHangulSyllableType
Hangul Syllable Type constants.
Definition: uchar.h:2299
String property Simple_Lowercase_Mapping.
Definition: uchar.h:616
Binary property print (a C/POSIX character class).
Definition: uchar.h:382
Binary property Case_Sensitive.
Definition: uchar.h:302
Standard or synthetic character name.
Definition: uchar.h:1789
Binary property Bidi_Mirrored.
Definition: uchar.h:192
Binary property NFKC_Inert.
Definition: uchar.h:341
int32_t u_getIntPropertyValue(UChar32 c, UProperty which)
Get the property value for an enumerated or integer Unicode property for a code point.
Binary property Changes_When_Casemapped.
Definition: uchar.h:401
First constant for string Unicode properties.
Definition: uchar.h:593
Binary property Grapheme_Extend (new in Unicode 3.2).
Definition: uchar.h:220
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition: umachine.h:400
UGraphemeClusterBreak
Grapheme Cluster Break constants.
Definition: uchar.h:2034
New No_Block value in Unicode 4.
Definition: uchar.h:976
Binary property Extender.
Definition: uchar.h:208
Double property Numeric_Value.
Definition: uchar.h:578
Binary property Math.
Definition: uchar.h:261
Unicode character name (Name property).
Definition: uchar.h:1779
Binary property Grapheme_Base (new in Unicode 3.2).
Definition: uchar.h:216
Binary property NFKD_Inert.
Definition: uchar.h:327
uint8_t u_getCombiningClass(UChar32 c)
Returns the combining class of the code point as specified in UnicodeData.txt.
UBool u_isbase(UChar32 c)
Determines whether the specified code point is a base character.
UCharCategory
Data for enumerated Unicode general category types.
Definition: uchar.h:672
const char * u_getPropertyValueName(UProperty property, int32_t value, UPropertyNameChoice nameChoice)
Return the Unicode name for a given property value, as given in the Unicode database file PropertyVal...
Enumerated property Sentence_Break (new in Unicode 4.1).
Definition: uchar.h:538
double u_getNumericValue(UChar32 c)
Get the numeric value for a Unicode code point as defined in the Unicode Character Database...
Binary property Lowercase.
Definition: uchar.h:259
UBool u_isJavaIDStart(UChar32 c)
Determines if the specified character is permissible as the first character in a Java identifier...
First constant for bit-mask Unicode properties.
Definition: uchar.h:567
Enumerated property Bidi_Paired_Bracket_Type (new in Unicode 6.3).
Definition: uchar.h:548
UBool u_isspace(UChar32 c)
Determines if the specified character is a space character or not.
USentenceBreak
Sentence Break constants.
Definition: uchar.h:2149
Binary property Extended_Pictographic.
Definition: uchar.h:455
Binary property Unified_Ideograph (new in Unicode 3.2).
Definition: uchar.h:284
Enumerated property Canonical_Combining_Class.
Definition: uchar.h:474
UCharNameChoice
Selector constants for u_charName().
Definition: uchar.h:1777
One more than the last constant for binary Unicode properties.
Definition: uchar.h:461
UBool u_isJavaIDPart(UChar32 c)
Determines if the specified character is permissible in a Java identifier.
Enumerated property Script.
Definition: uchar.h:499
Unicode 3.2 renames this block to "Greek and Coptic".
Definition: uchar.h:1003
Binary property Hex_Digit.
Definition: uchar.h:226
String property Uppercase_Mapping.
Definition: uchar.h:635
UPropertyNameChoice
Selector constants for u_getPropertyName() and u_getPropertyValueName().
Definition: uchar.h:1814
String property Lowercase_Mapping.
Definition: uchar.h:607
UCharDirection u_charDirection(UChar32 c)
Returns the bidirectional category value for the code point, which is used in the Unicode bidirection...
UBool u_islower(UChar32 c)
Determines whether the specified code point has the general category "Ll" (lowercase letter)...
uint16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:353
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
Definition: umachine.h:85
Enumerated property NFKC_Quick_Check.
Definition: uchar.h:514
Not a paired bracket.
Definition: uchar.h:948
UProperty
Selection constants for Unicode properties.
Definition: uchar.h:165
void u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context)
Enumerate efficiently all code points with their Unicode general categories.
Enumerated property Hangul_Syllable_Type, new in Unicode 4.
Definition: uchar.h:502
Binary property Dash.
Definition: uchar.h:194
Binary property alnum (a C/POSIX character class).
Definition: uchar.h:367
Cf.
Definition: uchar.h:716
Binary property Variation_Selector (new in Unicode 4.0.1).
Definition: uchar.h:313
One more than the highest normal UHangulSyllableType value.
Definition: uchar.h:2319
UBool u_isUUppercase(UChar32 c)
Check if a code point has the Uppercase Unicode property.
UBlockCode
Constants for Unicode blocks, see the Unicode Data file Blocks.txt.
Definition: uchar.h:968
Enumerated property Word_Break (new in Unicode 4.1).
Definition: uchar.h:543
Binary property Deprecated (new in Unicode 3.2).
Definition: uchar.h:201
Binary property Bidi_Control.
Definition: uchar.h:187
Binary property XID_Continue.
Definition: uchar.h:295
Same as UBLOCK_PRIVATE_USE.
Definition: uchar.h:1224
UBool u_hasBinaryProperty(UChar32 c, UProperty which)
Check a binary Unicode property for a code point.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
Definition: utypes.h:396
Binary property Uppercase.
Definition: uchar.h:287
void u_getUnicodeVersion(UVersionInfo versionArray)
Gets the Unicode version information.
Binary property Changes_When_Uppercased.
Definition: uchar.h:395
UJoiningGroup
Joining Group constants.
Definition: uchar.h:1904
Binary property Cased.
Definition: uchar.h:389
One more than the highest normal UEastAsianWidth value.
Definition: uchar.h:1762
One more than the highest normal UDecompositionType value.
Definition: uchar.h:1864
Cs.
Definition: uchar.h:720
UEastAsianWidth
East Asian Width constants.
Definition: uchar.h:1742
UBool u_isupper(UChar32 c)
Determines whether the specified code point has the general category "Lu" (uppercase letter)...
Enumerated property Trail_Canonical_Combining_Class.
Definition: uchar.h:528
UBool u_isULowercase(UChar32 c)
Check if a code point has the Lowercase Unicode property.
Non-category for unassigned and non-character code points.
Definition: uchar.h:682
UBool u_ispunct(UChar32 c)
Determines whether the specified code point is a punctuation character.
First constant for Unicode properties with unusual value types.
Definition: uchar.h:654
UWordBreakValues
Word Break constants.
Definition: uchar.h:2086
void u_enumCharNames(UChar32 start, UChar32 limit, UEnumCharNamesFn *fn, void *context, UCharNameChoice nameChoice, UErrorCode *pErrorCode)
Enumerate all assigned Unicode characters between the start and limit code points (start inclusive...
int32_t u_getIntPropertyMaxValue(UProperty which)
Get the maximum value for an enumerated/integer/binary Unicode property.
Enumerated property Joining_Type.
Definition: uchar.h:490
One more than the last constant for double Unicode properties.
Definition: uchar.h:586
Binary property Emoji_Modifier.
Definition: uchar.h:424
Basic definitions for ICU, for both C and C++ APIs.
UBool u_isIDPart(UChar32 c)
Determines if the specified character is permissible in an identifier according to Java...
String property Bidi_Paired_Bracket (new in Unicode 6.3).
Definition: uchar.h:638
Enumerated property Lead_Canonical_Combining_Class.
Definition: uchar.h:521
Binary property ASCII_Hex_Digit.
Definition: uchar.h:183
UJoiningType
Joining Type constants.
Definition: uchar.h:1874
UBool u_isIDStart(UChar32 c)
Determines if the specified character is permissible as the first character in an identifier accordin...
Binary property Soft_Dotted (new in Unicode 3.2).
Definition: uchar.h:276
One more than the last constant for string Unicode properties.
Definition: uchar.h:644
Binary property Emoji_Modifier_Base.
Definition: uchar.h:431
Binary Property Segment_Starter.
Definition: uchar.h:352
UChar32 u_toupper(UChar32 c)
The given character is mapped to its uppercase equivalent according to UnicodeData.txt; if the character has no uppercase equivalent, the character itself is returned.
Binary property ID_Start.
Definition: uchar.h:238
int32_t u_getIntPropertyMinValue(UProperty which)
Get the minimum value for an enumerated/integer/binary Unicode property.
UBool u_isJavaSpaceChar(UChar32 c)
Determine if the specified code point is a space character according to Java.
UBool u_isMirrored(UChar32 c)
Determines whether the code point has the Bidi_Mirrored property.
Corrected name from NameAliases.txt.
Definition: uchar.h:1791
Binary property Changes_When_Titlecased.
Definition: uchar.h:397
UChar32 u_tolower(UChar32 c)
The given character is mapped to its lowercase equivalent according to UnicodeData.txt; if the character has no lowercase equivalent, the character itself is returned.
Enumerated property Line_Break.
Definition: uchar.h:493
One more than the highest normal UJoiningType value.
Definition: uchar.h:1894
UBool u_isIDIgnorable(UChar32 c)
Determines if the specified character should be regarded as an ignorable character in an identifier...
Enumerated property Grapheme_Cluster_Break (new in Unicode 4.1).
Definition: uchar.h:533
UBool u_isdigit(UChar32 c)
Determines whether the specified code point is a digit character according to Java.
UProperty u_getPropertyEnum(const char *alias)
Return the UProperty enum for a given property name, as specified in the Unicode database file Proper...
UBool u_isWhitespace(UChar32 c)
Determines if the specified code point is a whitespace character according to Java/ICU.
Deprecated string property ISO_Comment.
Definition: uchar.h:603
UBool u_isblank(UChar32 c)
Determines whether the specified code point is a "blank" or "horizontal space", a character that visi...
UBool u_isalpha(UChar32 c)
Determines whether the specified code point is a letter character.
Binary property Default_Ignorable_Code_Point (new in Unicode 3.2).
Definition: uchar.h:198
One more than the highest normal UBlockCode value.
Definition: uchar.h:1725
The Unicode_1_Name property value which is of little practical value.
Definition: uchar.h:1786
int32_t u_getISOComment(UChar32 c, char *dest, int32_t destCapacity, UErrorCode *pErrorCode)
Returns an empty string.
One higher than the last enum UCharCategory constant.
Definition: uchar.h:750
One more than the highest normal UWordBreakValues value.
Definition: uchar.h:2139
UBool u_isalnum(UChar32 c)
Determines whether the specified code point is an alphanumeric character (letter or digit) according ...
Binary property Pattern_Syntax (new in Unicode 4.1).
Definition: uchar.h:357
One more than the last constant for Unicode properties with unusual value types.
Definition: uchar.h:660
UBidiPairedBracketType
Bidi Paired Bracket Type constants.
Definition: uchar.h:940
One more than the highest normal UCharNameChoice value.
Definition: uchar.h:1797
UChar32 u_charMirror(UChar32 c)
Maps the specified character to a "mirror-image" character.
UBool u_isISOControl(UChar32 c)
Determines whether the specified code point is an ISO control code.
int8_t u_charType(UChar32 c)
Returns the general category value for the code point.
int32_t u_charName(UChar32 code, UCharNameChoice nameChoice, char *buffer, int32_t bufferLength, UErrorCode *pErrorCode)
Retrieve the name of a Unicode character.
String property Age.
Definition: uchar.h:591
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:111
int8_t UBool
The ICU boolean type.
Definition: umachine.h:236
Enumerated property NFKD_Quick_Check.
Definition: uchar.h:508