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.0"
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
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00174 typedef enum UProperty {
00175
00176
00177
00178
00179
00180
00181
00182
00183
00186 UCHAR_ALPHABETIC=0,
00188 UCHAR_BINARY_START=UCHAR_ALPHABETIC,
00190 UCHAR_ASCII_HEX_DIGIT=1,
00194 UCHAR_BIDI_CONTROL=2,
00199 UCHAR_BIDI_MIRRORED=3,
00201 UCHAR_DASH=4,
00205 UCHAR_DEFAULT_IGNORABLE_CODE_POINT=5,
00208 UCHAR_DEPRECATED=6,
00211 UCHAR_DIACRITIC=7,
00215 UCHAR_EXTENDER=8,
00219 UCHAR_FULL_COMPOSITION_EXCLUSION=9,
00223 UCHAR_GRAPHEME_BASE=10,
00227 UCHAR_GRAPHEME_EXTEND=11,
00230 UCHAR_GRAPHEME_LINK=12,
00233 UCHAR_HEX_DIGIT=13,
00236 UCHAR_HYPHEN=14,
00241 UCHAR_ID_CONTINUE=15,
00245 UCHAR_ID_START=16,
00248 UCHAR_IDEOGRAPHIC=17,
00252 UCHAR_IDS_BINARY_OPERATOR=18,
00256 UCHAR_IDS_TRINARY_OPERATOR=19,
00259 UCHAR_JOIN_CONTROL=20,
00263 UCHAR_LOGICAL_ORDER_EXCEPTION=21,
00266 UCHAR_LOWERCASE=22,
00268 UCHAR_MATH=23,
00272 UCHAR_NONCHARACTER_CODE_POINT=24,
00274 UCHAR_QUOTATION_MARK=25,
00278 UCHAR_RADICAL=26,
00283 UCHAR_SOFT_DOTTED=27,
00287 UCHAR_TERMINAL_PUNCTUATION=28,
00291 UCHAR_UNIFIED_IDEOGRAPH=29,
00294 UCHAR_UPPERCASE=30,
00298 UCHAR_WHITE_SPACE=31,
00302 UCHAR_XID_CONTINUE=32,
00305 UCHAR_XID_START=33,
00309 UCHAR_CASE_SENSITIVE=34,
00314 UCHAR_S_TERM=35,
00320 UCHAR_VARIATION_SELECTOR=36,
00327 UCHAR_NFD_INERT=37,
00334 UCHAR_NFKD_INERT=38,
00341 UCHAR_NFC_INERT=39,
00348 UCHAR_NFKC_INERT=40,
00359 UCHAR_SEGMENT_STARTER=41,
00364 UCHAR_PATTERN_SYNTAX=42,
00369 UCHAR_PATTERN_WHITE_SPACE=43,
00374 UCHAR_POSIX_ALNUM=44,
00379 UCHAR_POSIX_BLANK=45,
00384 UCHAR_POSIX_GRAPH=46,
00389 UCHAR_POSIX_PRINT=47,
00394 UCHAR_POSIX_XDIGIT=48,
00396 UCHAR_CASED=49,
00398 UCHAR_CASE_IGNORABLE=50,
00400 UCHAR_CHANGES_WHEN_LOWERCASED=51,
00402 UCHAR_CHANGES_WHEN_UPPERCASED=52,
00404 UCHAR_CHANGES_WHEN_TITLECASED=53,
00406 UCHAR_CHANGES_WHEN_CASEFOLDED=54,
00408 UCHAR_CHANGES_WHEN_CASEMAPPED=55,
00410 UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED=56,
00412 UCHAR_BINARY_LIMIT=57,
00413
00416 UCHAR_BIDI_CLASS=0x1000,
00418 UCHAR_INT_START=UCHAR_BIDI_CLASS,
00421 UCHAR_BLOCK=0x1001,
00424 UCHAR_CANONICAL_COMBINING_CLASS=0x1002,
00427 UCHAR_DECOMPOSITION_TYPE=0x1003,
00431 UCHAR_EAST_ASIAN_WIDTH=0x1004,
00434 UCHAR_GENERAL_CATEGORY=0x1005,
00437 UCHAR_JOINING_GROUP=0x1006,
00440 UCHAR_JOINING_TYPE=0x1007,
00443 UCHAR_LINE_BREAK=0x1008,
00446 UCHAR_NUMERIC_TYPE=0x1009,
00449 UCHAR_SCRIPT=0x100A,
00452 UCHAR_HANGUL_SYLLABLE_TYPE=0x100B,
00455 UCHAR_NFD_QUICK_CHECK=0x100C,
00458 UCHAR_NFKD_QUICK_CHECK=0x100D,
00461 UCHAR_NFC_QUICK_CHECK=0x100E,
00464 UCHAR_NFKC_QUICK_CHECK=0x100F,
00471 UCHAR_LEAD_CANONICAL_COMBINING_CLASS=0x1010,
00478 UCHAR_TRAIL_CANONICAL_COMBINING_CLASS=0x1011,
00483 UCHAR_GRAPHEME_CLUSTER_BREAK=0x1012,
00488 UCHAR_SENTENCE_BREAK=0x1013,
00493 UCHAR_WORD_BREAK=0x1014,
00495 UCHAR_INT_LIMIT=0x1015,
00496
00505 UCHAR_GENERAL_CATEGORY_MASK=0x2000,
00507 UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK,
00509 UCHAR_MASK_LIMIT=0x2001,
00510
00513 UCHAR_NUMERIC_VALUE=0x3000,
00515 UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE,
00517 UCHAR_DOUBLE_LIMIT=0x3001,
00518
00521 UCHAR_AGE=0x4000,
00523 UCHAR_STRING_START=UCHAR_AGE,
00526 UCHAR_BIDI_MIRRORING_GLYPH=0x4001,
00529 UCHAR_CASE_FOLDING=0x4002,
00532 UCHAR_ISO_COMMENT=0x4003,
00535 UCHAR_LOWERCASE_MAPPING=0x4004,
00538 UCHAR_NAME=0x4005,
00541 UCHAR_SIMPLE_CASE_FOLDING=0x4006,
00544 UCHAR_SIMPLE_LOWERCASE_MAPPING=0x4007,
00547 UCHAR_SIMPLE_TITLECASE_MAPPING=0x4008,
00550 UCHAR_SIMPLE_UPPERCASE_MAPPING=0x4009,
00553 UCHAR_TITLECASE_MAPPING=0x400A,
00556 UCHAR_UNICODE_1_NAME=0x400B,
00559 UCHAR_UPPERCASE_MAPPING=0x400C,
00561 UCHAR_STRING_LIMIT=0x400D,
00562
00570 UCHAR_SCRIPT_EXTENSIONS=0x7000,
00572 UCHAR_OTHER_PROPERTY_START=UCHAR_SCRIPT_EXTENSIONS,
00575 UCHAR_OTHER_PROPERTY_LIMIT=0x7001,
00576
00578 UCHAR_INVALID_CODE = -1
00579 } UProperty;
00580
00586 typedef enum UCharCategory
00587 {
00591 U_UNASSIGNED = 0,
00593 U_GENERAL_OTHER_TYPES = 0,
00595 U_UPPERCASE_LETTER = 1,
00597 U_LOWERCASE_LETTER = 2,
00599 U_TITLECASE_LETTER = 3,
00601 U_MODIFIER_LETTER = 4,
00603 U_OTHER_LETTER = 5,
00605 U_NON_SPACING_MARK = 6,
00607 U_ENCLOSING_MARK = 7,
00609 U_COMBINING_SPACING_MARK = 8,
00611 U_DECIMAL_DIGIT_NUMBER = 9,
00613 U_LETTER_NUMBER = 10,
00615 U_OTHER_NUMBER = 11,
00617 U_SPACE_SEPARATOR = 12,
00619 U_LINE_SEPARATOR = 13,
00621 U_PARAGRAPH_SEPARATOR = 14,
00623 U_CONTROL_CHAR = 15,
00625 U_FORMAT_CHAR = 16,
00627 U_PRIVATE_USE_CHAR = 17,
00629 U_SURROGATE = 18,
00631 U_DASH_PUNCTUATION = 19,
00633 U_START_PUNCTUATION = 20,
00635 U_END_PUNCTUATION = 21,
00637 U_CONNECTOR_PUNCTUATION = 22,
00639 U_OTHER_PUNCTUATION = 23,
00641 U_MATH_SYMBOL = 24,
00643 U_CURRENCY_SYMBOL = 25,
00645 U_MODIFIER_SYMBOL = 26,
00647 U_OTHER_SYMBOL = 27,
00649 U_INITIAL_PUNCTUATION = 28,
00651 U_FINAL_PUNCTUATION = 29,
00653 U_CHAR_CATEGORY_COUNT
00654 } UCharCategory;
00655
00670 #define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES)
00671
00673 #define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER)
00674
00675 #define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER)
00676
00677 #define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER)
00678
00679 #define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER)
00680
00681 #define U_GC_LO_MASK U_MASK(U_OTHER_LETTER)
00682
00684 #define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK)
00685
00686 #define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK)
00687
00688 #define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK)
00689
00691 #define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER)
00692
00693 #define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER)
00694
00695 #define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER)
00696
00698 #define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR)
00699
00700 #define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR)
00701
00702 #define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR)
00703
00705 #define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR)
00706
00707 #define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR)
00708
00709 #define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR)
00710
00711 #define U_GC_CS_MASK U_MASK(U_SURROGATE)
00712
00714 #define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION)
00715
00716 #define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION)
00717
00718 #define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION)
00719
00720 #define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION)
00721
00722 #define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION)
00723
00725 #define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL)
00726
00727 #define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL)
00728
00729 #define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL)
00730
00731 #define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL)
00732
00734 #define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION)
00735
00736 #define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION)
00737
00738
00740 #define U_GC_L_MASK \
00741 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
00742
00744 #define U_GC_LC_MASK \
00745 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
00746
00748 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
00749
00751 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
00752
00754 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
00755
00757 #define U_GC_C_MASK \
00758 (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
00759
00761 #define U_GC_P_MASK \
00762 (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
00763 U_GC_PI_MASK|U_GC_PF_MASK)
00764
00766 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
00767
00772 typedef enum UCharDirection {
00776 U_LEFT_TO_RIGHT = 0,
00778 U_RIGHT_TO_LEFT = 1,
00780 U_EUROPEAN_NUMBER = 2,
00782 U_EUROPEAN_NUMBER_SEPARATOR = 3,
00784 U_EUROPEAN_NUMBER_TERMINATOR = 4,
00786 U_ARABIC_NUMBER = 5,
00788 U_COMMON_NUMBER_SEPARATOR = 6,
00790 U_BLOCK_SEPARATOR = 7,
00792 U_SEGMENT_SEPARATOR = 8,
00794 U_WHITE_SPACE_NEUTRAL = 9,
00796 U_OTHER_NEUTRAL = 10,
00798 U_LEFT_TO_RIGHT_EMBEDDING = 11,
00800 U_LEFT_TO_RIGHT_OVERRIDE = 12,
00802 U_RIGHT_TO_LEFT_ARABIC = 13,
00804 U_RIGHT_TO_LEFT_EMBEDDING = 14,
00806 U_RIGHT_TO_LEFT_OVERRIDE = 15,
00808 U_POP_DIRECTIONAL_FORMAT = 16,
00810 U_DIR_NON_SPACING_MARK = 17,
00812 U_BOUNDARY_NEUTRAL = 18,
00814 U_CHAR_DIRECTION_COUNT
00815 } UCharDirection;
00816
00821 enum UBlockCode {
00822
00824 UBLOCK_NO_BLOCK = 0,
00825
00827 UBLOCK_BASIC_LATIN = 1,
00828
00830 UBLOCK_LATIN_1_SUPPLEMENT=2,
00831
00833 UBLOCK_LATIN_EXTENDED_A =3,
00834
00836 UBLOCK_LATIN_EXTENDED_B =4,
00837
00839 UBLOCK_IPA_EXTENSIONS =5,
00840
00842 UBLOCK_SPACING_MODIFIER_LETTERS =6,
00843
00845 UBLOCK_COMBINING_DIACRITICAL_MARKS =7,
00846
00851 UBLOCK_GREEK =8,
00852
00854 UBLOCK_CYRILLIC =9,
00855
00857 UBLOCK_ARMENIAN =10,
00858
00860 UBLOCK_HEBREW =11,
00861
00863 UBLOCK_ARABIC =12,
00864
00866 UBLOCK_SYRIAC =13,
00867
00869 UBLOCK_THAANA =14,
00870
00872 UBLOCK_DEVANAGARI =15,
00873
00875 UBLOCK_BENGALI =16,
00876
00878 UBLOCK_GURMUKHI =17,
00879
00881 UBLOCK_GUJARATI =18,
00882
00884 UBLOCK_ORIYA =19,
00885
00887 UBLOCK_TAMIL =20,
00888
00890 UBLOCK_TELUGU =21,
00891
00893 UBLOCK_KANNADA =22,
00894
00896 UBLOCK_MALAYALAM =23,
00897
00899 UBLOCK_SINHALA =24,
00900
00902 UBLOCK_THAI =25,
00903
00905 UBLOCK_LAO =26,
00906
00908 UBLOCK_TIBETAN =27,
00909
00911 UBLOCK_MYANMAR =28,
00912
00914 UBLOCK_GEORGIAN =29,
00915
00917 UBLOCK_HANGUL_JAMO =30,
00918
00920 UBLOCK_ETHIOPIC =31,
00921
00923 UBLOCK_CHEROKEE =32,
00924
00926 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33,
00927
00929 UBLOCK_OGHAM =34,
00930
00932 UBLOCK_RUNIC =35,
00933
00935 UBLOCK_KHMER =36,
00936
00938 UBLOCK_MONGOLIAN =37,
00939
00941 UBLOCK_LATIN_EXTENDED_ADDITIONAL =38,
00942
00944 UBLOCK_GREEK_EXTENDED =39,
00945
00947 UBLOCK_GENERAL_PUNCTUATION =40,
00948
00950 UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41,
00951
00953 UBLOCK_CURRENCY_SYMBOLS =42,
00954
00959 UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43,
00960
00962 UBLOCK_LETTERLIKE_SYMBOLS =44,
00963
00965 UBLOCK_NUMBER_FORMS =45,
00966
00968 UBLOCK_ARROWS =46,
00969
00971 UBLOCK_MATHEMATICAL_OPERATORS =47,
00972
00974 UBLOCK_MISCELLANEOUS_TECHNICAL =48,
00975
00977 UBLOCK_CONTROL_PICTURES =49,
00978
00980 UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50,
00981
00983 UBLOCK_ENCLOSED_ALPHANUMERICS =51,
00984
00986 UBLOCK_BOX_DRAWING =52,
00987
00989 UBLOCK_BLOCK_ELEMENTS =53,
00990
00992 UBLOCK_GEOMETRIC_SHAPES =54,
00993
00995 UBLOCK_MISCELLANEOUS_SYMBOLS =55,
00996
00998 UBLOCK_DINGBATS =56,
00999
01001 UBLOCK_BRAILLE_PATTERNS =57,
01002
01004 UBLOCK_CJK_RADICALS_SUPPLEMENT =58,
01005
01007 UBLOCK_KANGXI_RADICALS =59,
01008
01010 UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60,
01011
01013 UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61,
01014
01016 UBLOCK_HIRAGANA =62,
01017
01019 UBLOCK_KATAKANA =63,
01020
01022 UBLOCK_BOPOMOFO =64,
01023
01025 UBLOCK_HANGUL_COMPATIBILITY_JAMO =65,
01026
01028 UBLOCK_KANBUN =66,
01029
01031 UBLOCK_BOPOMOFO_EXTENDED =67,
01032
01034 UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68,
01035
01037 UBLOCK_CJK_COMPATIBILITY =69,
01038
01040 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70,
01041
01043 UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71,
01044
01046 UBLOCK_YI_SYLLABLES =72,
01047
01049 UBLOCK_YI_RADICALS =73,
01050
01052 UBLOCK_HANGUL_SYLLABLES =74,
01053
01055 UBLOCK_HIGH_SURROGATES =75,
01056
01058 UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76,
01059
01061 UBLOCK_LOW_SURROGATES =77,
01062
01072 UBLOCK_PRIVATE_USE = 78,
01082 UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE,
01083
01085 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79,
01086
01088 UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80,
01089
01091 UBLOCK_ARABIC_PRESENTATION_FORMS_A =81,
01092
01094 UBLOCK_COMBINING_HALF_MARKS =82,
01095
01097 UBLOCK_CJK_COMPATIBILITY_FORMS =83,
01098
01100 UBLOCK_SMALL_FORM_VARIANTS =84,
01101
01103 UBLOCK_ARABIC_PRESENTATION_FORMS_B =85,
01104
01106 UBLOCK_SPECIALS =86,
01107
01109 UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87,
01110
01111
01112
01114 UBLOCK_OLD_ITALIC = 88 ,
01116 UBLOCK_GOTHIC = 89 ,
01118 UBLOCK_DESERET = 90 ,
01120 UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 ,
01122 UBLOCK_MUSICAL_SYMBOLS = 92 ,
01124 UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93 ,
01126 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94 ,
01128 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 ,
01130 UBLOCK_TAGS = 96,
01131
01132
01133
01138 UBLOCK_CYRILLIC_SUPPLEMENTARY = 97,
01140 UBLOCK_CYRILLIC_SUPPLEMENT = UBLOCK_CYRILLIC_SUPPLEMENTARY,
01142 UBLOCK_TAGALOG = 98,
01144 UBLOCK_HANUNOO = 99,
01146 UBLOCK_BUHID = 100,
01148 UBLOCK_TAGBANWA = 101,
01150 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102,
01152 UBLOCK_SUPPLEMENTAL_ARROWS_A = 103,
01154 UBLOCK_SUPPLEMENTAL_ARROWS_B = 104,
01156 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105,
01158 UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106,
01160 UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107,
01162 UBLOCK_VARIATION_SELECTORS = 108,
01164 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109,
01166 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110,
01167
01168
01169
01171 UBLOCK_LIMBU = 111,
01173 UBLOCK_TAI_LE = 112,
01175 UBLOCK_KHMER_SYMBOLS = 113,
01177 UBLOCK_PHONETIC_EXTENSIONS = 114,
01179 UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115,
01181 UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116,
01183 UBLOCK_LINEAR_B_SYLLABARY = 117,
01185 UBLOCK_LINEAR_B_IDEOGRAMS = 118,
01187 UBLOCK_AEGEAN_NUMBERS = 119,
01189 UBLOCK_UGARITIC = 120,
01191 UBLOCK_SHAVIAN = 121,
01193 UBLOCK_OSMANYA = 122,
01195 UBLOCK_CYPRIOT_SYLLABARY = 123,
01197 UBLOCK_TAI_XUAN_JING_SYMBOLS = 124,
01199 UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125,
01200
01201
01202
01204 UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION = 126,
01206 UBLOCK_ANCIENT_GREEK_NUMBERS = 127,
01208 UBLOCK_ARABIC_SUPPLEMENT = 128,
01210 UBLOCK_BUGINESE = 129,
01212 UBLOCK_CJK_STROKES = 130,
01214 UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131,
01216 UBLOCK_COPTIC = 132,
01218 UBLOCK_ETHIOPIC_EXTENDED = 133,
01220 UBLOCK_ETHIOPIC_SUPPLEMENT = 134,
01222 UBLOCK_GEORGIAN_SUPPLEMENT = 135,
01224 UBLOCK_GLAGOLITIC = 136,
01226 UBLOCK_KHAROSHTHI = 137,
01228 UBLOCK_MODIFIER_TONE_LETTERS = 138,
01230 UBLOCK_NEW_TAI_LUE = 139,
01232 UBLOCK_OLD_PERSIAN = 140,
01234 UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT = 141,
01236 UBLOCK_SUPPLEMENTAL_PUNCTUATION = 142,
01238 UBLOCK_SYLOTI_NAGRI = 143,
01240 UBLOCK_TIFINAGH = 144,
01242 UBLOCK_VERTICAL_FORMS = 145,
01243
01244
01245
01247 UBLOCK_NKO = 146,
01249 UBLOCK_BALINESE = 147,
01251 UBLOCK_LATIN_EXTENDED_C = 148,
01253 UBLOCK_LATIN_EXTENDED_D = 149,
01255 UBLOCK_PHAGS_PA = 150,
01257 UBLOCK_PHOENICIAN = 151,
01259 UBLOCK_CUNEIFORM = 152,
01261 UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153,
01263 UBLOCK_COUNTING_ROD_NUMERALS = 154,
01264
01265
01266
01268 UBLOCK_SUNDANESE = 155,
01270 UBLOCK_LEPCHA = 156,
01272 UBLOCK_OL_CHIKI = 157,
01274 UBLOCK_CYRILLIC_EXTENDED_A = 158,
01276 UBLOCK_VAI = 159,
01278 UBLOCK_CYRILLIC_EXTENDED_B = 160,
01280 UBLOCK_SAURASHTRA = 161,
01282 UBLOCK_KAYAH_LI = 162,
01284 UBLOCK_REJANG = 163,
01286 UBLOCK_CHAM = 164,
01288 UBLOCK_ANCIENT_SYMBOLS = 165,
01290 UBLOCK_PHAISTOS_DISC = 166,
01292 UBLOCK_LYCIAN = 167,
01294 UBLOCK_CARIAN = 168,
01296 UBLOCK_LYDIAN = 169,
01298 UBLOCK_MAHJONG_TILES = 170,
01300 UBLOCK_DOMINO_TILES = 171,
01301
01302
01303
01305 UBLOCK_SAMARITAN = 172,
01307 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173,
01309 UBLOCK_TAI_THAM = 174,
01311 UBLOCK_VEDIC_EXTENSIONS = 175,
01313 UBLOCK_LISU = 176,
01315 UBLOCK_BAMUM = 177,
01317 UBLOCK_COMMON_INDIC_NUMBER_FORMS = 178,
01319 UBLOCK_DEVANAGARI_EXTENDED = 179,
01321 UBLOCK_HANGUL_JAMO_EXTENDED_A = 180,
01323 UBLOCK_JAVANESE = 181,
01325 UBLOCK_MYANMAR_EXTENDED_A = 182,
01327 UBLOCK_TAI_VIET = 183,
01329 UBLOCK_MEETEI_MAYEK = 184,
01331 UBLOCK_HANGUL_JAMO_EXTENDED_B = 185,
01333 UBLOCK_IMPERIAL_ARAMAIC = 186,
01335 UBLOCK_OLD_SOUTH_ARABIAN = 187,
01337 UBLOCK_AVESTAN = 188,
01339 UBLOCK_INSCRIPTIONAL_PARTHIAN = 189,
01341 UBLOCK_INSCRIPTIONAL_PAHLAVI = 190,
01343 UBLOCK_OLD_TURKIC = 191,
01345 UBLOCK_RUMI_NUMERAL_SYMBOLS = 192,
01347 UBLOCK_KAITHI = 193,
01349 UBLOCK_EGYPTIAN_HIEROGLYPHS = 194,
01351 UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195,
01353 UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196,
01355 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197,
01356
01357
01358
01360 UBLOCK_MANDAIC = 198,
01362 UBLOCK_BATAK = 199,
01364 UBLOCK_ETHIOPIC_EXTENDED_A = 200,
01366 UBLOCK_BRAHMI = 201,
01368 UBLOCK_BAMUM_SUPPLEMENT = 202,
01370 UBLOCK_KANA_SUPPLEMENT = 203,
01372 UBLOCK_PLAYING_CARDS = 204,
01374 UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = 205,
01376 UBLOCK_EMOTICONS = 206,
01378 UBLOCK_TRANSPORT_AND_MAP_SYMBOLS = 207,
01380 UBLOCK_ALCHEMICAL_SYMBOLS = 208,
01382 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = 209,
01383
01385 UBLOCK_COUNT = 210,
01386
01388 UBLOCK_INVALID_CODE=-1
01389 };
01390
01392 typedef enum UBlockCode UBlockCode;
01393
01401 typedef enum UEastAsianWidth {
01402 U_EA_NEUTRAL,
01403 U_EA_AMBIGUOUS,
01404 U_EA_HALFWIDTH,
01405 U_EA_FULLWIDTH,
01406 U_EA_NARROW,
01407 U_EA_WIDE,
01408 U_EA_COUNT
01409 } UEastAsianWidth;
01410
01411
01412
01413
01414
01426 typedef enum UCharNameChoice {
01427 U_UNICODE_CHAR_NAME,
01428 U_UNICODE_10_CHAR_NAME,
01429 U_EXTENDED_CHAR_NAME,
01430 U_CHAR_NAME_ALIAS,
01431 U_CHAR_NAME_CHOICE_COUNT
01432 } UCharNameChoice;
01433
01447 typedef enum UPropertyNameChoice {
01448 U_SHORT_PROPERTY_NAME,
01449 U_LONG_PROPERTY_NAME,
01450 U_PROPERTY_NAME_CHOICE_COUNT
01451 } UPropertyNameChoice;
01452
01459 typedef enum UDecompositionType {
01460 U_DT_NONE,
01461 U_DT_CANONICAL,
01462 U_DT_COMPAT,
01463 U_DT_CIRCLE,
01464 U_DT_FINAL,
01465 U_DT_FONT,
01466 U_DT_FRACTION,
01467 U_DT_INITIAL,
01468 U_DT_ISOLATED,
01469 U_DT_MEDIAL,
01470 U_DT_NARROW,
01471 U_DT_NOBREAK,
01472 U_DT_SMALL,
01473 U_DT_SQUARE,
01474 U_DT_SUB,
01475 U_DT_SUPER,
01476 U_DT_VERTICAL,
01477 U_DT_WIDE,
01478 U_DT_COUNT
01479 } UDecompositionType;
01480
01487 typedef enum UJoiningType {
01488 U_JT_NON_JOINING,
01489 U_JT_JOIN_CAUSING,
01490 U_JT_DUAL_JOINING,
01491 U_JT_LEFT_JOINING,
01492 U_JT_RIGHT_JOINING,
01493 U_JT_TRANSPARENT,
01494 U_JT_COUNT
01495 } UJoiningType;
01496
01503 typedef enum UJoiningGroup {
01504 U_JG_NO_JOINING_GROUP,
01505 U_JG_AIN,
01506 U_JG_ALAPH,
01507 U_JG_ALEF,
01508 U_JG_BEH,
01509 U_JG_BETH,
01510 U_JG_DAL,
01511 U_JG_DALATH_RISH,
01512 U_JG_E,
01513 U_JG_FEH,
01514 U_JG_FINAL_SEMKATH,
01515 U_JG_GAF,
01516 U_JG_GAMAL,
01517 U_JG_HAH,
01518 U_JG_TEH_MARBUTA_GOAL,
01519 U_JG_HAMZA_ON_HEH_GOAL=U_JG_TEH_MARBUTA_GOAL,
01520 U_JG_HE,
01521 U_JG_HEH,
01522 U_JG_HEH_GOAL,
01523 U_JG_HETH,
01524 U_JG_KAF,
01525 U_JG_KAPH,
01526 U_JG_KNOTTED_HEH,
01527 U_JG_LAM,
01528 U_JG_LAMADH,
01529 U_JG_MEEM,
01530 U_JG_MIM,
01531 U_JG_NOON,
01532 U_JG_NUN,
01533 U_JG_PE,
01534 U_JG_QAF,
01535 U_JG_QAPH,
01536 U_JG_REH,
01537 U_JG_REVERSED_PE,
01538 U_JG_SAD,
01539 U_JG_SADHE,
01540 U_JG_SEEN,
01541 U_JG_SEMKATH,
01542 U_JG_SHIN,
01543 U_JG_SWASH_KAF,
01544 U_JG_SYRIAC_WAW,
01545 U_JG_TAH,
01546 U_JG_TAW,
01547 U_JG_TEH_MARBUTA,
01548 U_JG_TETH,
01549 U_JG_WAW,
01550 U_JG_YEH,
01551 U_JG_YEH_BARREE,
01552 U_JG_YEH_WITH_TAIL,
01553 U_JG_YUDH,
01554 U_JG_YUDH_HE,
01555 U_JG_ZAIN,
01556 U_JG_FE,
01557 U_JG_KHAPH,
01558 U_JG_ZHAIN,
01559 U_JG_BURUSHASKI_YEH_BARREE,
01560 U_JG_FARSI_YEH,
01561 U_JG_NYA,
01562 U_JG_COUNT
01563 } UJoiningGroup;
01564
01571 typedef enum UGraphemeClusterBreak {
01572 U_GCB_OTHER = 0,
01573 U_GCB_CONTROL = 1,
01574 U_GCB_CR = 2,
01575 U_GCB_EXTEND = 3,
01576 U_GCB_L = 4,
01577 U_GCB_LF = 5,
01578 U_GCB_LV = 6,
01579 U_GCB_LVT = 7,
01580 U_GCB_T = 8,
01581 U_GCB_V = 9,
01582 U_GCB_SPACING_MARK = 10,
01583 U_GCB_PREPEND = 11,
01584 U_GCB_COUNT = 12
01585 } UGraphemeClusterBreak;
01586
01594 typedef enum UWordBreakValues {
01595 U_WB_OTHER = 0,
01596 U_WB_ALETTER = 1,
01597 U_WB_FORMAT = 2,
01598 U_WB_KATAKANA = 3,
01599 U_WB_MIDLETTER = 4,
01600 U_WB_MIDNUM = 5,
01601 U_WB_NUMERIC = 6,
01602 U_WB_EXTENDNUMLET = 7,
01603 U_WB_CR = 8,
01604 U_WB_EXTEND = 9,
01605 U_WB_LF = 10,
01606 U_WB_MIDNUMLET =11,
01607 U_WB_NEWLINE =12,
01608 U_WB_COUNT = 13
01609 } UWordBreakValues;
01610
01617 typedef enum USentenceBreak {
01618 U_SB_OTHER = 0,
01619 U_SB_ATERM = 1,
01620 U_SB_CLOSE = 2,
01621 U_SB_FORMAT = 3,
01622 U_SB_LOWER = 4,
01623 U_SB_NUMERIC = 5,
01624 U_SB_OLETTER = 6,
01625 U_SB_SEP = 7,
01626 U_SB_SP = 8,
01627 U_SB_STERM = 9,
01628 U_SB_UPPER = 10,
01629 U_SB_CR = 11,
01630 U_SB_EXTEND = 12,
01631 U_SB_LF = 13,
01632 U_SB_SCONTINUE = 14,
01633 U_SB_COUNT = 15
01634 } USentenceBreak;
01635
01642 typedef enum ULineBreak {
01643 U_LB_UNKNOWN = 0,
01644 U_LB_AMBIGUOUS = 1,
01645 U_LB_ALPHABETIC = 2,
01646 U_LB_BREAK_BOTH = 3,
01647 U_LB_BREAK_AFTER = 4,
01648 U_LB_BREAK_BEFORE = 5,
01649 U_LB_MANDATORY_BREAK = 6,
01650 U_LB_CONTINGENT_BREAK = 7,
01651 U_LB_CLOSE_PUNCTUATION = 8,
01652 U_LB_COMBINING_MARK = 9,
01653 U_LB_CARRIAGE_RETURN = 10,
01654 U_LB_EXCLAMATION = 11,
01655 U_LB_GLUE = 12,
01656 U_LB_HYPHEN = 13,
01657 U_LB_IDEOGRAPHIC = 14,
01658 U_LB_INSEPERABLE = 15,
01660 U_LB_INSEPARABLE=U_LB_INSEPERABLE,
01661 U_LB_INFIX_NUMERIC = 16,
01662 U_LB_LINE_FEED = 17,
01663 U_LB_NONSTARTER = 18,
01664 U_LB_NUMERIC = 19,
01665 U_LB_OPEN_PUNCTUATION = 20,
01666 U_LB_POSTFIX_NUMERIC = 21,
01667 U_LB_PREFIX_NUMERIC = 22,
01668 U_LB_QUOTATION = 23,
01669 U_LB_COMPLEX_CONTEXT = 24,
01670 U_LB_SURROGATE = 25,
01671 U_LB_SPACE = 26,
01672 U_LB_BREAK_SYMBOLS = 27,
01673 U_LB_ZWSPACE = 28,
01674 U_LB_NEXT_LINE = 29,
01675 U_LB_WORD_JOINER = 30,
01676 U_LB_H2 = 31,
01677 U_LB_H3 = 32,
01678 U_LB_JL = 33,
01679 U_LB_JT = 34,
01680 U_LB_JV = 35,
01681 U_LB_CLOSE_PARENTHESIS = 36,
01682 U_LB_COUNT = 37
01683 } ULineBreak;
01684
01691 typedef enum UNumericType {
01692 U_NT_NONE,
01693 U_NT_DECIMAL,
01694 U_NT_DIGIT,
01695 U_NT_NUMERIC,
01696 U_NT_COUNT
01697 } UNumericType;
01698
01705 typedef enum UHangulSyllableType {
01706 U_HST_NOT_APPLICABLE,
01707 U_HST_LEADING_JAMO,
01708 U_HST_VOWEL_JAMO,
01709 U_HST_TRAILING_JAMO,
01710 U_HST_LV_SYLLABLE,
01711 U_HST_LVT_SYLLABLE,
01712 U_HST_COUNT
01713 } UHangulSyllableType;
01714
01741 U_STABLE UBool U_EXPORT2
01742 u_hasBinaryProperty(UChar32 c, UProperty which);
01743
01756 U_STABLE UBool U_EXPORT2
01757 u_isUAlphabetic(UChar32 c);
01758
01771 U_STABLE UBool U_EXPORT2
01772 u_isULowercase(UChar32 c);
01773
01786 U_STABLE UBool U_EXPORT2
01787 u_isUUppercase(UChar32 c);
01788
01807 U_STABLE UBool U_EXPORT2
01808 u_isUWhiteSpace(UChar32 c);
01809
01847 U_STABLE int32_t U_EXPORT2
01848 u_getIntPropertyValue(UChar32 c, UProperty which);
01849
01868 U_STABLE int32_t U_EXPORT2
01869 u_getIntPropertyMinValue(UProperty which);
01870
01897 U_STABLE int32_t U_EXPORT2
01898 u_getIntPropertyMaxValue(UProperty which);
01899
01920 U_STABLE double U_EXPORT2
01921 u_getNumericValue(UChar32 c);
01922
01930 #define U_NO_NUMERIC_VALUE ((double)-123456789.)
01931
01955 U_STABLE UBool U_EXPORT2
01956 u_islower(UChar32 c);
01957
01982 U_STABLE UBool U_EXPORT2
01983 u_isupper(UChar32 c);
01984
01999 U_STABLE UBool U_EXPORT2
02000 u_istitle(UChar32 c);
02001
02020 U_STABLE UBool U_EXPORT2
02021 u_isdigit(UChar32 c);
02022
02041 U_STABLE UBool U_EXPORT2
02042 u_isalpha(UChar32 c);
02043
02062 U_STABLE UBool U_EXPORT2
02063 u_isalnum(UChar32 c);
02064
02085 U_STABLE UBool U_EXPORT2
02086 u_isxdigit(UChar32 c);
02087
02101 U_STABLE UBool U_EXPORT2
02102 u_ispunct(UChar32 c);
02103
02120 U_STABLE UBool U_EXPORT2
02121 u_isgraph(UChar32 c);
02122
02149 U_STABLE UBool U_EXPORT2
02150 u_isblank(UChar32 c);
02151
02174 U_STABLE UBool U_EXPORT2
02175 u_isdefined(UChar32 c);
02176
02195 U_STABLE UBool U_EXPORT2
02196 u_isspace(UChar32 c);
02197
02216 U_STABLE UBool U_EXPORT2
02217 u_isJavaSpaceChar(UChar32 c);
02218
02256 U_STABLE UBool U_EXPORT2
02257 u_isWhitespace(UChar32 c);
02258
02280 U_STABLE UBool U_EXPORT2
02281 u_iscntrl(UChar32 c);
02282
02295 U_STABLE UBool U_EXPORT2
02296 u_isISOControl(UChar32 c);
02297
02313 U_STABLE UBool U_EXPORT2
02314 u_isprint(UChar32 c);
02315
02334 U_STABLE UBool U_EXPORT2
02335 u_isbase(UChar32 c);
02336
02353 U_STABLE UCharDirection U_EXPORT2
02354 u_charDirection(UChar32 c);
02355
02371 U_STABLE UBool U_EXPORT2
02372 u_isMirrored(UChar32 c);
02373
02393 U_STABLE UChar32 U_EXPORT2
02394 u_charMirror(UChar32 c);
02395
02407 U_STABLE int8_t U_EXPORT2
02408 u_charType(UChar32 c);
02409
02423 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
02424
02442 typedef UBool U_CALLCONV
02443 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
02444
02464 U_STABLE void U_EXPORT2
02465 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
02466
02467 #if !UCONFIG_NO_NORMALIZATION
02468
02476 U_STABLE uint8_t U_EXPORT2
02477 u_getCombiningClass(UChar32 c);
02478
02479 #endif
02480
02504 U_STABLE int32_t U_EXPORT2
02505 u_charDigitValue(UChar32 c);
02506
02516 U_STABLE UBlockCode U_EXPORT2
02517 ublock_getCode(UChar32 c);
02518
02551 U_STABLE int32_t U_EXPORT2
02552 u_charName(UChar32 code, UCharNameChoice nameChoice,
02553 char *buffer, int32_t bufferLength,
02554 UErrorCode *pErrorCode);
02555
02581 U_STABLE int32_t U_EXPORT2
02582 u_getISOComment(UChar32 c,
02583 char *dest, int32_t destCapacity,
02584 UErrorCode *pErrorCode);
02585
02606 U_STABLE UChar32 U_EXPORT2
02607 u_charFromName(UCharNameChoice nameChoice,
02608 const char *name,
02609 UErrorCode *pErrorCode);
02610
02628 typedef UBool U_CALLCONV UEnumCharNamesFn(void *context,
02629 UChar32 code,
02630 UCharNameChoice nameChoice,
02631 const char *name,
02632 int32_t length);
02633
02655 U_STABLE void U_EXPORT2
02656 u_enumCharNames(UChar32 start, UChar32 limit,
02657 UEnumCharNamesFn *fn,
02658 void *context,
02659 UCharNameChoice nameChoice,
02660 UErrorCode *pErrorCode);
02661
02693 U_STABLE const char* U_EXPORT2
02694 u_getPropertyName(UProperty property,
02695 UPropertyNameChoice nameChoice);
02696
02716 U_STABLE UProperty U_EXPORT2
02717 u_getPropertyEnum(const char* alias);
02718
02766 U_STABLE const char* U_EXPORT2
02767 u_getPropertyValueName(UProperty property,
02768 int32_t value,
02769 UPropertyNameChoice nameChoice);
02770
02802 U_STABLE int32_t U_EXPORT2
02803 u_getPropertyValueEnum(UProperty property,
02804 const char* alias);
02805
02823 U_STABLE UBool U_EXPORT2
02824 u_isIDStart(UChar32 c);
02825
02847 U_STABLE UBool U_EXPORT2
02848 u_isIDPart(UChar32 c);
02849
02870 U_STABLE UBool U_EXPORT2
02871 u_isIDIgnorable(UChar32 c);
02872
02889 U_STABLE UBool U_EXPORT2
02890 u_isJavaIDStart(UChar32 c);
02891
02910 U_STABLE UBool U_EXPORT2
02911 u_isJavaIDPart(UChar32 c);
02912
02935 U_STABLE UChar32 U_EXPORT2
02936 u_tolower(UChar32 c);
02937
02960 U_STABLE UChar32 U_EXPORT2
02961 u_toupper(UChar32 c);
02962
02985 U_STABLE UChar32 U_EXPORT2
02986 u_totitle(UChar32 c);
02987
02989 #define U_FOLD_CASE_DEFAULT 0
02990
03007 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
03008
03031 U_STABLE UChar32 U_EXPORT2
03032 u_foldCase(UChar32 c, uint32_t options);
03033
03072 U_STABLE int32_t U_EXPORT2
03073 u_digit(UChar32 ch, int8_t radix);
03074
03103 U_STABLE UChar32 U_EXPORT2
03104 u_forDigit(int32_t digit, int8_t radix);
03105
03120 U_STABLE void U_EXPORT2
03121 u_charAge(UChar32 c, UVersionInfo versionArray);
03122
03134 U_STABLE void U_EXPORT2
03135 u_getUnicodeVersion(UVersionInfo versionArray);
03136
03137 #if !UCONFIG_NO_NORMALIZATION
03138
03159 U_STABLE int32_t U_EXPORT2
03160 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
03161
03162 #endif
03163
03164
03165 U_CDECL_END
03166
03167 #endif
03168