ICU 56.1  56.1
uchar.h
Go to the documentation of this file.
1 /*
2 **********************************************************************
3 * Copyright (C) 1997-2015, International Business Machines
4 * Corporation and others. All Rights Reserved.
5 **********************************************************************
6 *
7 * File UCHAR.H
8 *
9 * Modification History:
10 *
11 * Date Name Description
12 * 04/02/97 aliu Creation.
13 * 03/29/99 helena Updated for C APIs.
14 * 4/15/99 Madhu Updated for C Implementation and Javadoc
15 * 5/20/99 Madhu Added the function u_getVersion()
16 * 8/19/1999 srl Upgraded scripts to Unicode 3.0
17 * 8/27/1999 schererm UCharDirection constants: U_...
18 * 11/11/1999 weiv added u_isalnum(), cleaned comments
19 * 01/11/2000 helena Renamed u_getVersion to u_getUnicodeVersion().
20 ******************************************************************************
21 */
22 
23 #ifndef UCHAR_H
24 #define UCHAR_H
25 
26 #include "unicode/utypes.h"
27 
29 
30 /*==========================================================================*/
31 /* Unicode version number */
32 /*==========================================================================*/
42 #define U_UNICODE_VERSION "8.0"
43 
124 #define UCHAR_MIN_VALUE 0
125 
134 #define UCHAR_MAX_VALUE 0x10ffff
135 
140 #define U_MASK(x) ((uint32_t)1<<(x))
141 
161 typedef enum UProperty {
162  /*
163  * Note: UProperty constants are parsed by preparseucd.py.
164  * It matches lines like
165  * UCHAR_<Unicode property name>=<integer>,
166  */
167 
168  /* Note: Place UCHAR_ALPHABETIC before UCHAR_BINARY_START so that
169  debuggers display UCHAR_ALPHABETIC as the symbolic name for 0,
170  rather than UCHAR_BINARY_START. Likewise for other *_START
171  identifiers. */
172 
402 
410  UCHAR_BLOCK=0x1001,
438  UCHAR_SCRIPT=0x100A,
490 
504 
512 
515  UCHAR_AGE=0x4000,
524 #ifndef U_HIDE_DEPRECATED_API
525 
528 #endif /* U_HIDE_DEPRECATED_API */
529 
534  UCHAR_NAME=0x4005,
550 #ifndef U_HIDE_DEPRECATED_API
551 
556 #endif /* U_HIDE_DEPRECATED_API */
557 
565 
579 } UProperty;
580 
586 typedef enum UCharCategory
587 {
588  /*
589  * Note: UCharCategory constants and their API comments are parsed by preparseucd.py.
590  * It matches pairs of lines like
591  * / ** <Unicode 2-letter General_Category value> comment... * /
592  * U_<[A-Z_]+> = <integer>,
593  */
594 
659 } UCharCategory;
660 
675 #define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES)
676 
678 #define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER)
679 
680 #define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER)
681 
682 #define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER)
683 
684 #define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER)
685 
686 #define U_GC_LO_MASK U_MASK(U_OTHER_LETTER)
687 
689 #define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK)
690 
691 #define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK)
692 
693 #define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK)
694 
696 #define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER)
697 
698 #define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER)
699 
700 #define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER)
701 
703 #define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR)
704 
705 #define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR)
706 
707 #define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR)
708 
710 #define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR)
711 
712 #define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR)
713 
714 #define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR)
715 
716 #define U_GC_CS_MASK U_MASK(U_SURROGATE)
717 
719 #define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION)
720 
721 #define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION)
722 
723 #define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION)
724 
725 #define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION)
726 
727 #define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION)
728 
730 #define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL)
731 
732 #define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL)
733 
734 #define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL)
735 
736 #define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL)
737 
739 #define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION)
740 
741 #define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION)
742 
743 
745 #define U_GC_L_MASK \
746  (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
747 
749 #define U_GC_LC_MASK \
750  (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
751 
753 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
754 
756 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
757 
759 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
760 
762 #define U_GC_C_MASK \
763  (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
764 
766 #define U_GC_P_MASK \
767  (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
768  U_GC_PI_MASK|U_GC_PF_MASK)
769 
771 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
772 
777 typedef enum UCharDirection {
778  /*
779  * Note: UCharDirection constants and their API comments are parsed by preparseucd.py.
780  * It matches pairs of lines like
781  * / ** <Unicode 1..3-letter Bidi_Class value> comment... * /
782  * U_<[A-Z_]+> = <integer>,
783  */
784 
834 
842  /*
843  * Note: UBidiPairedBracketType constants are parsed by preparseucd.py.
844  * It matches lines like
845  * U_BPT_<Unicode Bidi_Paired_Bracket_Type value name>
846  */
847 
855  U_BPT_COUNT /* 3 */
857 
863  /*
864  * Note: UBlockCode constants are parsed by preparseucd.py.
865  * It matches lines like
866  * UBLOCK_<Unicode Block value name> = <integer>,
867  */
868 
870  UBLOCK_NO_BLOCK = 0, /*[none]*/ /* Special range indicating No_Block */
871 
873  UBLOCK_BASIC_LATIN = 1, /*[0000]*/
874 
877 
879  UBLOCK_LATIN_EXTENDED_A =3, /*[0100]*/
880 
882  UBLOCK_LATIN_EXTENDED_B =4, /*[0180]*/
883 
885  UBLOCK_IPA_EXTENSIONS =5, /*[0250]*/
886 
889 
892 
897  UBLOCK_GREEK =8, /*[0370]*/
898 
900  UBLOCK_CYRILLIC =9, /*[0400]*/
901 
903  UBLOCK_ARMENIAN =10, /*[0530]*/
904 
906  UBLOCK_HEBREW =11, /*[0590]*/
907 
909  UBLOCK_ARABIC =12, /*[0600]*/
910 
912  UBLOCK_SYRIAC =13, /*[0700]*/
913 
915  UBLOCK_THAANA =14, /*[0780]*/
916 
918  UBLOCK_DEVANAGARI =15, /*[0900]*/
919 
921  UBLOCK_BENGALI =16, /*[0980]*/
922 
924  UBLOCK_GURMUKHI =17, /*[0A00]*/
925 
927  UBLOCK_GUJARATI =18, /*[0A80]*/
928 
930  UBLOCK_ORIYA =19, /*[0B00]*/
931 
933  UBLOCK_TAMIL =20, /*[0B80]*/
934 
936  UBLOCK_TELUGU =21, /*[0C00]*/
937 
939  UBLOCK_KANNADA =22, /*[0C80]*/
940 
942  UBLOCK_MALAYALAM =23, /*[0D00]*/
943 
945  UBLOCK_SINHALA =24, /*[0D80]*/
946 
948  UBLOCK_THAI =25, /*[0E00]*/
949 
951  UBLOCK_LAO =26, /*[0E80]*/
952 
954  UBLOCK_TIBETAN =27, /*[0F00]*/
955 
957  UBLOCK_MYANMAR =28, /*[1000]*/
958 
960  UBLOCK_GEORGIAN =29, /*[10A0]*/
961 
963  UBLOCK_HANGUL_JAMO =30, /*[1100]*/
964 
966  UBLOCK_ETHIOPIC =31, /*[1200]*/
967 
969  UBLOCK_CHEROKEE =32, /*[13A0]*/
970 
973 
975  UBLOCK_OGHAM =34, /*[1680]*/
976 
978  UBLOCK_RUNIC =35, /*[16A0]*/
979 
981  UBLOCK_KHMER =36, /*[1780]*/
982 
984  UBLOCK_MONGOLIAN =37, /*[1800]*/
985 
988 
990  UBLOCK_GREEK_EXTENDED =39, /*[1F00]*/
991 
994 
997 
999  UBLOCK_CURRENCY_SYMBOLS =42, /*[20A0]*/
1000 
1006 
1009 
1011  UBLOCK_NUMBER_FORMS =45, /*[2150]*/
1012 
1014  UBLOCK_ARROWS =46, /*[2190]*/
1015 
1018 
1021 
1023  UBLOCK_CONTROL_PICTURES =49, /*[2400]*/
1024 
1027 
1030 
1032  UBLOCK_BOX_DRAWING =52, /*[2500]*/
1033 
1035  UBLOCK_BLOCK_ELEMENTS =53, /*[2580]*/
1036 
1038  UBLOCK_GEOMETRIC_SHAPES =54, /*[25A0]*/
1039 
1042 
1044  UBLOCK_DINGBATS =56, /*[2700]*/
1045 
1047  UBLOCK_BRAILLE_PATTERNS =57, /*[2800]*/
1048 
1051 
1053  UBLOCK_KANGXI_RADICALS =59, /*[2F00]*/
1054 
1057 
1060 
1062  UBLOCK_HIRAGANA =62, /*[3040]*/
1063 
1065  UBLOCK_KATAKANA =63, /*[30A0]*/
1066 
1068  UBLOCK_BOPOMOFO =64, /*[3100]*/
1069 
1072 
1074  UBLOCK_KANBUN =66, /*[3190]*/
1075 
1078 
1081 
1084 
1087 
1090 
1092  UBLOCK_YI_SYLLABLES =72, /*[A000]*/
1093 
1095  UBLOCK_YI_RADICALS =73, /*[A490]*/
1096 
1098  UBLOCK_HANGUL_SYLLABLES =74, /*[AC00]*/
1099 
1101  UBLOCK_HIGH_SURROGATES =75, /*[D800]*/
1102 
1105 
1107  UBLOCK_LOW_SURROGATES =77, /*[DC00]*/
1108 
1118  UBLOCK_PRIVATE_USE_AREA =78, /*[E000]*/
1129 
1132 
1135 
1138 
1141 
1144 
1147 
1150 
1152  UBLOCK_SPECIALS =86, /*[FFF0]*/
1153 
1156 
1157  /* New blocks in Unicode 3.1 */
1158 
1160  UBLOCK_OLD_ITALIC = 88, /*[10300]*/
1162  UBLOCK_GOTHIC = 89, /*[10330]*/
1164  UBLOCK_DESERET = 90, /*[10400]*/
1168  UBLOCK_MUSICAL_SYMBOLS = 92, /*[1D100]*/
1176  UBLOCK_TAGS = 96, /*[E0000]*/
1177 
1178  /* New blocks in Unicode 3.2 */
1179 
1188  UBLOCK_TAGALOG = 98, /*[1700]*/
1190  UBLOCK_HANUNOO = 99, /*[1720]*/
1192  UBLOCK_BUHID = 100, /*[1740]*/
1194  UBLOCK_TAGBANWA = 101, /*[1760]*/
1208  UBLOCK_VARIATION_SELECTORS = 108, /*[FE00]*/
1213 
1214  /* New blocks in Unicode 4 */
1215 
1217  UBLOCK_LIMBU = 111, /*[1900]*/
1219  UBLOCK_TAI_LE = 112, /*[1950]*/
1221  UBLOCK_KHMER_SYMBOLS = 113, /*[19E0]*/
1223  UBLOCK_PHONETIC_EXTENSIONS = 114, /*[1D00]*/
1229  UBLOCK_LINEAR_B_SYLLABARY = 117, /*[10000]*/
1231  UBLOCK_LINEAR_B_IDEOGRAMS = 118, /*[10080]*/
1233  UBLOCK_AEGEAN_NUMBERS = 119, /*[10100]*/
1235  UBLOCK_UGARITIC = 120, /*[10380]*/
1237  UBLOCK_SHAVIAN = 121, /*[10450]*/
1239  UBLOCK_OSMANYA = 122, /*[10480]*/
1241  UBLOCK_CYPRIOT_SYLLABARY = 123, /*[10800]*/
1243  UBLOCK_TAI_XUAN_JING_SYMBOLS = 124, /*[1D300]*/
1246 
1247  /* New blocks in Unicode 4.1 */
1248 
1252  UBLOCK_ANCIENT_GREEK_NUMBERS = 127, /*[10140]*/
1254  UBLOCK_ARABIC_SUPPLEMENT = 128, /*[0750]*/
1256  UBLOCK_BUGINESE = 129, /*[1A00]*/
1258  UBLOCK_CJK_STROKES = 130, /*[31C0]*/
1262  UBLOCK_COPTIC = 132, /*[2C80]*/
1264  UBLOCK_ETHIOPIC_EXTENDED = 133, /*[2D80]*/
1266  UBLOCK_ETHIOPIC_SUPPLEMENT = 134, /*[1380]*/
1268  UBLOCK_GEORGIAN_SUPPLEMENT = 135, /*[2D00]*/
1270  UBLOCK_GLAGOLITIC = 136, /*[2C00]*/
1272  UBLOCK_KHAROSHTHI = 137, /*[10A00]*/
1276  UBLOCK_NEW_TAI_LUE = 139, /*[1980]*/
1278  UBLOCK_OLD_PERSIAN = 140, /*[103A0]*/
1284  UBLOCK_SYLOTI_NAGRI = 143, /*[A800]*/
1286  UBLOCK_TIFINAGH = 144, /*[2D30]*/
1288  UBLOCK_VERTICAL_FORMS = 145, /*[FE10]*/
1289 
1290  /* New blocks in Unicode 5.0 */
1291 
1293  UBLOCK_NKO = 146, /*[07C0]*/
1295  UBLOCK_BALINESE = 147, /*[1B00]*/
1297  UBLOCK_LATIN_EXTENDED_C = 148, /*[2C60]*/
1299  UBLOCK_LATIN_EXTENDED_D = 149, /*[A720]*/
1301  UBLOCK_PHAGS_PA = 150, /*[A840]*/
1303  UBLOCK_PHOENICIAN = 151, /*[10900]*/
1305  UBLOCK_CUNEIFORM = 152, /*[12000]*/
1309  UBLOCK_COUNTING_ROD_NUMERALS = 154, /*[1D360]*/
1310 
1311  /* New blocks in Unicode 5.1 */
1312 
1314  UBLOCK_SUNDANESE = 155, /*[1B80]*/
1316  UBLOCK_LEPCHA = 156, /*[1C00]*/
1318  UBLOCK_OL_CHIKI = 157, /*[1C50]*/
1320  UBLOCK_CYRILLIC_EXTENDED_A = 158, /*[2DE0]*/
1322  UBLOCK_VAI = 159, /*[A500]*/
1324  UBLOCK_CYRILLIC_EXTENDED_B = 160, /*[A640]*/
1326  UBLOCK_SAURASHTRA = 161, /*[A880]*/
1328  UBLOCK_KAYAH_LI = 162, /*[A900]*/
1330  UBLOCK_REJANG = 163, /*[A930]*/
1332  UBLOCK_CHAM = 164, /*[AA00]*/
1334  UBLOCK_ANCIENT_SYMBOLS = 165, /*[10190]*/
1336  UBLOCK_PHAISTOS_DISC = 166, /*[101D0]*/
1338  UBLOCK_LYCIAN = 167, /*[10280]*/
1340  UBLOCK_CARIAN = 168, /*[102A0]*/
1342  UBLOCK_LYDIAN = 169, /*[10920]*/
1344  UBLOCK_MAHJONG_TILES = 170, /*[1F000]*/
1346  UBLOCK_DOMINO_TILES = 171, /*[1F030]*/
1347 
1348  /* New blocks in Unicode 5.2 */
1349 
1351  UBLOCK_SAMARITAN = 172, /*[0800]*/
1355  UBLOCK_TAI_THAM = 174, /*[1A20]*/
1357  UBLOCK_VEDIC_EXTENSIONS = 175, /*[1CD0]*/
1359  UBLOCK_LISU = 176, /*[A4D0]*/
1361  UBLOCK_BAMUM = 177, /*[A6A0]*/
1365  UBLOCK_DEVANAGARI_EXTENDED = 179, /*[A8E0]*/
1369  UBLOCK_JAVANESE = 181, /*[A980]*/
1371  UBLOCK_MYANMAR_EXTENDED_A = 182, /*[AA60]*/
1373  UBLOCK_TAI_VIET = 183, /*[AA80]*/
1375  UBLOCK_MEETEI_MAYEK = 184, /*[ABC0]*/
1379  UBLOCK_IMPERIAL_ARAMAIC = 186, /*[10840]*/
1381  UBLOCK_OLD_SOUTH_ARABIAN = 187, /*[10A60]*/
1383  UBLOCK_AVESTAN = 188, /*[10B00]*/
1387  UBLOCK_INSCRIPTIONAL_PAHLAVI = 190, /*[10B60]*/
1389  UBLOCK_OLD_TURKIC = 191, /*[10C00]*/
1391  UBLOCK_RUMI_NUMERAL_SYMBOLS = 192, /*[10E60]*/
1393  UBLOCK_KAITHI = 193, /*[11080]*/
1395  UBLOCK_EGYPTIAN_HIEROGLYPHS = 194, /*[13000]*/
1402 
1403  /* New blocks in Unicode 6.0 */
1404 
1406  UBLOCK_MANDAIC = 198, /*[0840]*/
1408  UBLOCK_BATAK = 199, /*[1BC0]*/
1410  UBLOCK_ETHIOPIC_EXTENDED_A = 200, /*[AB00]*/
1412  UBLOCK_BRAHMI = 201, /*[11000]*/
1414  UBLOCK_BAMUM_SUPPLEMENT = 202, /*[16800]*/
1416  UBLOCK_KANA_SUPPLEMENT = 203, /*[1B000]*/
1418  UBLOCK_PLAYING_CARDS = 204, /*[1F0A0]*/
1422  UBLOCK_EMOTICONS = 206, /*[1F600]*/
1426  UBLOCK_ALCHEMICAL_SYMBOLS = 208, /*[1F700]*/
1429 
1430  /* New blocks in Unicode 6.1 */
1431 
1433  UBLOCK_ARABIC_EXTENDED_A = 210, /*[08A0]*/
1437  UBLOCK_CHAKMA = 212, /*[11100]*/
1441  UBLOCK_MEROITIC_CURSIVE = 214, /*[109A0]*/
1443  UBLOCK_MEROITIC_HIEROGLYPHS = 215, /*[10980]*/
1445  UBLOCK_MIAO = 216, /*[16F00]*/
1447  UBLOCK_SHARADA = 217, /*[11180]*/
1449  UBLOCK_SORA_SOMPENG = 218, /*[110D0]*/
1453  UBLOCK_TAKRI = 220, /*[11680]*/
1454 
1455  /* New blocks in Unicode 7.0 */
1456 
1458  UBLOCK_BASSA_VAH = 221, /*[16AD0]*/
1460  UBLOCK_CAUCASIAN_ALBANIAN = 222, /*[10530]*/
1462  UBLOCK_COPTIC_EPACT_NUMBERS = 223, /*[102E0]*/
1466  UBLOCK_DUPLOYAN = 225, /*[1BC00]*/
1468  UBLOCK_ELBASAN = 226, /*[10500]*/
1472  UBLOCK_GRANTHA = 228, /*[11300]*/
1474  UBLOCK_KHOJKI = 229, /*[11200]*/
1476  UBLOCK_KHUDAWADI = 230, /*[112B0]*/
1478  UBLOCK_LATIN_EXTENDED_E = 231, /*[AB30]*/
1480  UBLOCK_LINEAR_A = 232, /*[10600]*/
1482  UBLOCK_MAHAJANI = 233, /*[11150]*/
1484  UBLOCK_MANICHAEAN = 234, /*[10AC0]*/
1486  UBLOCK_MENDE_KIKAKUI = 235, /*[1E800]*/
1488  UBLOCK_MODI = 236, /*[11600]*/
1490  UBLOCK_MRO = 237, /*[16A40]*/
1492  UBLOCK_MYANMAR_EXTENDED_B = 238, /*[A9E0]*/
1494  UBLOCK_NABATAEAN = 239, /*[10880]*/
1496  UBLOCK_OLD_NORTH_ARABIAN = 240, /*[10A80]*/
1498  UBLOCK_OLD_PERMIC = 241, /*[10350]*/
1500  UBLOCK_ORNAMENTAL_DINGBATS = 242, /*[1F650]*/
1502  UBLOCK_PAHAWH_HMONG = 243, /*[16B00]*/
1504  UBLOCK_PALMYRENE = 244, /*[10860]*/
1506  UBLOCK_PAU_CIN_HAU = 245, /*[11AC0]*/
1508  UBLOCK_PSALTER_PAHLAVI = 246, /*[10B80]*/
1512  UBLOCK_SIDDHAM = 248, /*[11580]*/
1516  UBLOCK_SUPPLEMENTAL_ARROWS_C = 250, /*[1F800]*/
1518  UBLOCK_TIRHUTA = 251, /*[11480]*/
1520  UBLOCK_WARANG_CITI = 252, /*[118A0]*/
1521 
1522  /* New blocks in Unicode 8.0 */
1523 
1525  UBLOCK_AHOM = 253, /*[11700]*/
1527  UBLOCK_ANATOLIAN_HIEROGLYPHS = 254, /*[14400]*/
1529  UBLOCK_CHEROKEE_SUPPLEMENT = 255, /*[AB70]*/
1535  UBLOCK_HATRAN = 258, /*[108E0]*/
1537  UBLOCK_MULTANI = 259, /*[11280]*/
1539  UBLOCK_OLD_HUNGARIAN = 260, /*[10C80]*/
1543  UBLOCK_SUTTON_SIGNWRITING = 262, /*[1D800]*/
1544 
1547 
1550 };
1551 
1553 typedef enum UBlockCode UBlockCode;
1554 
1562 typedef enum UEastAsianWidth {
1563  /*
1564  * Note: UEastAsianWidth constants are parsed by preparseucd.py.
1565  * It matches lines like
1566  * U_EA_<Unicode East_Asian_Width value name>
1567  */
1568 
1569  U_EA_NEUTRAL, /*[N]*/
1570  U_EA_AMBIGUOUS, /*[A]*/
1571  U_EA_HALFWIDTH, /*[H]*/
1572  U_EA_FULLWIDTH, /*[F]*/
1573  U_EA_NARROW, /*[Na]*/
1574  U_EA_WIDE, /*[W]*/
1575  U_EA_COUNT
1576 } UEastAsianWidth;
1577 
1589 typedef enum UCharNameChoice {
1592 #ifndef U_HIDE_DEPRECATED_API
1593 
1599 #endif /* U_HIDE_DEPRECATED_API */
1600 
1606 } UCharNameChoice;
1607 
1621 typedef enum UPropertyNameChoice {
1622  U_SHORT_PROPERTY_NAME,
1623  U_LONG_PROPERTY_NAME,
1624  U_PROPERTY_NAME_CHOICE_COUNT
1626 
1633 typedef enum UDecompositionType {
1634  /*
1635  * Note: UDecompositionType constants are parsed by preparseucd.py.
1636  * It matches lines like
1637  * U_DT_<Unicode Decomposition_Type value name>
1638  */
1639 
1640  U_DT_NONE, /*[none]*/
1641  U_DT_CANONICAL, /*[can]*/
1642  U_DT_COMPAT, /*[com]*/
1643  U_DT_CIRCLE, /*[enc]*/
1644  U_DT_FINAL, /*[fin]*/
1645  U_DT_FONT, /*[font]*/
1646  U_DT_FRACTION, /*[fra]*/
1647  U_DT_INITIAL, /*[init]*/
1648  U_DT_ISOLATED, /*[iso]*/
1649  U_DT_MEDIAL, /*[med]*/
1650  U_DT_NARROW, /*[nar]*/
1651  U_DT_NOBREAK, /*[nb]*/
1652  U_DT_SMALL, /*[sml]*/
1653  U_DT_SQUARE, /*[sqr]*/
1654  U_DT_SUB, /*[sub]*/
1655  U_DT_SUPER, /*[sup]*/
1656  U_DT_VERTICAL, /*[vert]*/
1657  U_DT_WIDE, /*[wide]*/
1658  U_DT_COUNT /* 18 */
1660 
1667 typedef enum UJoiningType {
1668  /*
1669  * Note: UJoiningType constants are parsed by preparseucd.py.
1670  * It matches lines like
1671  * U_JT_<Unicode Joining_Type value name>
1672  */
1673 
1674  U_JT_NON_JOINING, /*[U]*/
1675  U_JT_JOIN_CAUSING, /*[C]*/
1676  U_JT_DUAL_JOINING, /*[D]*/
1677  U_JT_LEFT_JOINING, /*[L]*/
1678  U_JT_RIGHT_JOINING, /*[R]*/
1679  U_JT_TRANSPARENT, /*[T]*/
1680  U_JT_COUNT /* 6 */
1681 } UJoiningType;
1682 
1689 typedef enum UJoiningGroup {
1690  /*
1691  * Note: UJoiningGroup constants are parsed by preparseucd.py.
1692  * It matches lines like
1693  * U_JG_<Unicode Joining_Group value name>
1694  */
1695 
1696  U_JG_NO_JOINING_GROUP,
1697  U_JG_AIN,
1698  U_JG_ALAPH,
1699  U_JG_ALEF,
1700  U_JG_BEH,
1701  U_JG_BETH,
1702  U_JG_DAL,
1703  U_JG_DALATH_RISH,
1704  U_JG_E,
1705  U_JG_FEH,
1706  U_JG_FINAL_SEMKATH,
1707  U_JG_GAF,
1708  U_JG_GAMAL,
1709  U_JG_HAH,
1711  U_JG_HAMZA_ON_HEH_GOAL=U_JG_TEH_MARBUTA_GOAL,
1712  U_JG_HE,
1713  U_JG_HEH,
1714  U_JG_HEH_GOAL,
1715  U_JG_HETH,
1716  U_JG_KAF,
1717  U_JG_KAPH,
1718  U_JG_KNOTTED_HEH,
1719  U_JG_LAM,
1720  U_JG_LAMADH,
1721  U_JG_MEEM,
1722  U_JG_MIM,
1723  U_JG_NOON,
1724  U_JG_NUN,
1725  U_JG_PE,
1726  U_JG_QAF,
1727  U_JG_QAPH,
1728  U_JG_REH,
1729  U_JG_REVERSED_PE,
1730  U_JG_SAD,
1731  U_JG_SADHE,
1732  U_JG_SEEN,
1733  U_JG_SEMKATH,
1734  U_JG_SHIN,
1735  U_JG_SWASH_KAF,
1736  U_JG_SYRIAC_WAW,
1737  U_JG_TAH,
1738  U_JG_TAW,
1739  U_JG_TEH_MARBUTA,
1740  U_JG_TETH,
1741  U_JG_WAW,
1742  U_JG_YEH,
1743  U_JG_YEH_BARREE,
1744  U_JG_YEH_WITH_TAIL,
1745  U_JG_YUDH,
1746  U_JG_YUDH_HE,
1747  U_JG_ZAIN,
1783  U_JG_COUNT
1784 } UJoiningGroup;
1785 
1793  /*
1794  * Note: UGraphemeClusterBreak constants are parsed by preparseucd.py.
1795  * It matches lines like
1796  * U_GCB_<Unicode Grapheme_Cluster_Break value name>
1797  */
1798 
1799  U_GCB_OTHER = 0, /*[XX]*/
1800  U_GCB_CONTROL = 1, /*[CN]*/
1801  U_GCB_CR = 2, /*[CR]*/
1802  U_GCB_EXTEND = 3, /*[EX]*/
1803  U_GCB_L = 4, /*[L]*/
1804  U_GCB_LF = 5, /*[LF]*/
1805  U_GCB_LV = 6, /*[LV]*/
1806  U_GCB_LVT = 7, /*[LVT]*/
1807  U_GCB_T = 8, /*[T]*/
1808  U_GCB_V = 9, /*[V]*/
1809  U_GCB_SPACING_MARK = 10, /*[SM]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
1810  U_GCB_PREPEND = 11, /*[PP]*/
1811  U_GCB_REGIONAL_INDICATOR = 12, /*[RI]*/ /* new in Unicode 6.2/ICU 50 */
1812  U_GCB_COUNT = 13
1814 
1822 typedef enum UWordBreakValues {
1823  /*
1824  * Note: UWordBreakValues constants are parsed by preparseucd.py.
1825  * It matches lines like
1826  * U_WB_<Unicode Word_Break value name>
1827  */
1828 
1829  U_WB_OTHER = 0, /*[XX]*/
1830  U_WB_ALETTER = 1, /*[LE]*/
1831  U_WB_FORMAT = 2, /*[FO]*/
1832  U_WB_KATAKANA = 3, /*[KA]*/
1833  U_WB_MIDLETTER = 4, /*[ML]*/
1834  U_WB_MIDNUM = 5, /*[MN]*/
1835  U_WB_NUMERIC = 6, /*[NU]*/
1836  U_WB_EXTENDNUMLET = 7, /*[EX]*/
1837  U_WB_CR = 8, /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
1838  U_WB_EXTEND = 9, /*[Extend]*/
1839  U_WB_LF = 10, /*[LF]*/
1840  U_WB_MIDNUMLET =11, /*[MB]*/
1841  U_WB_NEWLINE =12, /*[NL]*/
1842  U_WB_REGIONAL_INDICATOR = 13, /*[RI]*/ /* new in Unicode 6.2/ICU 50 */
1843  U_WB_HEBREW_LETTER = 14, /*[HL]*/ /* from here on: new in Unicode 6.3/ICU 52 */
1844  U_WB_SINGLE_QUOTE = 15, /*[SQ]*/
1845  U_WB_DOUBLE_QUOTE = 16, /*[DQ]*/
1846  U_WB_COUNT = 17
1848 
1855 typedef enum USentenceBreak {
1856  /*
1857  * Note: USentenceBreak constants are parsed by preparseucd.py.
1858  * It matches lines like
1859  * U_SB_<Unicode Sentence_Break value name>
1860  */
1861 
1862  U_SB_OTHER = 0, /*[XX]*/
1863  U_SB_ATERM = 1, /*[AT]*/
1864  U_SB_CLOSE = 2, /*[CL]*/
1865  U_SB_FORMAT = 3, /*[FO]*/
1866  U_SB_LOWER = 4, /*[LO]*/
1867  U_SB_NUMERIC = 5, /*[NU]*/
1868  U_SB_OLETTER = 6, /*[LE]*/
1869  U_SB_SEP = 7, /*[SE]*/
1870  U_SB_SP = 8, /*[SP]*/
1871  U_SB_STERM = 9, /*[ST]*/
1872  U_SB_UPPER = 10, /*[UP]*/
1873  U_SB_CR = 11, /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
1874  U_SB_EXTEND = 12, /*[EX]*/
1875  U_SB_LF = 13, /*[LF]*/
1876  U_SB_SCONTINUE = 14, /*[SC]*/
1877  U_SB_COUNT = 15
1878 } USentenceBreak;
1879 
1886 typedef enum ULineBreak {
1887  /*
1888  * Note: ULineBreak constants are parsed by preparseucd.py.
1889  * It matches lines like
1890  * U_LB_<Unicode Line_Break value name>
1891  */
1892 
1893  U_LB_UNKNOWN = 0, /*[XX]*/
1894  U_LB_AMBIGUOUS = 1, /*[AI]*/
1895  U_LB_ALPHABETIC = 2, /*[AL]*/
1896  U_LB_BREAK_BOTH = 3, /*[B2]*/
1897  U_LB_BREAK_AFTER = 4, /*[BA]*/
1898  U_LB_BREAK_BEFORE = 5, /*[BB]*/
1899  U_LB_MANDATORY_BREAK = 6, /*[BK]*/
1900  U_LB_CONTINGENT_BREAK = 7, /*[CB]*/
1901  U_LB_CLOSE_PUNCTUATION = 8, /*[CL]*/
1902  U_LB_COMBINING_MARK = 9, /*[CM]*/
1903  U_LB_CARRIAGE_RETURN = 10, /*[CR]*/
1904  U_LB_EXCLAMATION = 11, /*[EX]*/
1905  U_LB_GLUE = 12, /*[GL]*/
1906  U_LB_HYPHEN = 13, /*[HY]*/
1907  U_LB_IDEOGRAPHIC = 14, /*[ID]*/
1909  U_LB_INSEPARABLE = 15, /*[IN]*/
1910  U_LB_INSEPERABLE = U_LB_INSEPARABLE,
1911  U_LB_INFIX_NUMERIC = 16, /*[IS]*/
1912  U_LB_LINE_FEED = 17, /*[LF]*/
1913  U_LB_NONSTARTER = 18, /*[NS]*/
1914  U_LB_NUMERIC = 19, /*[NU]*/
1915  U_LB_OPEN_PUNCTUATION = 20, /*[OP]*/
1916  U_LB_POSTFIX_NUMERIC = 21, /*[PO]*/
1917  U_LB_PREFIX_NUMERIC = 22, /*[PR]*/
1918  U_LB_QUOTATION = 23, /*[QU]*/
1919  U_LB_COMPLEX_CONTEXT = 24, /*[SA]*/
1920  U_LB_SURROGATE = 25, /*[SG]*/
1921  U_LB_SPACE = 26, /*[SP]*/
1922  U_LB_BREAK_SYMBOLS = 27, /*[SY]*/
1923  U_LB_ZWSPACE = 28, /*[ZW]*/
1924  U_LB_NEXT_LINE = 29, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */
1925  U_LB_WORD_JOINER = 30, /*[WJ]*/
1926  U_LB_H2 = 31, /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */
1927  U_LB_H3 = 32, /*[H3]*/
1928  U_LB_JL = 33, /*[JL]*/
1929  U_LB_JT = 34, /*[JT]*/
1930  U_LB_JV = 35, /*[JV]*/
1931  U_LB_CLOSE_PARENTHESIS = 36, /*[CP]*/ /* new in Unicode 5.2/ICU 4.4 */
1932  U_LB_CONDITIONAL_JAPANESE_STARTER = 37,/*[CJ]*/ /* new in Unicode 6.1/ICU 49 */
1933  U_LB_HEBREW_LETTER = 38, /*[HL]*/ /* new in Unicode 6.1/ICU 49 */
1934  U_LB_REGIONAL_INDICATOR = 39,/*[RI]*/ /* new in Unicode 6.2/ICU 50 */
1935  U_LB_COUNT = 40
1936 } ULineBreak;
1937 
1944 typedef enum UNumericType {
1945  /*
1946  * Note: UNumericType constants are parsed by preparseucd.py.
1947  * It matches lines like
1948  * U_NT_<Unicode Numeric_Type value name>
1949  */
1950 
1951  U_NT_NONE, /*[None]*/
1952  U_NT_DECIMAL, /*[de]*/
1953  U_NT_DIGIT, /*[di]*/
1954  U_NT_NUMERIC, /*[nu]*/
1955  U_NT_COUNT
1956 } UNumericType;
1957 
1964 typedef enum UHangulSyllableType {
1965  /*
1966  * Note: UHangulSyllableType constants are parsed by preparseucd.py.
1967  * It matches lines like
1968  * U_HST_<Unicode Hangul_Syllable_Type value name>
1969  */
1970 
1971  U_HST_NOT_APPLICABLE, /*[NA]*/
1972  U_HST_LEADING_JAMO, /*[L]*/
1973  U_HST_VOWEL_JAMO, /*[V]*/
1974  U_HST_TRAILING_JAMO, /*[T]*/
1975  U_HST_LV_SYLLABLE, /*[LV]*/
1976  U_HST_LVT_SYLLABLE, /*[LVT]*/
1977  U_HST_COUNT
1979 
2006 U_STABLE UBool U_EXPORT2
2008 
2021 U_STABLE UBool U_EXPORT2
2023 
2036 U_STABLE UBool U_EXPORT2
2038 
2051 U_STABLE UBool U_EXPORT2
2053 
2072 U_STABLE UBool U_EXPORT2
2074 
2112 U_STABLE int32_t U_EXPORT2
2114 
2133 U_STABLE int32_t U_EXPORT2
2135 
2162 U_STABLE int32_t U_EXPORT2
2164 
2187 U_STABLE double U_EXPORT2
2189 
2197 #define U_NO_NUMERIC_VALUE ((double)-123456789.)
2198 
2222 U_STABLE UBool U_EXPORT2
2223 u_islower(UChar32 c);
2224 
2249 U_STABLE UBool U_EXPORT2
2250 u_isupper(UChar32 c);
2251 
2266 U_STABLE UBool U_EXPORT2
2267 u_istitle(UChar32 c);
2268 
2287 U_STABLE UBool U_EXPORT2
2288 u_isdigit(UChar32 c);
2289 
2308 U_STABLE UBool U_EXPORT2
2309 u_isalpha(UChar32 c);
2310 
2329 U_STABLE UBool U_EXPORT2
2330 u_isalnum(UChar32 c);
2331 
2352 U_STABLE UBool U_EXPORT2
2353 u_isxdigit(UChar32 c);
2354 
2368 U_STABLE UBool U_EXPORT2
2369 u_ispunct(UChar32 c);
2370 
2387 U_STABLE UBool U_EXPORT2
2388 u_isgraph(UChar32 c);
2389 
2416 U_STABLE UBool U_EXPORT2
2417 u_isblank(UChar32 c);
2418 
2441 U_STABLE UBool U_EXPORT2
2442 u_isdefined(UChar32 c);
2443 
2462 U_STABLE UBool U_EXPORT2
2463 u_isspace(UChar32 c);
2464 
2483 U_STABLE UBool U_EXPORT2
2485 
2523 U_STABLE UBool U_EXPORT2
2525 
2547 U_STABLE UBool U_EXPORT2
2548 u_iscntrl(UChar32 c);
2549 
2562 U_STABLE UBool U_EXPORT2
2564 
2580 U_STABLE UBool U_EXPORT2
2581 u_isprint(UChar32 c);
2582 
2601 U_STABLE UBool U_EXPORT2
2602 u_isbase(UChar32 c);
2603 
2620 U_STABLE UCharDirection U_EXPORT2
2622 
2638 U_STABLE UBool U_EXPORT2
2640 
2660 U_STABLE UChar32 U_EXPORT2
2662 
2679 U_STABLE UChar32 U_EXPORT2
2681 
2693 U_STABLE int8_t U_EXPORT2
2694 u_charType(UChar32 c);
2695 
2709 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
2710 
2728 typedef UBool U_CALLCONV
2729 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
2730 
2750 U_STABLE void U_EXPORT2
2751 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
2752 
2753 #if !UCONFIG_NO_NORMALIZATION
2754 
2762 U_STABLE uint8_t U_EXPORT2
2764 
2765 #endif
2766 
2790 U_STABLE int32_t U_EXPORT2
2792 
2802 U_STABLE UBlockCode U_EXPORT2
2804 
2837 U_STABLE int32_t U_EXPORT2
2838 u_charName(UChar32 code, UCharNameChoice nameChoice,
2839  char *buffer, int32_t bufferLength,
2840  UErrorCode *pErrorCode);
2841 
2842 #ifndef U_HIDE_DEPRECATED_API
2843 
2861 U_DEPRECATED int32_t U_EXPORT2
2863  char *dest, int32_t destCapacity,
2864  UErrorCode *pErrorCode);
2865 #endif /* U_HIDE_DEPRECATED_API */
2866 
2887 U_STABLE UChar32 U_EXPORT2
2888 u_charFromName(UCharNameChoice nameChoice,
2889  const char *name,
2890  UErrorCode *pErrorCode);
2891 
2909 typedef UBool U_CALLCONV UEnumCharNamesFn(void *context,
2910  UChar32 code,
2911  UCharNameChoice nameChoice,
2912  const char *name,
2913  int32_t length);
2914 
2936 U_STABLE void U_EXPORT2
2937 u_enumCharNames(UChar32 start, UChar32 limit,
2938  UEnumCharNamesFn *fn,
2939  void *context,
2940  UCharNameChoice nameChoice,
2941  UErrorCode *pErrorCode);
2942 
2974 U_STABLE const char* U_EXPORT2
2975 u_getPropertyName(UProperty property,
2976  UPropertyNameChoice nameChoice);
2977 
2997 U_STABLE UProperty U_EXPORT2
2998 u_getPropertyEnum(const char* alias);
2999 
3047 U_STABLE const char* U_EXPORT2
3049  int32_t value,
3050  UPropertyNameChoice nameChoice);
3051 
3083 U_STABLE int32_t U_EXPORT2
3085  const char* alias);
3086 
3104 U_STABLE UBool U_EXPORT2
3105 u_isIDStart(UChar32 c);
3106 
3128 U_STABLE UBool U_EXPORT2
3129 u_isIDPart(UChar32 c);
3130 
3151 U_STABLE UBool U_EXPORT2
3153 
3170 U_STABLE UBool U_EXPORT2
3172 
3191 U_STABLE UBool U_EXPORT2
3193 
3216 U_STABLE UChar32 U_EXPORT2
3217 u_tolower(UChar32 c);
3218 
3241 U_STABLE UChar32 U_EXPORT2
3242 u_toupper(UChar32 c);
3243 
3266 U_STABLE UChar32 U_EXPORT2
3267 u_totitle(UChar32 c);
3268 
3270 #define U_FOLD_CASE_DEFAULT 0
3271 
3288 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
3289 
3312 U_STABLE UChar32 U_EXPORT2
3313 u_foldCase(UChar32 c, uint32_t options);
3314 
3353 U_STABLE int32_t U_EXPORT2
3354 u_digit(UChar32 ch, int8_t radix);
3355 
3384 U_STABLE UChar32 U_EXPORT2
3385 u_forDigit(int32_t digit, int8_t radix);
3386 
3401 U_STABLE void U_EXPORT2
3402 u_charAge(UChar32 c, UVersionInfo versionArray);
3403 
3415 U_STABLE void U_EXPORT2
3416 u_getUnicodeVersion(UVersionInfo versionArray);
3417 
3418 #if !UCONFIG_NO_NORMALIZATION
3419 
3440 U_STABLE int32_t U_EXPORT2
3441 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
3442 
3443 #endif
3444 
3445 
3447 
3448 #endif /*_UCHAR*/
3449 /*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:57
Binary property Ideographic.
Definition: uchar.h:237
Unicode 4.0.1 renames the "Cyrillic Supplementary" block to "Cyrillic Supplement".
Definition: uchar.h:1186
Binary property Changes_When_Lowercased.
Definition: uchar.h:389
Binary property IDS_Binary_Operator (new in Unicode 3.2).
Definition: uchar.h:241
Binary property Case_Ignorable.
Definition: uchar.h:387
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:450
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.
Miscellaneous property Script_Extensions (new in Unicode 6.0).
Definition: uchar.h:571
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:1128
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:407
UChar32 u_getBidiPairedBracket(UChar32 c)
Maps the specified character to its paired bracket character.
Binary property XID_Start.
Definition: uchar.h:294
Binary property Join_Control.
Definition: uchar.h:248
Binary property Logical_Order_Exception (new in Unicode 3.2).
Definition: uchar.h:252
Binary property White_Space.
Definition: uchar.h:287
String property Titlecase_Mapping.
Definition: uchar.h:549
One more than the last constant for enumerated/integer Unicode properties.
Definition: uchar.h:489
Enumerated property Numeric_Type.
Definition: uchar.h:435
Binary property xdigit (a C/POSIX character class).
Definition: uchar.h:383
UBlockCode ublock_getCode(UChar32 c)
Returns the Unicode allocation block that contains the character.
Binary property Alphabetic.
Definition: uchar.h:175
First constant for double Unicode properties.
Definition: uchar.h:509
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:2909
UBool u_isgraph(UChar32 c)
Determines whether the specified code point is a "graphic" character (printable, excluding spaces)...
Cn "Other, Not Assigned (no characters in [UnicodeData.txt] have this property)" (same as U_UNASSIGNE...
Definition: uchar.h:598
String property Simple_Case_Folding.
Definition: uchar.h:537
Binary property NFC_Inert.
Definition: uchar.h:330
Binary property graph (a C/POSIX character class).
Definition: uchar.h:373
String property Bidi_Mirroring_Glyph.
Definition: uchar.h:520
One more than the last constant for bit-mask Unicode properties.
Definition: uchar.h:503
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:410
Represents a nonexistent or invalid property or property value.
Definition: uchar.h:578
Renamed from the misspelled "inseperable" in Unicode 4.0.1/ICU 3.0.
Definition: uchar.h:1909
Binary property Radical (new in Unicode 3.2).
Definition: uchar.h:267
UCharDirection
This specifies the language directional property of a character set.
Definition: uchar.h:777
Binary property IDS_Trinary_Operator (new in Unicode 3.2).
Definition: uchar.h:245
Binary property Grapheme_Link (new in Unicode 3.2).
Definition: uchar.h:219
Enumerated property Decomposition_Type.
Definition: uchar.h:416
#define U_CALLCONV
Similar to U_CDECL_BEGIN/U_CDECL_END, this qualifier is necessary in callback function typedefs to ma...
Definition: platform.h:823
String property Case_Folding.
Definition: uchar.h:523
String property Name.
Definition: uchar.h:534
String property Simple_Uppercase_Mapping.
Definition: uchar.h:546
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:405
int32_t u_charDigitValue(UChar32 c)
Returns the decimal digit value of a decimal digit character.
Enumerated property General_Category.
Definition: uchar.h:423
Sm.
Definition: uchar.h:646
String property Unicode_1_Name.
Definition: uchar.h:555
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:1944
Binary property Pattern_White_Space (new in Unicode 4.1).
Definition: uchar.h:358
Close paired bracket.
Definition: uchar.h:853
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:2729
Binary property Changes_When_Casefolded.
Definition: uchar.h:395
Binary property NFD_Inert.
Definition: uchar.h:316
Binary property Diacritic.
Definition: uchar.h:200
Binary property Terminal_Punctuation.
Definition: uchar.h:276
UChar32 u_charFromName(UCharNameChoice nameChoice, const char *name, UErrorCode *pErrorCode)
Find a Unicode character by its name and return its code point value.
UBool u_isUAlphabetic(UChar32 c)
Check if a code point has the Alphabetic Unicode property.
Enumerated property NFD_Quick_Check.
Definition: uchar.h:444
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:82
Binary property STerm (new in Unicode 4.0.1).
Definition: uchar.h:303
Enumerated property Joining_Group.
Definition: uchar.h:426
Binary property ID_Continue.
Definition: uchar.h:230
Open paired bracket.
Definition: uchar.h:851
Binary property blank (a C/POSIX character class).
Definition: uchar.h:368
Binary property Quotation_Mark.
Definition: uchar.h:263
#define U_DEPRECATED
This is used to declare a function as a deprecated public ICU C API.
Definition: umachine.h:113
Binary property Changes_When_NFKC_Casefolded.
Definition: uchar.h:399
First constant for binary Unicode properties.
Definition: uchar.h:177
Binary property Noncharacter_Code_Point.
Definition: uchar.h:261
Binary property Hyphen.
Definition: uchar.h:225
Enumerated property East_Asian_Width.
Definition: uchar.h:420
ULineBreak
Line Break constants.
Definition: uchar.h:1886
Binary property Full_Composition_Exclusion.
Definition: uchar.h:208
Bitmask property General_Category_Mask.
Definition: uchar.h:499
String property Simple_Titlecase_Mapping.
Definition: uchar.h:543
Unicode 3.2 renames this block to "Combining Diacritical Marks for Symbols".
Definition: uchar.h:1005
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:1633
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.
UHangulSyllableType
Hangul Syllable Type constants.
Definition: uchar.h:1964
String property Simple_Lowercase_Mapping.
Definition: uchar.h:540
Binary property print (a C/POSIX character class).
Definition: uchar.h:378
Binary property Case_Sensitive.
Definition: uchar.h:298
Standard or synthetic character name.
Definition: uchar.h:1601
Binary property Bidi_Mirrored.
Definition: uchar.h:188
Binary property NFKC_Inert.
Definition: uchar.h:337
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:397
First constant for string Unicode properties.
Definition: uchar.h:517
Binary property Grapheme_Extend (new in Unicode 3.2).
Definition: uchar.h:216
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
Definition: umachine.h:332
UGraphemeClusterBreak
Grapheme Cluster Break constants.
Definition: uchar.h:1792
New No_Block value in Unicode 4.
Definition: uchar.h:870
Binary property Extender.
Definition: uchar.h:204
Double property Numeric_Value.
Definition: uchar.h:507
Binary property Math.
Definition: uchar.h:257
Unicode character name (Name property).
Definition: uchar.h:1591
Binary property Grapheme_Base (new in Unicode 3.2).
Definition: uchar.h:212
Binary property NFKD_Inert.
Definition: uchar.h:323
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:586
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:477
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:255
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:501
Enumerated property Bidi_Paired_Bracket_Type (new in Unicode 6.3).
Definition: uchar.h:487
UBool u_isspace(UChar32 c)
Determines if the specified character is a space character or not.
USentenceBreak
Sentence Break constants.
Definition: uchar.h:1855
Binary property Unified_Ideograph (new in Unicode 3.2).
Definition: uchar.h:280
Enumerated property Canonical_Combining_Class.
Definition: uchar.h:413
UCharNameChoice
Selector constants for u_charName().
Definition: uchar.h:1589
One more than the last constant for binary Unicode properties.
Definition: uchar.h:401
UBool u_isJavaIDPart(UChar32 c)
Determines if the specified character is permissible in a Java identifier.
Enumerated property Script.
Definition: uchar.h:438
Unicode 3.2 renames this block to "Greek and Coptic".
Definition: uchar.h:897
Binary property Hex_Digit.
Definition: uchar.h:222
String property Uppercase_Mapping.
Definition: uchar.h:559
UPropertyNameChoice
Selector constants for u_getPropertyName() and u_getPropertyValueName().
Definition: uchar.h:1621
String property Lowercase_Mapping.
Definition: uchar.h:531
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
Define UChar to be UCHAR_TYPE, if that is #defined (for example, to char16_t), or wchar_t if that is ...
Definition: umachine.h:312
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
Definition: umachine.h:83
Enumerated property NFKC_Quick_Check.
Definition: uchar.h:453
Not a paired bracket.
Definition: uchar.h:849
UProperty
Selection constants for Unicode properties.
Definition: uchar.h:161
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:441
Binary property Dash.
Definition: uchar.h:190
Binary property alnum (a C/POSIX character class).
Definition: uchar.h:363
Cf.
Definition: uchar.h:630
Binary property Variation_Selector (new in Unicode 4.0.1).
Definition: uchar.h:309
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:862
Enumerated property Word_Break (new in Unicode 4.1).
Definition: uchar.h:482
Binary property Deprecated (new in Unicode 3.2).
Definition: uchar.h:197
Binary property Bidi_Control.
Definition: uchar.h:183
Binary property XID_Continue.
Definition: uchar.h:291
Same as UBLOCK_PRIVATE_USE.
Definition: uchar.h:1118
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:476
Binary property Uppercase.
Definition: uchar.h:283
void u_getUnicodeVersion(UVersionInfo versionArray)
Gets the Unicode version information.
Binary property Changes_When_Uppercased.
Definition: uchar.h:391
UJoiningGroup
Joining Group constants.
Definition: uchar.h:1689
Binary property Cased.
Definition: uchar.h:385
Cs.
Definition: uchar.h:634
UEastAsianWidth
East Asian Width constants.
Definition: uchar.h:1562
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:467
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:596
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:573
UWordBreakValues
Word Break constants.
Definition: uchar.h:1822
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:429
One more than the last constant for double Unicode properties.
Definition: uchar.h:511
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:562
Enumerated property Lead_Canonical_Combining_Class.
Definition: uchar.h:460
Binary property ASCII_Hex_Digit.
Definition: uchar.h:179
UJoiningType
Joining Type constants.
Definition: uchar.h:1667
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:272
One more than the last constant for string Unicode properties.
Definition: uchar.h:564
Binary Property Segment_Starter.
Definition: uchar.h:348
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:234
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:1603
Binary property Changes_When_Titlecased.
Definition: uchar.h:393
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:432
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:472
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:527
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:194
The Unicode_1_Name property value which is of little practical value.
Definition: uchar.h:1598
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:658
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:353
One more than the last constant for Unicode properties with unusual value types.
Definition: uchar.h:576
UBidiPairedBracketType
Bidi Paired Bracket Type constants.
Definition: uchar.h:841
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:515
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Definition: umachine.h:109
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
Enumerated property NFKD_Quick_Check.
Definition: uchar.h:447