00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef UCHAR_H
00024 #define UCHAR_H
00025
00026 #include "unicode/utypes.h"
00027
00028 U_CDECL_BEGIN
00029
00030
00031
00032
00042 #define U_UNICODE_VERSION "6.2"
00043
00124 #define UCHAR_MIN_VALUE 0
00125
00134 #define UCHAR_MAX_VALUE 0x10ffff
00135
00140 #define U_MASK(x) ((uint32_t)1<<(x))
00141
00161 typedef enum UProperty {
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00175 UCHAR_ALPHABETIC=0,
00177 UCHAR_BINARY_START=UCHAR_ALPHABETIC,
00179 UCHAR_ASCII_HEX_DIGIT=1,
00183 UCHAR_BIDI_CONTROL=2,
00188 UCHAR_BIDI_MIRRORED=3,
00190 UCHAR_DASH=4,
00194 UCHAR_DEFAULT_IGNORABLE_CODE_POINT=5,
00197 UCHAR_DEPRECATED=6,
00200 UCHAR_DIACRITIC=7,
00204 UCHAR_EXTENDER=8,
00208 UCHAR_FULL_COMPOSITION_EXCLUSION=9,
00212 UCHAR_GRAPHEME_BASE=10,
00216 UCHAR_GRAPHEME_EXTEND=11,
00219 UCHAR_GRAPHEME_LINK=12,
00222 UCHAR_HEX_DIGIT=13,
00225 UCHAR_HYPHEN=14,
00230 UCHAR_ID_CONTINUE=15,
00234 UCHAR_ID_START=16,
00237 UCHAR_IDEOGRAPHIC=17,
00241 UCHAR_IDS_BINARY_OPERATOR=18,
00245 UCHAR_IDS_TRINARY_OPERATOR=19,
00248 UCHAR_JOIN_CONTROL=20,
00252 UCHAR_LOGICAL_ORDER_EXCEPTION=21,
00255 UCHAR_LOWERCASE=22,
00257 UCHAR_MATH=23,
00261 UCHAR_NONCHARACTER_CODE_POINT=24,
00263 UCHAR_QUOTATION_MARK=25,
00267 UCHAR_RADICAL=26,
00272 UCHAR_SOFT_DOTTED=27,
00276 UCHAR_TERMINAL_PUNCTUATION=28,
00280 UCHAR_UNIFIED_IDEOGRAPH=29,
00283 UCHAR_UPPERCASE=30,
00287 UCHAR_WHITE_SPACE=31,
00291 UCHAR_XID_CONTINUE=32,
00294 UCHAR_XID_START=33,
00298 UCHAR_CASE_SENSITIVE=34,
00303 UCHAR_S_TERM=35,
00309 UCHAR_VARIATION_SELECTOR=36,
00316 UCHAR_NFD_INERT=37,
00323 UCHAR_NFKD_INERT=38,
00330 UCHAR_NFC_INERT=39,
00337 UCHAR_NFKC_INERT=40,
00348 UCHAR_SEGMENT_STARTER=41,
00353 UCHAR_PATTERN_SYNTAX=42,
00358 UCHAR_PATTERN_WHITE_SPACE=43,
00363 UCHAR_POSIX_ALNUM=44,
00368 UCHAR_POSIX_BLANK=45,
00373 UCHAR_POSIX_GRAPH=46,
00378 UCHAR_POSIX_PRINT=47,
00383 UCHAR_POSIX_XDIGIT=48,
00385 UCHAR_CASED=49,
00387 UCHAR_CASE_IGNORABLE=50,
00389 UCHAR_CHANGES_WHEN_LOWERCASED=51,
00391 UCHAR_CHANGES_WHEN_UPPERCASED=52,
00393 UCHAR_CHANGES_WHEN_TITLECASED=53,
00395 UCHAR_CHANGES_WHEN_CASEFOLDED=54,
00397 UCHAR_CHANGES_WHEN_CASEMAPPED=55,
00399 UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED=56,
00401 UCHAR_BINARY_LIMIT=57,
00402
00405 UCHAR_BIDI_CLASS=0x1000,
00407 UCHAR_INT_START=UCHAR_BIDI_CLASS,
00410 UCHAR_BLOCK=0x1001,
00413 UCHAR_CANONICAL_COMBINING_CLASS=0x1002,
00416 UCHAR_DECOMPOSITION_TYPE=0x1003,
00420 UCHAR_EAST_ASIAN_WIDTH=0x1004,
00423 UCHAR_GENERAL_CATEGORY=0x1005,
00426 UCHAR_JOINING_GROUP=0x1006,
00429 UCHAR_JOINING_TYPE=0x1007,
00432 UCHAR_LINE_BREAK=0x1008,
00435 UCHAR_NUMERIC_TYPE=0x1009,
00438 UCHAR_SCRIPT=0x100A,
00441 UCHAR_HANGUL_SYLLABLE_TYPE=0x100B,
00444 UCHAR_NFD_QUICK_CHECK=0x100C,
00447 UCHAR_NFKD_QUICK_CHECK=0x100D,
00450 UCHAR_NFC_QUICK_CHECK=0x100E,
00453 UCHAR_NFKC_QUICK_CHECK=0x100F,
00460 UCHAR_LEAD_CANONICAL_COMBINING_CLASS=0x1010,
00467 UCHAR_TRAIL_CANONICAL_COMBINING_CLASS=0x1011,
00472 UCHAR_GRAPHEME_CLUSTER_BREAK=0x1012,
00477 UCHAR_SENTENCE_BREAK=0x1013,
00482 UCHAR_WORD_BREAK=0x1014,
00484 UCHAR_INT_LIMIT=0x1015,
00485
00494 UCHAR_GENERAL_CATEGORY_MASK=0x2000,
00496 UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK,
00498 UCHAR_MASK_LIMIT=0x2001,
00499
00502 UCHAR_NUMERIC_VALUE=0x3000,
00504 UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE,
00506 UCHAR_DOUBLE_LIMIT=0x3001,
00507
00510 UCHAR_AGE=0x4000,
00512 UCHAR_STRING_START=UCHAR_AGE,
00515 UCHAR_BIDI_MIRRORING_GLYPH=0x4001,
00518 UCHAR_CASE_FOLDING=0x4002,
00521 UCHAR_ISO_COMMENT=0x4003,
00524 UCHAR_LOWERCASE_MAPPING=0x4004,
00527 UCHAR_NAME=0x4005,
00530 UCHAR_SIMPLE_CASE_FOLDING=0x4006,
00533 UCHAR_SIMPLE_LOWERCASE_MAPPING=0x4007,
00536 UCHAR_SIMPLE_TITLECASE_MAPPING=0x4008,
00539 UCHAR_SIMPLE_UPPERCASE_MAPPING=0x4009,
00542 UCHAR_TITLECASE_MAPPING=0x400A,
00547 UCHAR_UNICODE_1_NAME=0x400B,
00550 UCHAR_UPPERCASE_MAPPING=0x400C,
00552 UCHAR_STRING_LIMIT=0x400D,
00560 UCHAR_SCRIPT_EXTENSIONS=0x7000,
00562 UCHAR_OTHER_PROPERTY_START=UCHAR_SCRIPT_EXTENSIONS,
00565 UCHAR_OTHER_PROPERTY_LIMIT=0x7001,
00567 UCHAR_INVALID_CODE = -1
00568 } UProperty;
00569
00575 typedef enum UCharCategory
00576 {
00577
00578
00579
00580
00581
00582
00583
00585 U_UNASSIGNED = 0,
00587 U_GENERAL_OTHER_TYPES = 0,
00589 U_UPPERCASE_LETTER = 1,
00591 U_LOWERCASE_LETTER = 2,
00593 U_TITLECASE_LETTER = 3,
00595 U_MODIFIER_LETTER = 4,
00597 U_OTHER_LETTER = 5,
00599 U_NON_SPACING_MARK = 6,
00601 U_ENCLOSING_MARK = 7,
00603 U_COMBINING_SPACING_MARK = 8,
00605 U_DECIMAL_DIGIT_NUMBER = 9,
00607 U_LETTER_NUMBER = 10,
00609 U_OTHER_NUMBER = 11,
00611 U_SPACE_SEPARATOR = 12,
00613 U_LINE_SEPARATOR = 13,
00615 U_PARAGRAPH_SEPARATOR = 14,
00617 U_CONTROL_CHAR = 15,
00619 U_FORMAT_CHAR = 16,
00621 U_PRIVATE_USE_CHAR = 17,
00623 U_SURROGATE = 18,
00625 U_DASH_PUNCTUATION = 19,
00627 U_START_PUNCTUATION = 20,
00629 U_END_PUNCTUATION = 21,
00631 U_CONNECTOR_PUNCTUATION = 22,
00633 U_OTHER_PUNCTUATION = 23,
00635 U_MATH_SYMBOL = 24,
00637 U_CURRENCY_SYMBOL = 25,
00639 U_MODIFIER_SYMBOL = 26,
00641 U_OTHER_SYMBOL = 27,
00643 U_INITIAL_PUNCTUATION = 28,
00645 U_FINAL_PUNCTUATION = 29,
00647 U_CHAR_CATEGORY_COUNT
00648 } UCharCategory;
00649
00664 #define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES)
00665
00667 #define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER)
00668
00669 #define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER)
00670
00671 #define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER)
00672
00673 #define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER)
00674
00675 #define U_GC_LO_MASK U_MASK(U_OTHER_LETTER)
00676
00678 #define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK)
00679
00680 #define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK)
00681
00682 #define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK)
00683
00685 #define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER)
00686
00687 #define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER)
00688
00689 #define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER)
00690
00692 #define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR)
00693
00694 #define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR)
00695
00696 #define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR)
00697
00699 #define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR)
00700
00701 #define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR)
00702
00703 #define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR)
00704
00705 #define U_GC_CS_MASK U_MASK(U_SURROGATE)
00706
00708 #define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION)
00709
00710 #define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION)
00711
00712 #define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION)
00713
00714 #define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION)
00715
00716 #define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION)
00717
00719 #define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL)
00720
00721 #define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL)
00722
00723 #define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL)
00724
00725 #define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL)
00726
00728 #define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION)
00729
00730 #define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION)
00731
00732
00734 #define U_GC_L_MASK \
00735 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
00736
00738 #define U_GC_LC_MASK \
00739 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
00740
00742 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
00743
00745 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
00746
00748 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
00749
00751 #define U_GC_C_MASK \
00752 (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
00753
00755 #define U_GC_P_MASK \
00756 (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
00757 U_GC_PI_MASK|U_GC_PF_MASK)
00758
00760 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
00761
00766 typedef enum UCharDirection {
00767
00768
00769
00770
00771
00772
00773
00775 U_LEFT_TO_RIGHT = 0,
00777 U_RIGHT_TO_LEFT = 1,
00779 U_EUROPEAN_NUMBER = 2,
00781 U_EUROPEAN_NUMBER_SEPARATOR = 3,
00783 U_EUROPEAN_NUMBER_TERMINATOR = 4,
00785 U_ARABIC_NUMBER = 5,
00787 U_COMMON_NUMBER_SEPARATOR = 6,
00789 U_BLOCK_SEPARATOR = 7,
00791 U_SEGMENT_SEPARATOR = 8,
00793 U_WHITE_SPACE_NEUTRAL = 9,
00795 U_OTHER_NEUTRAL = 10,
00797 U_LEFT_TO_RIGHT_EMBEDDING = 11,
00799 U_LEFT_TO_RIGHT_OVERRIDE = 12,
00801 U_RIGHT_TO_LEFT_ARABIC = 13,
00803 U_RIGHT_TO_LEFT_EMBEDDING = 14,
00805 U_RIGHT_TO_LEFT_OVERRIDE = 15,
00807 U_POP_DIRECTIONAL_FORMAT = 16,
00809 U_DIR_NON_SPACING_MARK = 17,
00811 U_BOUNDARY_NEUTRAL = 18,
00813 U_CHAR_DIRECTION_COUNT
00814 } UCharDirection;
00815
00820 enum UBlockCode {
00821
00822
00823
00824
00825
00826
00828 UBLOCK_NO_BLOCK = 0,
00829
00831 UBLOCK_BASIC_LATIN = 1,
00832
00834 UBLOCK_LATIN_1_SUPPLEMENT=2,
00835
00837 UBLOCK_LATIN_EXTENDED_A =3,
00838
00840 UBLOCK_LATIN_EXTENDED_B =4,
00841
00843 UBLOCK_IPA_EXTENSIONS =5,
00844
00846 UBLOCK_SPACING_MODIFIER_LETTERS =6,
00847
00849 UBLOCK_COMBINING_DIACRITICAL_MARKS =7,
00850
00855 UBLOCK_GREEK =8,
00856
00858 UBLOCK_CYRILLIC =9,
00859
00861 UBLOCK_ARMENIAN =10,
00862
00864 UBLOCK_HEBREW =11,
00865
00867 UBLOCK_ARABIC =12,
00868
00870 UBLOCK_SYRIAC =13,
00871
00873 UBLOCK_THAANA =14,
00874
00876 UBLOCK_DEVANAGARI =15,
00877
00879 UBLOCK_BENGALI =16,
00880
00882 UBLOCK_GURMUKHI =17,
00883
00885 UBLOCK_GUJARATI =18,
00886
00888 UBLOCK_ORIYA =19,
00889
00891 UBLOCK_TAMIL =20,
00892
00894 UBLOCK_TELUGU =21,
00895
00897 UBLOCK_KANNADA =22,
00898
00900 UBLOCK_MALAYALAM =23,
00901
00903 UBLOCK_SINHALA =24,
00904
00906 UBLOCK_THAI =25,
00907
00909 UBLOCK_LAO =26,
00910
00912 UBLOCK_TIBETAN =27,
00913
00915 UBLOCK_MYANMAR =28,
00916
00918 UBLOCK_GEORGIAN =29,
00919
00921 UBLOCK_HANGUL_JAMO =30,
00922
00924 UBLOCK_ETHIOPIC =31,
00925
00927 UBLOCK_CHEROKEE =32,
00928
00930 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33,
00931
00933 UBLOCK_OGHAM =34,
00934
00936 UBLOCK_RUNIC =35,
00937
00939 UBLOCK_KHMER =36,
00940
00942 UBLOCK_MONGOLIAN =37,
00943
00945 UBLOCK_LATIN_EXTENDED_ADDITIONAL =38,
00946
00948 UBLOCK_GREEK_EXTENDED =39,
00949
00951 UBLOCK_GENERAL_PUNCTUATION =40,
00952
00954 UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41,
00955
00957 UBLOCK_CURRENCY_SYMBOLS =42,
00958
00963 UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43,
00964
00966 UBLOCK_LETTERLIKE_SYMBOLS =44,
00967
00969 UBLOCK_NUMBER_FORMS =45,
00970
00972 UBLOCK_ARROWS =46,
00973
00975 UBLOCK_MATHEMATICAL_OPERATORS =47,
00976
00978 UBLOCK_MISCELLANEOUS_TECHNICAL =48,
00979
00981 UBLOCK_CONTROL_PICTURES =49,
00982
00984 UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50,
00985
00987 UBLOCK_ENCLOSED_ALPHANUMERICS =51,
00988
00990 UBLOCK_BOX_DRAWING =52,
00991
00993 UBLOCK_BLOCK_ELEMENTS =53,
00994
00996 UBLOCK_GEOMETRIC_SHAPES =54,
00997
00999 UBLOCK_MISCELLANEOUS_SYMBOLS =55,
01000
01002 UBLOCK_DINGBATS =56,
01003
01005 UBLOCK_BRAILLE_PATTERNS =57,
01006
01008 UBLOCK_CJK_RADICALS_SUPPLEMENT =58,
01009
01011 UBLOCK_KANGXI_RADICALS =59,
01012
01014 UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60,
01015
01017 UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61,
01018
01020 UBLOCK_HIRAGANA =62,
01021
01023 UBLOCK_KATAKANA =63,
01024
01026 UBLOCK_BOPOMOFO =64,
01027
01029 UBLOCK_HANGUL_COMPATIBILITY_JAMO =65,
01030
01032 UBLOCK_KANBUN =66,
01033
01035 UBLOCK_BOPOMOFO_EXTENDED =67,
01036
01038 UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68,
01039
01041 UBLOCK_CJK_COMPATIBILITY =69,
01042
01044 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70,
01045
01047 UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71,
01048
01050 UBLOCK_YI_SYLLABLES =72,
01051
01053 UBLOCK_YI_RADICALS =73,
01054
01056 UBLOCK_HANGUL_SYLLABLES =74,
01057
01059 UBLOCK_HIGH_SURROGATES =75,
01060
01062 UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76,
01063
01065 UBLOCK_LOW_SURROGATES =77,
01066
01076 UBLOCK_PRIVATE_USE_AREA =78,
01086 UBLOCK_PRIVATE_USE = UBLOCK_PRIVATE_USE_AREA,
01087
01089 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79,
01090
01092 UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80,
01093
01095 UBLOCK_ARABIC_PRESENTATION_FORMS_A =81,
01096
01098 UBLOCK_COMBINING_HALF_MARKS =82,
01099
01101 UBLOCK_CJK_COMPATIBILITY_FORMS =83,
01102
01104 UBLOCK_SMALL_FORM_VARIANTS =84,
01105
01107 UBLOCK_ARABIC_PRESENTATION_FORMS_B =85,
01108
01110 UBLOCK_SPECIALS =86,
01111
01113 UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87,
01114
01115
01116
01118 UBLOCK_OLD_ITALIC = 88,
01120 UBLOCK_GOTHIC = 89,
01122 UBLOCK_DESERET = 90,
01124 UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91,
01126 UBLOCK_MUSICAL_SYMBOLS = 92,
01128 UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93,
01130 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94,
01132 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95,
01134 UBLOCK_TAGS = 96,
01135
01136
01137
01139 UBLOCK_CYRILLIC_SUPPLEMENT = 97,
01144 UBLOCK_CYRILLIC_SUPPLEMENTARY = UBLOCK_CYRILLIC_SUPPLEMENT,
01146 UBLOCK_TAGALOG = 98,
01148 UBLOCK_HANUNOO = 99,
01150 UBLOCK_BUHID = 100,
01152 UBLOCK_TAGBANWA = 101,
01154 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102,
01156 UBLOCK_SUPPLEMENTAL_ARROWS_A = 103,
01158 UBLOCK_SUPPLEMENTAL_ARROWS_B = 104,
01160 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105,
01162 UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106,
01164 UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107,
01166 UBLOCK_VARIATION_SELECTORS = 108,
01168 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109,
01170 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110,
01171
01172
01173
01175 UBLOCK_LIMBU = 111,
01177 UBLOCK_TAI_LE = 112,
01179 UBLOCK_KHMER_SYMBOLS = 113,
01181 UBLOCK_PHONETIC_EXTENSIONS = 114,
01183 UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115,
01185 UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116,
01187 UBLOCK_LINEAR_B_SYLLABARY = 117,
01189 UBLOCK_LINEAR_B_IDEOGRAMS = 118,
01191 UBLOCK_AEGEAN_NUMBERS = 119,
01193 UBLOCK_UGARITIC = 120,
01195 UBLOCK_SHAVIAN = 121,
01197 UBLOCK_OSMANYA = 122,
01199 UBLOCK_CYPRIOT_SYLLABARY = 123,
01201 UBLOCK_TAI_XUAN_JING_SYMBOLS = 124,
01203 UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125,
01204
01205
01206
01208 UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION = 126,
01210 UBLOCK_ANCIENT_GREEK_NUMBERS = 127,
01212 UBLOCK_ARABIC_SUPPLEMENT = 128,
01214 UBLOCK_BUGINESE = 129,
01216 UBLOCK_CJK_STROKES = 130,
01218 UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131,
01220 UBLOCK_COPTIC = 132,
01222 UBLOCK_ETHIOPIC_EXTENDED = 133,
01224 UBLOCK_ETHIOPIC_SUPPLEMENT = 134,
01226 UBLOCK_GEORGIAN_SUPPLEMENT = 135,
01228 UBLOCK_GLAGOLITIC = 136,
01230 UBLOCK_KHAROSHTHI = 137,
01232 UBLOCK_MODIFIER_TONE_LETTERS = 138,
01234 UBLOCK_NEW_TAI_LUE = 139,
01236 UBLOCK_OLD_PERSIAN = 140,
01238 UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT = 141,
01240 UBLOCK_SUPPLEMENTAL_PUNCTUATION = 142,
01242 UBLOCK_SYLOTI_NAGRI = 143,
01244 UBLOCK_TIFINAGH = 144,
01246 UBLOCK_VERTICAL_FORMS = 145,
01247
01248
01249
01251 UBLOCK_NKO = 146,
01253 UBLOCK_BALINESE = 147,
01255 UBLOCK_LATIN_EXTENDED_C = 148,
01257 UBLOCK_LATIN_EXTENDED_D = 149,
01259 UBLOCK_PHAGS_PA = 150,
01261 UBLOCK_PHOENICIAN = 151,
01263 UBLOCK_CUNEIFORM = 152,
01265 UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153,
01267 UBLOCK_COUNTING_ROD_NUMERALS = 154,
01268
01269
01270
01272 UBLOCK_SUNDANESE = 155,
01274 UBLOCK_LEPCHA = 156,
01276 UBLOCK_OL_CHIKI = 157,
01278 UBLOCK_CYRILLIC_EXTENDED_A = 158,
01280 UBLOCK_VAI = 159,
01282 UBLOCK_CYRILLIC_EXTENDED_B = 160,
01284 UBLOCK_SAURASHTRA = 161,
01286 UBLOCK_KAYAH_LI = 162,
01288 UBLOCK_REJANG = 163,
01290 UBLOCK_CHAM = 164,
01292 UBLOCK_ANCIENT_SYMBOLS = 165,
01294 UBLOCK_PHAISTOS_DISC = 166,
01296 UBLOCK_LYCIAN = 167,
01298 UBLOCK_CARIAN = 168,
01300 UBLOCK_LYDIAN = 169,
01302 UBLOCK_MAHJONG_TILES = 170,
01304 UBLOCK_DOMINO_TILES = 171,
01305
01306
01307
01309 UBLOCK_SAMARITAN = 172,
01311 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173,
01313 UBLOCK_TAI_THAM = 174,
01315 UBLOCK_VEDIC_EXTENSIONS = 175,
01317 UBLOCK_LISU = 176,
01319 UBLOCK_BAMUM = 177,
01321 UBLOCK_COMMON_INDIC_NUMBER_FORMS = 178,
01323 UBLOCK_DEVANAGARI_EXTENDED = 179,
01325 UBLOCK_HANGUL_JAMO_EXTENDED_A = 180,
01327 UBLOCK_JAVANESE = 181,
01329 UBLOCK_MYANMAR_EXTENDED_A = 182,
01331 UBLOCK_TAI_VIET = 183,
01333 UBLOCK_MEETEI_MAYEK = 184,
01335 UBLOCK_HANGUL_JAMO_EXTENDED_B = 185,
01337 UBLOCK_IMPERIAL_ARAMAIC = 186,
01339 UBLOCK_OLD_SOUTH_ARABIAN = 187,
01341 UBLOCK_AVESTAN = 188,
01343 UBLOCK_INSCRIPTIONAL_PARTHIAN = 189,
01345 UBLOCK_INSCRIPTIONAL_PAHLAVI = 190,
01347 UBLOCK_OLD_TURKIC = 191,
01349 UBLOCK_RUMI_NUMERAL_SYMBOLS = 192,
01351 UBLOCK_KAITHI = 193,
01353 UBLOCK_EGYPTIAN_HIEROGLYPHS = 194,
01355 UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195,
01357 UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196,
01359 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197,
01360
01361
01362
01364 UBLOCK_MANDAIC = 198,
01366 UBLOCK_BATAK = 199,
01368 UBLOCK_ETHIOPIC_EXTENDED_A = 200,
01370 UBLOCK_BRAHMI = 201,
01372 UBLOCK_BAMUM_SUPPLEMENT = 202,
01374 UBLOCK_KANA_SUPPLEMENT = 203,
01376 UBLOCK_PLAYING_CARDS = 204,
01378 UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = 205,
01380 UBLOCK_EMOTICONS = 206,
01382 UBLOCK_TRANSPORT_AND_MAP_SYMBOLS = 207,
01384 UBLOCK_ALCHEMICAL_SYMBOLS = 208,
01386 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = 209,
01387
01388
01389
01391 UBLOCK_ARABIC_EXTENDED_A = 210,
01393 UBLOCK_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS = 211,
01395 UBLOCK_CHAKMA = 212,
01397 UBLOCK_MEETEI_MAYEK_EXTENSIONS = 213,
01399 UBLOCK_MEROITIC_CURSIVE = 214,
01401 UBLOCK_MEROITIC_HIEROGLYPHS = 215,
01403 UBLOCK_MIAO = 216,
01405 UBLOCK_SHARADA = 217,
01407 UBLOCK_SORA_SOMPENG = 218,
01409 UBLOCK_SUNDANESE_SUPPLEMENT = 219,
01411 UBLOCK_TAKRI = 220,
01412
01414 UBLOCK_COUNT = 221,
01415
01417 UBLOCK_INVALID_CODE=-1
01418 };
01419
01421 typedef enum UBlockCode UBlockCode;
01422
01430 typedef enum UEastAsianWidth {
01431
01432
01433
01434
01435
01436
01437 U_EA_NEUTRAL,
01438 U_EA_AMBIGUOUS,
01439 U_EA_HALFWIDTH,
01440 U_EA_FULLWIDTH,
01441 U_EA_NARROW,
01442 U_EA_WIDE,
01443 U_EA_COUNT
01444 } UEastAsianWidth;
01445
01457 typedef enum UCharNameChoice {
01459 U_UNICODE_CHAR_NAME,
01465 U_UNICODE_10_CHAR_NAME,
01467 U_EXTENDED_CHAR_NAME,
01469 U_CHAR_NAME_ALIAS,
01471 U_CHAR_NAME_CHOICE_COUNT
01472 } UCharNameChoice;
01473
01487 typedef enum UPropertyNameChoice {
01488 U_SHORT_PROPERTY_NAME,
01489 U_LONG_PROPERTY_NAME,
01490 U_PROPERTY_NAME_CHOICE_COUNT
01491 } UPropertyNameChoice;
01492
01499 typedef enum UDecompositionType {
01500
01501
01502
01503
01504
01505
01506 U_DT_NONE,
01507 U_DT_CANONICAL,
01508 U_DT_COMPAT,
01509 U_DT_CIRCLE,
01510 U_DT_FINAL,
01511 U_DT_FONT,
01512 U_DT_FRACTION,
01513 U_DT_INITIAL,
01514 U_DT_ISOLATED,
01515 U_DT_MEDIAL,
01516 U_DT_NARROW,
01517 U_DT_NOBREAK,
01518 U_DT_SMALL,
01519 U_DT_SQUARE,
01520 U_DT_SUB,
01521 U_DT_SUPER,
01522 U_DT_VERTICAL,
01523 U_DT_WIDE,
01524 U_DT_COUNT
01525 } UDecompositionType;
01526
01533 typedef enum UJoiningType {
01534
01535
01536
01537
01538
01539
01540 U_JT_NON_JOINING,
01541 U_JT_JOIN_CAUSING,
01542 U_JT_DUAL_JOINING,
01543 U_JT_LEFT_JOINING,
01544 U_JT_RIGHT_JOINING,
01545 U_JT_TRANSPARENT,
01546 U_JT_COUNT
01547 } UJoiningType;
01548
01555 typedef enum UJoiningGroup {
01556
01557
01558
01559
01560
01561
01562 U_JG_NO_JOINING_GROUP,
01563 U_JG_AIN,
01564 U_JG_ALAPH,
01565 U_JG_ALEF,
01566 U_JG_BEH,
01567 U_JG_BETH,
01568 U_JG_DAL,
01569 U_JG_DALATH_RISH,
01570 U_JG_E,
01571 U_JG_FEH,
01572 U_JG_FINAL_SEMKATH,
01573 U_JG_GAF,
01574 U_JG_GAMAL,
01575 U_JG_HAH,
01576 U_JG_TEH_MARBUTA_GOAL,
01577 U_JG_HAMZA_ON_HEH_GOAL=U_JG_TEH_MARBUTA_GOAL,
01578 U_JG_HE,
01579 U_JG_HEH,
01580 U_JG_HEH_GOAL,
01581 U_JG_HETH,
01582 U_JG_KAF,
01583 U_JG_KAPH,
01584 U_JG_KNOTTED_HEH,
01585 U_JG_LAM,
01586 U_JG_LAMADH,
01587 U_JG_MEEM,
01588 U_JG_MIM,
01589 U_JG_NOON,
01590 U_JG_NUN,
01591 U_JG_PE,
01592 U_JG_QAF,
01593 U_JG_QAPH,
01594 U_JG_REH,
01595 U_JG_REVERSED_PE,
01596 U_JG_SAD,
01597 U_JG_SADHE,
01598 U_JG_SEEN,
01599 U_JG_SEMKATH,
01600 U_JG_SHIN,
01601 U_JG_SWASH_KAF,
01602 U_JG_SYRIAC_WAW,
01603 U_JG_TAH,
01604 U_JG_TAW,
01605 U_JG_TEH_MARBUTA,
01606 U_JG_TETH,
01607 U_JG_WAW,
01608 U_JG_YEH,
01609 U_JG_YEH_BARREE,
01610 U_JG_YEH_WITH_TAIL,
01611 U_JG_YUDH,
01612 U_JG_YUDH_HE,
01613 U_JG_ZAIN,
01614 U_JG_FE,
01615 U_JG_KHAPH,
01616 U_JG_ZHAIN,
01617 U_JG_BURUSHASKI_YEH_BARREE,
01618 U_JG_FARSI_YEH,
01619 U_JG_NYA,
01620 U_JG_ROHINGYA_YEH,
01621 U_JG_COUNT
01622 } UJoiningGroup;
01623
01630 typedef enum UGraphemeClusterBreak {
01631
01632
01633
01634
01635
01636
01637 U_GCB_OTHER = 0,
01638 U_GCB_CONTROL = 1,
01639 U_GCB_CR = 2,
01640 U_GCB_EXTEND = 3,
01641 U_GCB_L = 4,
01642 U_GCB_LF = 5,
01643 U_GCB_LV = 6,
01644 U_GCB_LVT = 7,
01645 U_GCB_T = 8,
01646 U_GCB_V = 9,
01647 U_GCB_SPACING_MARK = 10,
01648 U_GCB_PREPEND = 11,
01649 U_GCB_REGIONAL_INDICATOR = 12,
01650 U_GCB_COUNT = 13
01651 } UGraphemeClusterBreak;
01652
01660 typedef enum UWordBreakValues {
01661
01662
01663
01664
01665
01666
01667 U_WB_OTHER = 0,
01668 U_WB_ALETTER = 1,
01669 U_WB_FORMAT = 2,
01670 U_WB_KATAKANA = 3,
01671 U_WB_MIDLETTER = 4,
01672 U_WB_MIDNUM = 5,
01673 U_WB_NUMERIC = 6,
01674 U_WB_EXTENDNUMLET = 7,
01675 U_WB_CR = 8,
01676 U_WB_EXTEND = 9,
01677 U_WB_LF = 10,
01678 U_WB_MIDNUMLET =11,
01679 U_WB_NEWLINE =12,
01680 U_WB_REGIONAL_INDICATOR = 13,
01681 U_WB_COUNT = 14
01682 } UWordBreakValues;
01683
01690 typedef enum USentenceBreak {
01691
01692
01693
01694
01695
01696
01697 U_SB_OTHER = 0,
01698 U_SB_ATERM = 1,
01699 U_SB_CLOSE = 2,
01700 U_SB_FORMAT = 3,
01701 U_SB_LOWER = 4,
01702 U_SB_NUMERIC = 5,
01703 U_SB_OLETTER = 6,
01704 U_SB_SEP = 7,
01705 U_SB_SP = 8,
01706 U_SB_STERM = 9,
01707 U_SB_UPPER = 10,
01708 U_SB_CR = 11,
01709 U_SB_EXTEND = 12,
01710 U_SB_LF = 13,
01711 U_SB_SCONTINUE = 14,
01712 U_SB_COUNT = 15
01713 } USentenceBreak;
01714
01721 typedef enum ULineBreak {
01722
01723
01724
01725
01726
01727
01728 U_LB_UNKNOWN = 0,
01729 U_LB_AMBIGUOUS = 1,
01730 U_LB_ALPHABETIC = 2,
01731 U_LB_BREAK_BOTH = 3,
01732 U_LB_BREAK_AFTER = 4,
01733 U_LB_BREAK_BEFORE = 5,
01734 U_LB_MANDATORY_BREAK = 6,
01735 U_LB_CONTINGENT_BREAK = 7,
01736 U_LB_CLOSE_PUNCTUATION = 8,
01737 U_LB_COMBINING_MARK = 9,
01738 U_LB_CARRIAGE_RETURN = 10,
01739 U_LB_EXCLAMATION = 11,
01740 U_LB_GLUE = 12,
01741 U_LB_HYPHEN = 13,
01742 U_LB_IDEOGRAPHIC = 14,
01744 U_LB_INSEPARABLE = 15,
01745 U_LB_INSEPERABLE = U_LB_INSEPARABLE,
01746 U_LB_INFIX_NUMERIC = 16,
01747 U_LB_LINE_FEED = 17,
01748 U_LB_NONSTARTER = 18,
01749 U_LB_NUMERIC = 19,
01750 U_LB_OPEN_PUNCTUATION = 20,
01751 U_LB_POSTFIX_NUMERIC = 21,
01752 U_LB_PREFIX_NUMERIC = 22,
01753 U_LB_QUOTATION = 23,
01754 U_LB_COMPLEX_CONTEXT = 24,
01755 U_LB_SURROGATE = 25,
01756 U_LB_SPACE = 26,
01757 U_LB_BREAK_SYMBOLS = 27,
01758 U_LB_ZWSPACE = 28,
01759 U_LB_NEXT_LINE = 29,
01760 U_LB_WORD_JOINER = 30,
01761 U_LB_H2 = 31,
01762 U_LB_H3 = 32,
01763 U_LB_JL = 33,
01764 U_LB_JT = 34,
01765 U_LB_JV = 35,
01766 U_LB_CLOSE_PARENTHESIS = 36,
01767 U_LB_CONDITIONAL_JAPANESE_STARTER = 37,
01768 U_LB_HEBREW_LETTER = 38,
01769 U_LB_REGIONAL_INDICATOR = 39,
01770 U_LB_COUNT = 40
01771 } ULineBreak;
01772
01779 typedef enum UNumericType {
01780
01781
01782
01783
01784
01785
01786 U_NT_NONE,
01787 U_NT_DECIMAL,
01788 U_NT_DIGIT,
01789 U_NT_NUMERIC,
01790 U_NT_COUNT
01791 } UNumericType;
01792
01799 typedef enum UHangulSyllableType {
01800
01801
01802
01803
01804
01805
01806 U_HST_NOT_APPLICABLE,
01807 U_HST_LEADING_JAMO,
01808 U_HST_VOWEL_JAMO,
01809 U_HST_TRAILING_JAMO,
01810 U_HST_LV_SYLLABLE,
01811 U_HST_LVT_SYLLABLE,
01812 U_HST_COUNT
01813 } UHangulSyllableType;
01814
01841 U_STABLE UBool U_EXPORT2
01842 u_hasBinaryProperty(UChar32 c, UProperty which);
01843
01856 U_STABLE UBool U_EXPORT2
01857 u_isUAlphabetic(UChar32 c);
01858
01871 U_STABLE UBool U_EXPORT2
01872 u_isULowercase(UChar32 c);
01873
01886 U_STABLE UBool U_EXPORT2
01887 u_isUUppercase(UChar32 c);
01888
01907 U_STABLE UBool U_EXPORT2
01908 u_isUWhiteSpace(UChar32 c);
01909
01947 U_STABLE int32_t U_EXPORT2
01948 u_getIntPropertyValue(UChar32 c, UProperty which);
01949
01968 U_STABLE int32_t U_EXPORT2
01969 u_getIntPropertyMinValue(UProperty which);
01970
01997 U_STABLE int32_t U_EXPORT2
01998 u_getIntPropertyMaxValue(UProperty which);
01999
02022 U_STABLE double U_EXPORT2
02023 u_getNumericValue(UChar32 c);
02024
02032 #define U_NO_NUMERIC_VALUE ((double)-123456789.)
02033
02057 U_STABLE UBool U_EXPORT2
02058 u_islower(UChar32 c);
02059
02084 U_STABLE UBool U_EXPORT2
02085 u_isupper(UChar32 c);
02086
02101 U_STABLE UBool U_EXPORT2
02102 u_istitle(UChar32 c);
02103
02122 U_STABLE UBool U_EXPORT2
02123 u_isdigit(UChar32 c);
02124
02143 U_STABLE UBool U_EXPORT2
02144 u_isalpha(UChar32 c);
02145
02164 U_STABLE UBool U_EXPORT2
02165 u_isalnum(UChar32 c);
02166
02187 U_STABLE UBool U_EXPORT2
02188 u_isxdigit(UChar32 c);
02189
02203 U_STABLE UBool U_EXPORT2
02204 u_ispunct(UChar32 c);
02205
02222 U_STABLE UBool U_EXPORT2
02223 u_isgraph(UChar32 c);
02224
02251 U_STABLE UBool U_EXPORT2
02252 u_isblank(UChar32 c);
02253
02276 U_STABLE UBool U_EXPORT2
02277 u_isdefined(UChar32 c);
02278
02297 U_STABLE UBool U_EXPORT2
02298 u_isspace(UChar32 c);
02299
02318 U_STABLE UBool U_EXPORT2
02319 u_isJavaSpaceChar(UChar32 c);
02320
02358 U_STABLE UBool U_EXPORT2
02359 u_isWhitespace(UChar32 c);
02360
02382 U_STABLE UBool U_EXPORT2
02383 u_iscntrl(UChar32 c);
02384
02397 U_STABLE UBool U_EXPORT2
02398 u_isISOControl(UChar32 c);
02399
02415 U_STABLE UBool U_EXPORT2
02416 u_isprint(UChar32 c);
02417
02436 U_STABLE UBool U_EXPORT2
02437 u_isbase(UChar32 c);
02438
02455 U_STABLE UCharDirection U_EXPORT2
02456 u_charDirection(UChar32 c);
02457
02473 U_STABLE UBool U_EXPORT2
02474 u_isMirrored(UChar32 c);
02475
02495 U_STABLE UChar32 U_EXPORT2
02496 u_charMirror(UChar32 c);
02497
02509 U_STABLE int8_t U_EXPORT2
02510 u_charType(UChar32 c);
02511
02525 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
02526
02544 typedef UBool U_CALLCONV
02545 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
02546
02566 U_STABLE void U_EXPORT2
02567 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
02568
02569 #if !UCONFIG_NO_NORMALIZATION
02570
02578 U_STABLE uint8_t U_EXPORT2
02579 u_getCombiningClass(UChar32 c);
02580
02581 #endif
02582
02606 U_STABLE int32_t U_EXPORT2
02607 u_charDigitValue(UChar32 c);
02608
02618 U_STABLE UBlockCode U_EXPORT2
02619 ublock_getCode(UChar32 c);
02620
02653 U_STABLE int32_t U_EXPORT2
02654 u_charName(UChar32 code, UCharNameChoice nameChoice,
02655 char *buffer, int32_t bufferLength,
02656 UErrorCode *pErrorCode);
02657
02676 U_STABLE int32_t U_EXPORT2
02677 u_getISOComment(UChar32 c,
02678 char *dest, int32_t destCapacity,
02679 UErrorCode *pErrorCode);
02680
02701 U_STABLE UChar32 U_EXPORT2
02702 u_charFromName(UCharNameChoice nameChoice,
02703 const char *name,
02704 UErrorCode *pErrorCode);
02705
02723 typedef UBool U_CALLCONV UEnumCharNamesFn(void *context,
02724 UChar32 code,
02725 UCharNameChoice nameChoice,
02726 const char *name,
02727 int32_t length);
02728
02750 U_STABLE void U_EXPORT2
02751 u_enumCharNames(UChar32 start, UChar32 limit,
02752 UEnumCharNamesFn *fn,
02753 void *context,
02754 UCharNameChoice nameChoice,
02755 UErrorCode *pErrorCode);
02756
02788 U_STABLE const char* U_EXPORT2
02789 u_getPropertyName(UProperty property,
02790 UPropertyNameChoice nameChoice);
02791
02811 U_STABLE UProperty U_EXPORT2
02812 u_getPropertyEnum(const char* alias);
02813
02861 U_STABLE const char* U_EXPORT2
02862 u_getPropertyValueName(UProperty property,
02863 int32_t value,
02864 UPropertyNameChoice nameChoice);
02865
02897 U_STABLE int32_t U_EXPORT2
02898 u_getPropertyValueEnum(UProperty property,
02899 const char* alias);
02900
02918 U_STABLE UBool U_EXPORT2
02919 u_isIDStart(UChar32 c);
02920
02942 U_STABLE UBool U_EXPORT2
02943 u_isIDPart(UChar32 c);
02944
02965 U_STABLE UBool U_EXPORT2
02966 u_isIDIgnorable(UChar32 c);
02967
02984 U_STABLE UBool U_EXPORT2
02985 u_isJavaIDStart(UChar32 c);
02986
03005 U_STABLE UBool U_EXPORT2
03006 u_isJavaIDPart(UChar32 c);
03007
03030 U_STABLE UChar32 U_EXPORT2
03031 u_tolower(UChar32 c);
03032
03055 U_STABLE UChar32 U_EXPORT2
03056 u_toupper(UChar32 c);
03057
03080 U_STABLE UChar32 U_EXPORT2
03081 u_totitle(UChar32 c);
03082
03084 #define U_FOLD_CASE_DEFAULT 0
03085
03102 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
03103
03126 U_STABLE UChar32 U_EXPORT2
03127 u_foldCase(UChar32 c, uint32_t options);
03128
03167 U_STABLE int32_t U_EXPORT2
03168 u_digit(UChar32 ch, int8_t radix);
03169
03198 U_STABLE UChar32 U_EXPORT2
03199 u_forDigit(int32_t digit, int8_t radix);
03200
03215 U_STABLE void U_EXPORT2
03216 u_charAge(UChar32 c, UVersionInfo versionArray);
03217
03229 U_STABLE void U_EXPORT2
03230 u_getUnicodeVersion(UVersionInfo versionArray);
03231
03232 #if !UCONFIG_NO_NORMALIZATION
03233
03254 U_STABLE int32_t U_EXPORT2
03255 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
03256
03257 #endif
03258
03259
03260 U_CDECL_END
03261
03262 #endif
03263