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 "5.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
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
00564 UCHAR_INVALID_CODE = -1
00565 } UProperty;
00566
00572 typedef enum UCharCategory
00573 {
00577 U_UNASSIGNED = 0,
00579 U_GENERAL_OTHER_TYPES = 0,
00581 U_UPPERCASE_LETTER = 1,
00583 U_LOWERCASE_LETTER = 2,
00585 U_TITLECASE_LETTER = 3,
00587 U_MODIFIER_LETTER = 4,
00589 U_OTHER_LETTER = 5,
00591 U_NON_SPACING_MARK = 6,
00593 U_ENCLOSING_MARK = 7,
00595 U_COMBINING_SPACING_MARK = 8,
00597 U_DECIMAL_DIGIT_NUMBER = 9,
00599 U_LETTER_NUMBER = 10,
00601 U_OTHER_NUMBER = 11,
00603 U_SPACE_SEPARATOR = 12,
00605 U_LINE_SEPARATOR = 13,
00607 U_PARAGRAPH_SEPARATOR = 14,
00609 U_CONTROL_CHAR = 15,
00611 U_FORMAT_CHAR = 16,
00613 U_PRIVATE_USE_CHAR = 17,
00615 U_SURROGATE = 18,
00617 U_DASH_PUNCTUATION = 19,
00619 U_START_PUNCTUATION = 20,
00621 U_END_PUNCTUATION = 21,
00623 U_CONNECTOR_PUNCTUATION = 22,
00625 U_OTHER_PUNCTUATION = 23,
00627 U_MATH_SYMBOL = 24,
00629 U_CURRENCY_SYMBOL = 25,
00631 U_MODIFIER_SYMBOL = 26,
00633 U_OTHER_SYMBOL = 27,
00635 U_INITIAL_PUNCTUATION = 28,
00637 U_FINAL_PUNCTUATION = 29,
00639 U_CHAR_CATEGORY_COUNT
00640 } UCharCategory;
00641
00656 #define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES)
00657
00659 #define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER)
00660
00661 #define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER)
00662
00663 #define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER)
00664
00665 #define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER)
00666
00667 #define U_GC_LO_MASK U_MASK(U_OTHER_LETTER)
00668
00670 #define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK)
00671
00672 #define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK)
00673
00674 #define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK)
00675
00677 #define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER)
00678
00679 #define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER)
00680
00681 #define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER)
00682
00684 #define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR)
00685
00686 #define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR)
00687
00688 #define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR)
00689
00691 #define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR)
00692
00693 #define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR)
00694
00695 #define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR)
00696
00697 #define U_GC_CS_MASK U_MASK(U_SURROGATE)
00698
00700 #define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION)
00701
00702 #define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION)
00703
00704 #define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION)
00705
00706 #define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION)
00707
00708 #define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION)
00709
00711 #define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL)
00712
00713 #define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL)
00714
00715 #define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL)
00716
00717 #define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL)
00718
00720 #define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION)
00721
00722 #define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION)
00723
00724
00726 #define U_GC_L_MASK \
00727 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
00728
00730 #define U_GC_LC_MASK \
00731 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
00732
00734 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
00735
00737 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
00738
00740 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
00741
00743 #define U_GC_C_MASK \
00744 (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
00745
00747 #define U_GC_P_MASK \
00748 (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
00749 U_GC_PI_MASK|U_GC_PF_MASK)
00750
00752 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
00753
00758 typedef enum UCharDirection {
00762 U_LEFT_TO_RIGHT = 0,
00764 U_RIGHT_TO_LEFT = 1,
00766 U_EUROPEAN_NUMBER = 2,
00768 U_EUROPEAN_NUMBER_SEPARATOR = 3,
00770 U_EUROPEAN_NUMBER_TERMINATOR = 4,
00772 U_ARABIC_NUMBER = 5,
00774 U_COMMON_NUMBER_SEPARATOR = 6,
00776 U_BLOCK_SEPARATOR = 7,
00778 U_SEGMENT_SEPARATOR = 8,
00780 U_WHITE_SPACE_NEUTRAL = 9,
00782 U_OTHER_NEUTRAL = 10,
00784 U_LEFT_TO_RIGHT_EMBEDDING = 11,
00786 U_LEFT_TO_RIGHT_OVERRIDE = 12,
00788 U_RIGHT_TO_LEFT_ARABIC = 13,
00790 U_RIGHT_TO_LEFT_EMBEDDING = 14,
00792 U_RIGHT_TO_LEFT_OVERRIDE = 15,
00794 U_POP_DIRECTIONAL_FORMAT = 16,
00796 U_DIR_NON_SPACING_MARK = 17,
00798 U_BOUNDARY_NEUTRAL = 18,
00800 U_CHAR_DIRECTION_COUNT
00801 } UCharDirection;
00802
00807 enum UBlockCode {
00808
00810 UBLOCK_NO_BLOCK = 0,
00811
00813 UBLOCK_BASIC_LATIN = 1,
00814
00816 UBLOCK_LATIN_1_SUPPLEMENT=2,
00817
00819 UBLOCK_LATIN_EXTENDED_A =3,
00820
00822 UBLOCK_LATIN_EXTENDED_B =4,
00823
00825 UBLOCK_IPA_EXTENSIONS =5,
00826
00828 UBLOCK_SPACING_MODIFIER_LETTERS =6,
00829
00831 UBLOCK_COMBINING_DIACRITICAL_MARKS =7,
00832
00837 UBLOCK_GREEK =8,
00838
00840 UBLOCK_CYRILLIC =9,
00841
00843 UBLOCK_ARMENIAN =10,
00844
00846 UBLOCK_HEBREW =11,
00847
00849 UBLOCK_ARABIC =12,
00850
00852 UBLOCK_SYRIAC =13,
00853
00855 UBLOCK_THAANA =14,
00856
00858 UBLOCK_DEVANAGARI =15,
00859
00861 UBLOCK_BENGALI =16,
00862
00864 UBLOCK_GURMUKHI =17,
00865
00867 UBLOCK_GUJARATI =18,
00868
00870 UBLOCK_ORIYA =19,
00871
00873 UBLOCK_TAMIL =20,
00874
00876 UBLOCK_TELUGU =21,
00877
00879 UBLOCK_KANNADA =22,
00880
00882 UBLOCK_MALAYALAM =23,
00883
00885 UBLOCK_SINHALA =24,
00886
00888 UBLOCK_THAI =25,
00889
00891 UBLOCK_LAO =26,
00892
00894 UBLOCK_TIBETAN =27,
00895
00897 UBLOCK_MYANMAR =28,
00898
00900 UBLOCK_GEORGIAN =29,
00901
00903 UBLOCK_HANGUL_JAMO =30,
00904
00906 UBLOCK_ETHIOPIC =31,
00907
00909 UBLOCK_CHEROKEE =32,
00910
00912 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33,
00913
00915 UBLOCK_OGHAM =34,
00916
00918 UBLOCK_RUNIC =35,
00919
00921 UBLOCK_KHMER =36,
00922
00924 UBLOCK_MONGOLIAN =37,
00925
00927 UBLOCK_LATIN_EXTENDED_ADDITIONAL =38,
00928
00930 UBLOCK_GREEK_EXTENDED =39,
00931
00933 UBLOCK_GENERAL_PUNCTUATION =40,
00934
00936 UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41,
00937
00939 UBLOCK_CURRENCY_SYMBOLS =42,
00940
00945 UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43,
00946
00948 UBLOCK_LETTERLIKE_SYMBOLS =44,
00949
00951 UBLOCK_NUMBER_FORMS =45,
00952
00954 UBLOCK_ARROWS =46,
00955
00957 UBLOCK_MATHEMATICAL_OPERATORS =47,
00958
00960 UBLOCK_MISCELLANEOUS_TECHNICAL =48,
00961
00963 UBLOCK_CONTROL_PICTURES =49,
00964
00966 UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50,
00967
00969 UBLOCK_ENCLOSED_ALPHANUMERICS =51,
00970
00972 UBLOCK_BOX_DRAWING =52,
00973
00975 UBLOCK_BLOCK_ELEMENTS =53,
00976
00978 UBLOCK_GEOMETRIC_SHAPES =54,
00979
00981 UBLOCK_MISCELLANEOUS_SYMBOLS =55,
00982
00984 UBLOCK_DINGBATS =56,
00985
00987 UBLOCK_BRAILLE_PATTERNS =57,
00988
00990 UBLOCK_CJK_RADICALS_SUPPLEMENT =58,
00991
00993 UBLOCK_KANGXI_RADICALS =59,
00994
00996 UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60,
00997
00999 UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61,
01000
01002 UBLOCK_HIRAGANA =62,
01003
01005 UBLOCK_KATAKANA =63,
01006
01008 UBLOCK_BOPOMOFO =64,
01009
01011 UBLOCK_HANGUL_COMPATIBILITY_JAMO =65,
01012
01014 UBLOCK_KANBUN =66,
01015
01017 UBLOCK_BOPOMOFO_EXTENDED =67,
01018
01020 UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68,
01021
01023 UBLOCK_CJK_COMPATIBILITY =69,
01024
01026 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70,
01027
01029 UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71,
01030
01032 UBLOCK_YI_SYLLABLES =72,
01033
01035 UBLOCK_YI_RADICALS =73,
01036
01038 UBLOCK_HANGUL_SYLLABLES =74,
01039
01041 UBLOCK_HIGH_SURROGATES =75,
01042
01044 UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76,
01045
01047 UBLOCK_LOW_SURROGATES =77,
01048
01058 UBLOCK_PRIVATE_USE = 78,
01068 UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE,
01069
01071 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79,
01072
01074 UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80,
01075
01077 UBLOCK_ARABIC_PRESENTATION_FORMS_A =81,
01078
01080 UBLOCK_COMBINING_HALF_MARKS =82,
01081
01083 UBLOCK_CJK_COMPATIBILITY_FORMS =83,
01084
01086 UBLOCK_SMALL_FORM_VARIANTS =84,
01087
01089 UBLOCK_ARABIC_PRESENTATION_FORMS_B =85,
01090
01092 UBLOCK_SPECIALS =86,
01093
01095 UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87,
01096
01097
01098
01100 UBLOCK_OLD_ITALIC = 88 ,
01102 UBLOCK_GOTHIC = 89 ,
01104 UBLOCK_DESERET = 90 ,
01106 UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 ,
01108 UBLOCK_MUSICAL_SYMBOLS = 92 ,
01110 UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93 ,
01112 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94 ,
01114 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 ,
01116 UBLOCK_TAGS = 96,
01117
01118
01119
01124 UBLOCK_CYRILLIC_SUPPLEMENTARY = 97,
01126 UBLOCK_CYRILLIC_SUPPLEMENT = UBLOCK_CYRILLIC_SUPPLEMENTARY,
01128 UBLOCK_TAGALOG = 98,
01130 UBLOCK_HANUNOO = 99,
01132 UBLOCK_BUHID = 100,
01134 UBLOCK_TAGBANWA = 101,
01136 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102,
01138 UBLOCK_SUPPLEMENTAL_ARROWS_A = 103,
01140 UBLOCK_SUPPLEMENTAL_ARROWS_B = 104,
01142 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105,
01144 UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106,
01146 UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107,
01148 UBLOCK_VARIATION_SELECTORS = 108,
01150 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109,
01152 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110,
01153
01154
01155
01157 UBLOCK_LIMBU = 111,
01159 UBLOCK_TAI_LE = 112,
01161 UBLOCK_KHMER_SYMBOLS = 113,
01163 UBLOCK_PHONETIC_EXTENSIONS = 114,
01165 UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115,
01167 UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116,
01169 UBLOCK_LINEAR_B_SYLLABARY = 117,
01171 UBLOCK_LINEAR_B_IDEOGRAMS = 118,
01173 UBLOCK_AEGEAN_NUMBERS = 119,
01175 UBLOCK_UGARITIC = 120,
01177 UBLOCK_SHAVIAN = 121,
01179 UBLOCK_OSMANYA = 122,
01181 UBLOCK_CYPRIOT_SYLLABARY = 123,
01183 UBLOCK_TAI_XUAN_JING_SYMBOLS = 124,
01185 UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125,
01186
01187
01188
01190 UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION = 126,
01192 UBLOCK_ANCIENT_GREEK_NUMBERS = 127,
01194 UBLOCK_ARABIC_SUPPLEMENT = 128,
01196 UBLOCK_BUGINESE = 129,
01198 UBLOCK_CJK_STROKES = 130,
01200 UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131,
01202 UBLOCK_COPTIC = 132,
01204 UBLOCK_ETHIOPIC_EXTENDED = 133,
01206 UBLOCK_ETHIOPIC_SUPPLEMENT = 134,
01208 UBLOCK_GEORGIAN_SUPPLEMENT = 135,
01210 UBLOCK_GLAGOLITIC = 136,
01212 UBLOCK_KHAROSHTHI = 137,
01214 UBLOCK_MODIFIER_TONE_LETTERS = 138,
01216 UBLOCK_NEW_TAI_LUE = 139,
01218 UBLOCK_OLD_PERSIAN = 140,
01220 UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT = 141,
01222 UBLOCK_SUPPLEMENTAL_PUNCTUATION = 142,
01224 UBLOCK_SYLOTI_NAGRI = 143,
01226 UBLOCK_TIFINAGH = 144,
01228 UBLOCK_VERTICAL_FORMS = 145,
01229
01230
01231
01233 UBLOCK_NKO = 146,
01235 UBLOCK_BALINESE = 147,
01237 UBLOCK_LATIN_EXTENDED_C = 148,
01239 UBLOCK_LATIN_EXTENDED_D = 149,
01241 UBLOCK_PHAGS_PA = 150,
01243 UBLOCK_PHOENICIAN = 151,
01245 UBLOCK_CUNEIFORM = 152,
01247 UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153,
01249 UBLOCK_COUNTING_ROD_NUMERALS = 154,
01250
01251
01252
01254 UBLOCK_SUNDANESE = 155,
01256 UBLOCK_LEPCHA = 156,
01258 UBLOCK_OL_CHIKI = 157,
01260 UBLOCK_CYRILLIC_EXTENDED_A = 158,
01262 UBLOCK_VAI = 159,
01264 UBLOCK_CYRILLIC_EXTENDED_B = 160,
01266 UBLOCK_SAURASHTRA = 161,
01268 UBLOCK_KAYAH_LI = 162,
01270 UBLOCK_REJANG = 163,
01272 UBLOCK_CHAM = 164,
01274 UBLOCK_ANCIENT_SYMBOLS = 165,
01276 UBLOCK_PHAISTOS_DISC = 166,
01278 UBLOCK_LYCIAN = 167,
01280 UBLOCK_CARIAN = 168,
01282 UBLOCK_LYDIAN = 169,
01284 UBLOCK_MAHJONG_TILES = 170,
01286 UBLOCK_DOMINO_TILES = 171,
01287
01288
01289
01291 UBLOCK_SAMARITAN = 172,
01293 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173,
01295 UBLOCK_TAI_THAM = 174,
01297 UBLOCK_VEDIC_EXTENSIONS = 175,
01299 UBLOCK_LISU = 176,
01301 UBLOCK_BAMUM = 177,
01303 UBLOCK_COMMON_INDIC_NUMBER_FORMS = 178,
01305 UBLOCK_DEVANAGARI_EXTENDED = 179,
01307 UBLOCK_HANGUL_JAMO_EXTENDED_A = 180,
01309 UBLOCK_JAVANESE = 181,
01311 UBLOCK_MYANMAR_EXTENDED_A = 182,
01313 UBLOCK_TAI_VIET = 183,
01315 UBLOCK_MEETEI_MAYEK = 184,
01317 UBLOCK_HANGUL_JAMO_EXTENDED_B = 185,
01319 UBLOCK_IMPERIAL_ARAMAIC = 186,
01321 UBLOCK_OLD_SOUTH_ARABIAN = 187,
01323 UBLOCK_AVESTAN = 188,
01325 UBLOCK_INSCRIPTIONAL_PARTHIAN = 189,
01327 UBLOCK_INSCRIPTIONAL_PAHLAVI = 190,
01329 UBLOCK_OLD_TURKIC = 191,
01331 UBLOCK_RUMI_NUMERAL_SYMBOLS = 192,
01333 UBLOCK_KAITHI = 193,
01335 UBLOCK_EGYPTIAN_HIEROGLYPHS = 194,
01337 UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195,
01339 UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196,
01341 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197,
01342
01344 UBLOCK_COUNT = 198,
01345
01347 UBLOCK_INVALID_CODE=-1
01348 };
01349
01351 typedef enum UBlockCode UBlockCode;
01352
01360 typedef enum UEastAsianWidth {
01361 U_EA_NEUTRAL,
01362 U_EA_AMBIGUOUS,
01363 U_EA_HALFWIDTH,
01364 U_EA_FULLWIDTH,
01365 U_EA_NARROW,
01366 U_EA_WIDE,
01367 U_EA_COUNT
01368 } UEastAsianWidth;
01369
01370
01371
01372
01373
01385 typedef enum UCharNameChoice {
01386 U_UNICODE_CHAR_NAME,
01387 U_UNICODE_10_CHAR_NAME,
01388 U_EXTENDED_CHAR_NAME,
01389 U_CHAR_NAME_ALIAS,
01390 U_CHAR_NAME_CHOICE_COUNT
01391 } UCharNameChoice;
01392
01406 typedef enum UPropertyNameChoice {
01407 U_SHORT_PROPERTY_NAME,
01408 U_LONG_PROPERTY_NAME,
01409 U_PROPERTY_NAME_CHOICE_COUNT
01410 } UPropertyNameChoice;
01411
01418 typedef enum UDecompositionType {
01419 U_DT_NONE,
01420 U_DT_CANONICAL,
01421 U_DT_COMPAT,
01422 U_DT_CIRCLE,
01423 U_DT_FINAL,
01424 U_DT_FONT,
01425 U_DT_FRACTION,
01426 U_DT_INITIAL,
01427 U_DT_ISOLATED,
01428 U_DT_MEDIAL,
01429 U_DT_NARROW,
01430 U_DT_NOBREAK,
01431 U_DT_SMALL,
01432 U_DT_SQUARE,
01433 U_DT_SUB,
01434 U_DT_SUPER,
01435 U_DT_VERTICAL,
01436 U_DT_WIDE,
01437 U_DT_COUNT
01438 } UDecompositionType;
01439
01446 typedef enum UJoiningType {
01447 U_JT_NON_JOINING,
01448 U_JT_JOIN_CAUSING,
01449 U_JT_DUAL_JOINING,
01450 U_JT_LEFT_JOINING,
01451 U_JT_RIGHT_JOINING,
01452 U_JT_TRANSPARENT,
01453 U_JT_COUNT
01454 } UJoiningType;
01455
01462 typedef enum UJoiningGroup {
01463 U_JG_NO_JOINING_GROUP,
01464 U_JG_AIN,
01465 U_JG_ALAPH,
01466 U_JG_ALEF,
01467 U_JG_BEH,
01468 U_JG_BETH,
01469 U_JG_DAL,
01470 U_JG_DALATH_RISH,
01471 U_JG_E,
01472 U_JG_FEH,
01473 U_JG_FINAL_SEMKATH,
01474 U_JG_GAF,
01475 U_JG_GAMAL,
01476 U_JG_HAH,
01477 U_JG_HAMZA_ON_HEH_GOAL,
01478 U_JG_HE,
01479 U_JG_HEH,
01480 U_JG_HEH_GOAL,
01481 U_JG_HETH,
01482 U_JG_KAF,
01483 U_JG_KAPH,
01484 U_JG_KNOTTED_HEH,
01485 U_JG_LAM,
01486 U_JG_LAMADH,
01487 U_JG_MEEM,
01488 U_JG_MIM,
01489 U_JG_NOON,
01490 U_JG_NUN,
01491 U_JG_PE,
01492 U_JG_QAF,
01493 U_JG_QAPH,
01494 U_JG_REH,
01495 U_JG_REVERSED_PE,
01496 U_JG_SAD,
01497 U_JG_SADHE,
01498 U_JG_SEEN,
01499 U_JG_SEMKATH,
01500 U_JG_SHIN,
01501 U_JG_SWASH_KAF,
01502 U_JG_SYRIAC_WAW,
01503 U_JG_TAH,
01504 U_JG_TAW,
01505 U_JG_TEH_MARBUTA,
01506 U_JG_TETH,
01507 U_JG_WAW,
01508 U_JG_YEH,
01509 U_JG_YEH_BARREE,
01510 U_JG_YEH_WITH_TAIL,
01511 U_JG_YUDH,
01512 U_JG_YUDH_HE,
01513 U_JG_ZAIN,
01514 U_JG_FE,
01515 U_JG_KHAPH,
01516 U_JG_ZHAIN,
01517 U_JG_BURUSHASKI_YEH_BARREE,
01518 U_JG_FARSI_YEH,
01519 U_JG_NYA,
01520 U_JG_COUNT
01521 } UJoiningGroup;
01522
01529 typedef enum UGraphemeClusterBreak {
01530 U_GCB_OTHER = 0,
01531 U_GCB_CONTROL = 1,
01532 U_GCB_CR = 2,
01533 U_GCB_EXTEND = 3,
01534 U_GCB_L = 4,
01535 U_GCB_LF = 5,
01536 U_GCB_LV = 6,
01537 U_GCB_LVT = 7,
01538 U_GCB_T = 8,
01539 U_GCB_V = 9,
01540 U_GCB_SPACING_MARK = 10,
01541 U_GCB_PREPEND = 11,
01542 U_GCB_COUNT = 12
01543 } UGraphemeClusterBreak;
01544
01552 typedef enum UWordBreakValues {
01553 U_WB_OTHER = 0,
01554 U_WB_ALETTER = 1,
01555 U_WB_FORMAT = 2,
01556 U_WB_KATAKANA = 3,
01557 U_WB_MIDLETTER = 4,
01558 U_WB_MIDNUM = 5,
01559 U_WB_NUMERIC = 6,
01560 U_WB_EXTENDNUMLET = 7,
01561 U_WB_CR = 8,
01562 U_WB_EXTEND = 9,
01563 U_WB_LF = 10,
01564 U_WB_MIDNUMLET =11,
01565 U_WB_NEWLINE =12,
01566 U_WB_COUNT = 13
01567 } UWordBreakValues;
01568
01575 typedef enum USentenceBreak {
01576 U_SB_OTHER = 0,
01577 U_SB_ATERM = 1,
01578 U_SB_CLOSE = 2,
01579 U_SB_FORMAT = 3,
01580 U_SB_LOWER = 4,
01581 U_SB_NUMERIC = 5,
01582 U_SB_OLETTER = 6,
01583 U_SB_SEP = 7,
01584 U_SB_SP = 8,
01585 U_SB_STERM = 9,
01586 U_SB_UPPER = 10,
01587 U_SB_CR = 11,
01588 U_SB_EXTEND = 12,
01589 U_SB_LF = 13,
01590 U_SB_SCONTINUE = 14,
01591 U_SB_COUNT = 15
01592 } USentenceBreak;
01593
01600 typedef enum ULineBreak {
01601 U_LB_UNKNOWN = 0,
01602 U_LB_AMBIGUOUS = 1,
01603 U_LB_ALPHABETIC = 2,
01604 U_LB_BREAK_BOTH = 3,
01605 U_LB_BREAK_AFTER = 4,
01606 U_LB_BREAK_BEFORE = 5,
01607 U_LB_MANDATORY_BREAK = 6,
01608 U_LB_CONTINGENT_BREAK = 7,
01609 U_LB_CLOSE_PUNCTUATION = 8,
01610 U_LB_COMBINING_MARK = 9,
01611 U_LB_CARRIAGE_RETURN = 10,
01612 U_LB_EXCLAMATION = 11,
01613 U_LB_GLUE = 12,
01614 U_LB_HYPHEN = 13,
01615 U_LB_IDEOGRAPHIC = 14,
01616 U_LB_INSEPERABLE = 15,
01618 U_LB_INSEPARABLE=U_LB_INSEPERABLE,
01619 U_LB_INFIX_NUMERIC = 16,
01620 U_LB_LINE_FEED = 17,
01621 U_LB_NONSTARTER = 18,
01622 U_LB_NUMERIC = 19,
01623 U_LB_OPEN_PUNCTUATION = 20,
01624 U_LB_POSTFIX_NUMERIC = 21,
01625 U_LB_PREFIX_NUMERIC = 22,
01626 U_LB_QUOTATION = 23,
01627 U_LB_COMPLEX_CONTEXT = 24,
01628 U_LB_SURROGATE = 25,
01629 U_LB_SPACE = 26,
01630 U_LB_BREAK_SYMBOLS = 27,
01631 U_LB_ZWSPACE = 28,
01632 U_LB_NEXT_LINE = 29,
01633 U_LB_WORD_JOINER = 30,
01634 U_LB_H2 = 31,
01635 U_LB_H3 = 32,
01636 U_LB_JL = 33,
01637 U_LB_JT = 34,
01638 U_LB_JV = 35,
01639 U_LB_CLOSE_PARENTHESIS = 36,
01640 U_LB_COUNT = 37
01641 } ULineBreak;
01642
01649 typedef enum UNumericType {
01650 U_NT_NONE,
01651 U_NT_DECIMAL,
01652 U_NT_DIGIT,
01653 U_NT_NUMERIC,
01654 U_NT_COUNT
01655 } UNumericType;
01656
01663 typedef enum UHangulSyllableType {
01664 U_HST_NOT_APPLICABLE,
01665 U_HST_LEADING_JAMO,
01666 U_HST_VOWEL_JAMO,
01667 U_HST_TRAILING_JAMO,
01668 U_HST_LV_SYLLABLE,
01669 U_HST_LVT_SYLLABLE,
01670 U_HST_COUNT
01671 } UHangulSyllableType;
01672
01699 U_STABLE UBool U_EXPORT2
01700 u_hasBinaryProperty(UChar32 c, UProperty which);
01701
01714 U_STABLE UBool U_EXPORT2
01715 u_isUAlphabetic(UChar32 c);
01716
01729 U_STABLE UBool U_EXPORT2
01730 u_isULowercase(UChar32 c);
01731
01744 U_STABLE UBool U_EXPORT2
01745 u_isUUppercase(UChar32 c);
01746
01765 U_STABLE UBool U_EXPORT2
01766 u_isUWhiteSpace(UChar32 c);
01767
01805 U_STABLE int32_t U_EXPORT2
01806 u_getIntPropertyValue(UChar32 c, UProperty which);
01807
01826 U_STABLE int32_t U_EXPORT2
01827 u_getIntPropertyMinValue(UProperty which);
01828
01855 U_STABLE int32_t U_EXPORT2
01856 u_getIntPropertyMaxValue(UProperty which);
01857
01878 U_STABLE double U_EXPORT2
01879 u_getNumericValue(UChar32 c);
01880
01888 #define U_NO_NUMERIC_VALUE ((double)-123456789.)
01889
01913 U_STABLE UBool U_EXPORT2
01914 u_islower(UChar32 c);
01915
01940 U_STABLE UBool U_EXPORT2
01941 u_isupper(UChar32 c);
01942
01957 U_STABLE UBool U_EXPORT2
01958 u_istitle(UChar32 c);
01959
01978 U_STABLE UBool U_EXPORT2
01979 u_isdigit(UChar32 c);
01980
01999 U_STABLE UBool U_EXPORT2
02000 u_isalpha(UChar32 c);
02001
02020 U_STABLE UBool U_EXPORT2
02021 u_isalnum(UChar32 c);
02022
02043 U_STABLE UBool U_EXPORT2
02044 u_isxdigit(UChar32 c);
02045
02059 U_STABLE UBool U_EXPORT2
02060 u_ispunct(UChar32 c);
02061
02078 U_STABLE UBool U_EXPORT2
02079 u_isgraph(UChar32 c);
02080
02107 U_STABLE UBool U_EXPORT2
02108 u_isblank(UChar32 c);
02109
02132 U_STABLE UBool U_EXPORT2
02133 u_isdefined(UChar32 c);
02134
02153 U_STABLE UBool U_EXPORT2
02154 u_isspace(UChar32 c);
02155
02174 U_STABLE UBool U_EXPORT2
02175 u_isJavaSpaceChar(UChar32 c);
02176
02214 U_STABLE UBool U_EXPORT2
02215 u_isWhitespace(UChar32 c);
02216
02238 U_STABLE UBool U_EXPORT2
02239 u_iscntrl(UChar32 c);
02240
02253 U_STABLE UBool U_EXPORT2
02254 u_isISOControl(UChar32 c);
02255
02271 U_STABLE UBool U_EXPORT2
02272 u_isprint(UChar32 c);
02273
02292 U_STABLE UBool U_EXPORT2
02293 u_isbase(UChar32 c);
02294
02311 U_STABLE UCharDirection U_EXPORT2
02312 u_charDirection(UChar32 c);
02313
02329 U_STABLE UBool U_EXPORT2
02330 u_isMirrored(UChar32 c);
02331
02351 U_STABLE UChar32 U_EXPORT2
02352 u_charMirror(UChar32 c);
02353
02365 U_STABLE int8_t U_EXPORT2
02366 u_charType(UChar32 c);
02367
02381 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
02382
02400 typedef UBool U_CALLCONV
02401 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
02402
02422 U_STABLE void U_EXPORT2
02423 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
02424
02425 #if !UCONFIG_NO_NORMALIZATION
02426
02434 U_STABLE uint8_t U_EXPORT2
02435 u_getCombiningClass(UChar32 c);
02436
02437 #endif
02438
02462 U_STABLE int32_t U_EXPORT2
02463 u_charDigitValue(UChar32 c);
02464
02474 U_STABLE UBlockCode U_EXPORT2
02475 ublock_getCode(UChar32 c);
02476
02509 U_STABLE int32_t U_EXPORT2
02510 u_charName(UChar32 code, UCharNameChoice nameChoice,
02511 char *buffer, int32_t bufferLength,
02512 UErrorCode *pErrorCode);
02513
02539 U_STABLE int32_t U_EXPORT2
02540 u_getISOComment(UChar32 c,
02541 char *dest, int32_t destCapacity,
02542 UErrorCode *pErrorCode);
02543
02564 U_STABLE UChar32 U_EXPORT2
02565 u_charFromName(UCharNameChoice nameChoice,
02566 const char *name,
02567 UErrorCode *pErrorCode);
02568
02586 typedef UBool U_CALLCONV UEnumCharNamesFn(void *context,
02587 UChar32 code,
02588 UCharNameChoice nameChoice,
02589 const char *name,
02590 int32_t length);
02591
02613 U_STABLE void U_EXPORT2
02614 u_enumCharNames(UChar32 start, UChar32 limit,
02615 UEnumCharNamesFn *fn,
02616 void *context,
02617 UCharNameChoice nameChoice,
02618 UErrorCode *pErrorCode);
02619
02651 U_STABLE const char* U_EXPORT2
02652 u_getPropertyName(UProperty property,
02653 UPropertyNameChoice nameChoice);
02654
02674 U_STABLE UProperty U_EXPORT2
02675 u_getPropertyEnum(const char* alias);
02676
02724 U_STABLE const char* U_EXPORT2
02725 u_getPropertyValueName(UProperty property,
02726 int32_t value,
02727 UPropertyNameChoice nameChoice);
02728
02760 U_STABLE int32_t U_EXPORT2
02761 u_getPropertyValueEnum(UProperty property,
02762 const char* alias);
02763
02781 U_STABLE UBool U_EXPORT2
02782 u_isIDStart(UChar32 c);
02783
02805 U_STABLE UBool U_EXPORT2
02806 u_isIDPart(UChar32 c);
02807
02828 U_STABLE UBool U_EXPORT2
02829 u_isIDIgnorable(UChar32 c);
02830
02847 U_STABLE UBool U_EXPORT2
02848 u_isJavaIDStart(UChar32 c);
02849
02868 U_STABLE UBool U_EXPORT2
02869 u_isJavaIDPart(UChar32 c);
02870
02893 U_STABLE UChar32 U_EXPORT2
02894 u_tolower(UChar32 c);
02895
02918 U_STABLE UChar32 U_EXPORT2
02919 u_toupper(UChar32 c);
02920
02943 U_STABLE UChar32 U_EXPORT2
02944 u_totitle(UChar32 c);
02945
02947 #define U_FOLD_CASE_DEFAULT 0
02948
02965 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
02966
02989 U_STABLE UChar32 U_EXPORT2
02990 u_foldCase(UChar32 c, uint32_t options);
02991
03030 U_STABLE int32_t U_EXPORT2
03031 u_digit(UChar32 ch, int8_t radix);
03032
03061 U_STABLE UChar32 U_EXPORT2
03062 u_forDigit(int32_t digit, int8_t radix);
03063
03078 U_STABLE void U_EXPORT2
03079 u_charAge(UChar32 c, UVersionInfo versionArray);
03080
03092 U_STABLE void U_EXPORT2
03093 u_getUnicodeVersion(UVersionInfo versionArray);
03094
03095 #if !UCONFIG_NO_NORMALIZATION
03096
03117 U_STABLE int32_t U_EXPORT2
03118 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
03119
03120 #endif
03121
03122
03123 U_CDECL_END
03124
03125 #endif
03126