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.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,
00343 UCHAR_NFD_INERT=37,
00352 UCHAR_NFKD_INERT=38,
00361 UCHAR_NFC_INERT=39,
00370 UCHAR_NFKC_INERT=40,
00381 UCHAR_SEGMENT_STARTER=41,
00382 #ifndef U_HIDE_DRAFT_API
00383
00387 UCHAR_PATTERN_SYNTAX=42,
00392 UCHAR_PATTERN_WHITE_SPACE=43,
00397 UCHAR_POSIX_ALNUM=44,
00402 UCHAR_POSIX_BLANK=45,
00407 UCHAR_POSIX_GRAPH=46,
00412 UCHAR_POSIX_PRINT=47,
00417 UCHAR_POSIX_XDIGIT=48,
00418 #endif
00419
00420 UCHAR_BINARY_LIMIT=49,
00421
00424 UCHAR_BIDI_CLASS=0x1000,
00426 UCHAR_INT_START=UCHAR_BIDI_CLASS,
00429 UCHAR_BLOCK=0x1001,
00432 UCHAR_CANONICAL_COMBINING_CLASS=0x1002,
00435 UCHAR_DECOMPOSITION_TYPE=0x1003,
00439 UCHAR_EAST_ASIAN_WIDTH=0x1004,
00442 UCHAR_GENERAL_CATEGORY=0x1005,
00445 UCHAR_JOINING_GROUP=0x1006,
00448 UCHAR_JOINING_TYPE=0x1007,
00451 UCHAR_LINE_BREAK=0x1008,
00454 UCHAR_NUMERIC_TYPE=0x1009,
00457 UCHAR_SCRIPT=0x100A,
00460 UCHAR_HANGUL_SYLLABLE_TYPE=0x100B,
00463 UCHAR_NFD_QUICK_CHECK=0x100C,
00466 UCHAR_NFKD_QUICK_CHECK=0x100D,
00469 UCHAR_NFC_QUICK_CHECK=0x100E,
00472 UCHAR_NFKC_QUICK_CHECK=0x100F,
00479 UCHAR_LEAD_CANONICAL_COMBINING_CLASS=0x1010,
00486 UCHAR_TRAIL_CANONICAL_COMBINING_CLASS=0x1011,
00487 #ifndef U_HIDE_DRAFT_API
00488
00492 UCHAR_GRAPHEME_CLUSTER_BREAK=0x1012,
00497 UCHAR_SENTENCE_BREAK=0x1013,
00502 UCHAR_WORD_BREAK=0x1014,
00503 #endif
00504
00505 UCHAR_INT_LIMIT=0x1015,
00506
00515 UCHAR_GENERAL_CATEGORY_MASK=0x2000,
00517 UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK,
00519 UCHAR_MASK_LIMIT=0x2001,
00520
00523 UCHAR_NUMERIC_VALUE=0x3000,
00525 UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE,
00527 UCHAR_DOUBLE_LIMIT=0x3001,
00528
00531 UCHAR_AGE=0x4000,
00533 UCHAR_STRING_START=UCHAR_AGE,
00536 UCHAR_BIDI_MIRRORING_GLYPH=0x4001,
00539 UCHAR_CASE_FOLDING=0x4002,
00542 UCHAR_ISO_COMMENT=0x4003,
00545 UCHAR_LOWERCASE_MAPPING=0x4004,
00548 UCHAR_NAME=0x4005,
00551 UCHAR_SIMPLE_CASE_FOLDING=0x4006,
00554 UCHAR_SIMPLE_LOWERCASE_MAPPING=0x4007,
00557 UCHAR_SIMPLE_TITLECASE_MAPPING=0x4008,
00560 UCHAR_SIMPLE_UPPERCASE_MAPPING=0x4009,
00563 UCHAR_TITLECASE_MAPPING=0x400A,
00566 UCHAR_UNICODE_1_NAME=0x400B,
00569 UCHAR_UPPERCASE_MAPPING=0x400C,
00571 UCHAR_STRING_LIMIT=0x400D,
00572
00574 UCHAR_INVALID_CODE = -1
00575 } UProperty;
00576
00582 typedef enum UCharCategory
00583 {
00587 U_UNASSIGNED = 0,
00589 U_GENERAL_OTHER_TYPES = 0,
00591 U_UPPERCASE_LETTER = 1,
00593 U_LOWERCASE_LETTER = 2,
00595 U_TITLECASE_LETTER = 3,
00597 U_MODIFIER_LETTER = 4,
00599 U_OTHER_LETTER = 5,
00601 U_NON_SPACING_MARK = 6,
00603 U_ENCLOSING_MARK = 7,
00605 U_COMBINING_SPACING_MARK = 8,
00607 U_DECIMAL_DIGIT_NUMBER = 9,
00609 U_LETTER_NUMBER = 10,
00611 U_OTHER_NUMBER = 11,
00613 U_SPACE_SEPARATOR = 12,
00615 U_LINE_SEPARATOR = 13,
00617 U_PARAGRAPH_SEPARATOR = 14,
00619 U_CONTROL_CHAR = 15,
00621 U_FORMAT_CHAR = 16,
00623 U_PRIVATE_USE_CHAR = 17,
00625 U_SURROGATE = 18,
00627 U_DASH_PUNCTUATION = 19,
00629 U_START_PUNCTUATION = 20,
00631 U_END_PUNCTUATION = 21,
00633 U_CONNECTOR_PUNCTUATION = 22,
00635 U_OTHER_PUNCTUATION = 23,
00637 U_MATH_SYMBOL = 24,
00639 U_CURRENCY_SYMBOL = 25,
00641 U_MODIFIER_SYMBOL = 26,
00643 U_OTHER_SYMBOL = 27,
00645 U_INITIAL_PUNCTUATION = 28,
00647 U_FINAL_PUNCTUATION = 29,
00649 U_CHAR_CATEGORY_COUNT
00650 } UCharCategory;
00651
00666 #define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES)
00667
00669 #define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER)
00670
00671 #define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER)
00672
00673 #define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER)
00674
00675 #define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER)
00676
00677 #define U_GC_LO_MASK U_MASK(U_OTHER_LETTER)
00678
00680 #define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK)
00681
00682 #define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK)
00683
00684 #define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK)
00685
00687 #define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER)
00688
00689 #define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER)
00690
00691 #define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER)
00692
00694 #define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR)
00695
00696 #define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR)
00697
00698 #define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR)
00699
00701 #define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR)
00702
00703 #define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR)
00704
00705 #define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR)
00706
00707 #define U_GC_CS_MASK U_MASK(U_SURROGATE)
00708
00710 #define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION)
00711
00712 #define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION)
00713
00714 #define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION)
00715
00716 #define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION)
00717
00718 #define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION)
00719
00721 #define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL)
00722
00723 #define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL)
00724
00725 #define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL)
00726
00727 #define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL)
00728
00730 #define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION)
00731
00732 #define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION)
00733
00734
00736 #define U_GC_L_MASK \
00737 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
00738
00740 #define U_GC_LC_MASK \
00741 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
00742
00744 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
00745
00747 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
00748
00750 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
00751
00753 #define U_GC_C_MASK \
00754 (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
00755
00757 #define U_GC_P_MASK \
00758 (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
00759 U_GC_PI_MASK|U_GC_PF_MASK)
00760
00762 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
00763
00768 typedef enum UCharDirection {
00772 U_LEFT_TO_RIGHT = 0,
00774 U_RIGHT_TO_LEFT = 1,
00776 U_EUROPEAN_NUMBER = 2,
00778 U_EUROPEAN_NUMBER_SEPARATOR = 3,
00780 U_EUROPEAN_NUMBER_TERMINATOR = 4,
00782 U_ARABIC_NUMBER = 5,
00784 U_COMMON_NUMBER_SEPARATOR = 6,
00786 U_BLOCK_SEPARATOR = 7,
00788 U_SEGMENT_SEPARATOR = 8,
00790 U_WHITE_SPACE_NEUTRAL = 9,
00792 U_OTHER_NEUTRAL = 10,
00794 U_LEFT_TO_RIGHT_EMBEDDING = 11,
00796 U_LEFT_TO_RIGHT_OVERRIDE = 12,
00798 U_RIGHT_TO_LEFT_ARABIC = 13,
00800 U_RIGHT_TO_LEFT_EMBEDDING = 14,
00802 U_RIGHT_TO_LEFT_OVERRIDE = 15,
00804 U_POP_DIRECTIONAL_FORMAT = 16,
00806 U_DIR_NON_SPACING_MARK = 17,
00808 U_BOUNDARY_NEUTRAL = 18,
00810 U_CHAR_DIRECTION_COUNT
00811 } UCharDirection;
00812
00817 enum UBlockCode {
00818
00820 UBLOCK_NO_BLOCK = 0,
00821
00823 UBLOCK_BASIC_LATIN = 1,
00824
00826 UBLOCK_LATIN_1_SUPPLEMENT=2,
00827
00829 UBLOCK_LATIN_EXTENDED_A =3,
00830
00832 UBLOCK_LATIN_EXTENDED_B =4,
00833
00835 UBLOCK_IPA_EXTENSIONS =5,
00836
00838 UBLOCK_SPACING_MODIFIER_LETTERS =6,
00839
00841 UBLOCK_COMBINING_DIACRITICAL_MARKS =7,
00842
00847 UBLOCK_GREEK =8,
00848
00850 UBLOCK_CYRILLIC =9,
00851
00853 UBLOCK_ARMENIAN =10,
00854
00856 UBLOCK_HEBREW =11,
00857
00859 UBLOCK_ARABIC =12,
00860
00862 UBLOCK_SYRIAC =13,
00863
00865 UBLOCK_THAANA =14,
00866
00868 UBLOCK_DEVANAGARI =15,
00869
00871 UBLOCK_BENGALI =16,
00872
00874 UBLOCK_GURMUKHI =17,
00875
00877 UBLOCK_GUJARATI =18,
00878
00880 UBLOCK_ORIYA =19,
00881
00883 UBLOCK_TAMIL =20,
00884
00886 UBLOCK_TELUGU =21,
00887
00889 UBLOCK_KANNADA =22,
00890
00892 UBLOCK_MALAYALAM =23,
00893
00895 UBLOCK_SINHALA =24,
00896
00898 UBLOCK_THAI =25,
00899
00901 UBLOCK_LAO =26,
00902
00904 UBLOCK_TIBETAN =27,
00905
00907 UBLOCK_MYANMAR =28,
00908
00910 UBLOCK_GEORGIAN =29,
00911
00913 UBLOCK_HANGUL_JAMO =30,
00914
00916 UBLOCK_ETHIOPIC =31,
00917
00919 UBLOCK_CHEROKEE =32,
00920
00922 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33,
00923
00925 UBLOCK_OGHAM =34,
00926
00928 UBLOCK_RUNIC =35,
00929
00931 UBLOCK_KHMER =36,
00932
00934 UBLOCK_MONGOLIAN =37,
00935
00937 UBLOCK_LATIN_EXTENDED_ADDITIONAL =38,
00938
00940 UBLOCK_GREEK_EXTENDED =39,
00941
00943 UBLOCK_GENERAL_PUNCTUATION =40,
00944
00946 UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41,
00947
00949 UBLOCK_CURRENCY_SYMBOLS =42,
00950
00955 UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43,
00956
00958 UBLOCK_LETTERLIKE_SYMBOLS =44,
00959
00961 UBLOCK_NUMBER_FORMS =45,
00962
00964 UBLOCK_ARROWS =46,
00965
00967 UBLOCK_MATHEMATICAL_OPERATORS =47,
00968
00970 UBLOCK_MISCELLANEOUS_TECHNICAL =48,
00971
00973 UBLOCK_CONTROL_PICTURES =49,
00974
00976 UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50,
00977
00979 UBLOCK_ENCLOSED_ALPHANUMERICS =51,
00980
00982 UBLOCK_BOX_DRAWING =52,
00983
00985 UBLOCK_BLOCK_ELEMENTS =53,
00986
00988 UBLOCK_GEOMETRIC_SHAPES =54,
00989
00991 UBLOCK_MISCELLANEOUS_SYMBOLS =55,
00992
00994 UBLOCK_DINGBATS =56,
00995
00997 UBLOCK_BRAILLE_PATTERNS =57,
00998
01000 UBLOCK_CJK_RADICALS_SUPPLEMENT =58,
01001
01003 UBLOCK_KANGXI_RADICALS =59,
01004
01006 UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60,
01007
01009 UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61,
01010
01012 UBLOCK_HIRAGANA =62,
01013
01015 UBLOCK_KATAKANA =63,
01016
01018 UBLOCK_BOPOMOFO =64,
01019
01021 UBLOCK_HANGUL_COMPATIBILITY_JAMO =65,
01022
01024 UBLOCK_KANBUN =66,
01025
01027 UBLOCK_BOPOMOFO_EXTENDED =67,
01028
01030 UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68,
01031
01033 UBLOCK_CJK_COMPATIBILITY =69,
01034
01036 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70,
01037
01039 UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71,
01040
01042 UBLOCK_YI_SYLLABLES =72,
01043
01045 UBLOCK_YI_RADICALS =73,
01046
01048 UBLOCK_HANGUL_SYLLABLES =74,
01049
01051 UBLOCK_HIGH_SURROGATES =75,
01052
01054 UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76,
01055
01057 UBLOCK_LOW_SURROGATES =77,
01058
01068 UBLOCK_PRIVATE_USE = 78,
01078 UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE,
01079
01081 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79,
01082
01084 UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80,
01085
01087 UBLOCK_ARABIC_PRESENTATION_FORMS_A =81,
01088
01090 UBLOCK_COMBINING_HALF_MARKS =82,
01091
01093 UBLOCK_CJK_COMPATIBILITY_FORMS =83,
01094
01096 UBLOCK_SMALL_FORM_VARIANTS =84,
01097
01099 UBLOCK_ARABIC_PRESENTATION_FORMS_B =85,
01100
01102 UBLOCK_SPECIALS =86,
01103
01105 UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87,
01106
01107
01108
01110 UBLOCK_OLD_ITALIC = 88 ,
01112 UBLOCK_GOTHIC = 89 ,
01114 UBLOCK_DESERET = 90 ,
01116 UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 ,
01118 UBLOCK_MUSICAL_SYMBOLS = 92 ,
01120 UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93 ,
01122 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94 ,
01124 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 ,
01126 UBLOCK_TAGS = 96,
01127
01128
01129
01134 UBLOCK_CYRILLIC_SUPPLEMENTARY = 97,
01136 UBLOCK_CYRILLIC_SUPPLEMENT = UBLOCK_CYRILLIC_SUPPLEMENTARY,
01138 UBLOCK_TAGALOG = 98,
01140 UBLOCK_HANUNOO = 99,
01142 UBLOCK_BUHID = 100,
01144 UBLOCK_TAGBANWA = 101,
01146 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102,
01148 UBLOCK_SUPPLEMENTAL_ARROWS_A = 103,
01150 UBLOCK_SUPPLEMENTAL_ARROWS_B = 104,
01152 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105,
01154 UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106,
01156 UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107,
01158 UBLOCK_VARIATION_SELECTORS = 108,
01160 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109,
01162 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110,
01163
01164
01165
01167 UBLOCK_LIMBU = 111,
01169 UBLOCK_TAI_LE = 112,
01171 UBLOCK_KHMER_SYMBOLS = 113,
01173 UBLOCK_PHONETIC_EXTENSIONS = 114,
01175 UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115,
01177 UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116,
01179 UBLOCK_LINEAR_B_SYLLABARY = 117,
01181 UBLOCK_LINEAR_B_IDEOGRAMS = 118,
01183 UBLOCK_AEGEAN_NUMBERS = 119,
01185 UBLOCK_UGARITIC = 120,
01187 UBLOCK_SHAVIAN = 121,
01189 UBLOCK_OSMANYA = 122,
01191 UBLOCK_CYPRIOT_SYLLABARY = 123,
01193 UBLOCK_TAI_XUAN_JING_SYMBOLS = 124,
01195 UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125,
01196
01197 #ifndef U_HIDE_DRAFT_API
01198
01199
01201 UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION = 126,
01203 UBLOCK_ANCIENT_GREEK_NUMBERS = 127,
01205 UBLOCK_ARABIC_SUPPLEMENT = 128,
01207 UBLOCK_BUGINESE = 129,
01209 UBLOCK_CJK_STROKES = 130,
01211 UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131,
01213 UBLOCK_COPTIC = 132,
01215 UBLOCK_ETHIOPIC_EXTENDED = 133,
01217 UBLOCK_ETHIOPIC_SUPPLEMENT = 134,
01219 UBLOCK_GEORGIAN_SUPPLEMENT = 135,
01221 UBLOCK_GLAGOLITIC = 136,
01223 UBLOCK_KHAROSHTHI = 137,
01225 UBLOCK_MODIFIER_TONE_LETTERS = 138,
01227 UBLOCK_NEW_TAI_LUE = 139,
01229 UBLOCK_OLD_PERSIAN = 140,
01231 UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT = 141,
01233 UBLOCK_SUPPLEMENTAL_PUNCTUATION = 142,
01235 UBLOCK_SYLOTI_NAGRI = 143,
01237 UBLOCK_TIFINAGH = 144,
01239 UBLOCK_VERTICAL_FORMS = 145,
01240
01241
01242
01244 UBLOCK_NKO = 146,
01246 UBLOCK_BALINESE = 147,
01248 UBLOCK_LATIN_EXTENDED_C = 148,
01250 UBLOCK_LATIN_EXTENDED_D = 149,
01252 UBLOCK_PHAGS_PA = 150,
01254 UBLOCK_PHOENICIAN = 151,
01256 UBLOCK_CUNEIFORM = 152,
01258 UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153,
01260 UBLOCK_COUNTING_ROD_NUMERALS = 154,
01261
01262 #endif
01263
01265 UBLOCK_COUNT = 155,
01266
01268 UBLOCK_INVALID_CODE=-1
01269 };
01270
01272 typedef enum UBlockCode UBlockCode;
01273
01281 typedef enum UEastAsianWidth {
01282 U_EA_NEUTRAL,
01283 U_EA_AMBIGUOUS,
01284 U_EA_HALFWIDTH,
01285 U_EA_FULLWIDTH,
01286 U_EA_NARROW,
01287 U_EA_WIDE,
01288 U_EA_COUNT
01289 } UEastAsianWidth;
01290
01291
01292
01293
01294
01306 typedef enum UCharNameChoice {
01307 U_UNICODE_CHAR_NAME,
01308 U_UNICODE_10_CHAR_NAME,
01309 U_EXTENDED_CHAR_NAME,
01310 U_CHAR_NAME_CHOICE_COUNT
01311 } UCharNameChoice;
01312
01326 typedef enum UPropertyNameChoice {
01327 U_SHORT_PROPERTY_NAME,
01328 U_LONG_PROPERTY_NAME,
01329 U_PROPERTY_NAME_CHOICE_COUNT
01330 } UPropertyNameChoice;
01331
01338 typedef enum UDecompositionType {
01339 U_DT_NONE,
01340 U_DT_CANONICAL,
01341 U_DT_COMPAT,
01342 U_DT_CIRCLE,
01343 U_DT_FINAL,
01344 U_DT_FONT,
01345 U_DT_FRACTION,
01346 U_DT_INITIAL,
01347 U_DT_ISOLATED,
01348 U_DT_MEDIAL,
01349 U_DT_NARROW,
01350 U_DT_NOBREAK,
01351 U_DT_SMALL,
01352 U_DT_SQUARE,
01353 U_DT_SUB,
01354 U_DT_SUPER,
01355 U_DT_VERTICAL,
01356 U_DT_WIDE,
01357 U_DT_COUNT
01358 } UDecompositionType;
01359
01366 typedef enum UJoiningType {
01367 U_JT_NON_JOINING,
01368 U_JT_JOIN_CAUSING,
01369 U_JT_DUAL_JOINING,
01370 U_JT_LEFT_JOINING,
01371 U_JT_RIGHT_JOINING,
01372 U_JT_TRANSPARENT,
01373 U_JT_COUNT
01374 } UJoiningType;
01375
01382 typedef enum UJoiningGroup {
01383 U_JG_NO_JOINING_GROUP,
01384 U_JG_AIN,
01385 U_JG_ALAPH,
01386 U_JG_ALEF,
01387 U_JG_BEH,
01388 U_JG_BETH,
01389 U_JG_DAL,
01390 U_JG_DALATH_RISH,
01391 U_JG_E,
01392 U_JG_FEH,
01393 U_JG_FINAL_SEMKATH,
01394 U_JG_GAF,
01395 U_JG_GAMAL,
01396 U_JG_HAH,
01397 U_JG_HAMZA_ON_HEH_GOAL,
01398 U_JG_HE,
01399 U_JG_HEH,
01400 U_JG_HEH_GOAL,
01401 U_JG_HETH,
01402 U_JG_KAF,
01403 U_JG_KAPH,
01404 U_JG_KNOTTED_HEH,
01405 U_JG_LAM,
01406 U_JG_LAMADH,
01407 U_JG_MEEM,
01408 U_JG_MIM,
01409 U_JG_NOON,
01410 U_JG_NUN,
01411 U_JG_PE,
01412 U_JG_QAF,
01413 U_JG_QAPH,
01414 U_JG_REH,
01415 U_JG_REVERSED_PE,
01416 U_JG_SAD,
01417 U_JG_SADHE,
01418 U_JG_SEEN,
01419 U_JG_SEMKATH,
01420 U_JG_SHIN,
01421 U_JG_SWASH_KAF,
01422 U_JG_SYRIAC_WAW,
01423 U_JG_TAH,
01424 U_JG_TAW,
01425 U_JG_TEH_MARBUTA,
01426 U_JG_TETH,
01427 U_JG_WAW,
01428 U_JG_YEH,
01429 U_JG_YEH_BARREE,
01430 U_JG_YEH_WITH_TAIL,
01431 U_JG_YUDH,
01432 U_JG_YUDH_HE,
01433 U_JG_ZAIN,
01434 U_JG_FE,
01435 U_JG_KHAPH,
01436 U_JG_ZHAIN,
01437 U_JG_COUNT
01438 } UJoiningGroup;
01439
01446 typedef enum UGraphemeClusterBreak {
01447 #ifndef U_HIDE_DRAFT_API
01448 U_GCB_OTHER = 0,
01449 U_GCB_CONTROL = 1,
01450 U_GCB_CR = 2,
01451 U_GCB_EXTEND = 3,
01452 U_GCB_L = 4,
01453 U_GCB_LF = 5,
01454 U_GCB_LV = 6,
01455 U_GCB_LVT = 7,
01456 U_GCB_T = 8,
01457 U_GCB_V = 9,
01458 #endif
01459 U_GCB_COUNT = 10
01460 } UGraphemeClusterBreak;
01461
01469 typedef enum UWordBreakValues {
01470 #ifndef U_HIDE_DRAFT_API
01471 U_WB_OTHER = 0,
01472 U_WB_ALETTER = 1,
01473 U_WB_FORMAT = 2,
01474 U_WB_KATAKANA = 3,
01475 U_WB_MIDLETTER = 4,
01476 U_WB_MIDNUM = 5,
01477 U_WB_NUMERIC = 6,
01478 U_WB_EXTENDNUMLET = 7,
01479 #endif
01480 U_WB_COUNT = 8
01481 } UWordBreakValues;
01482
01489 typedef enum USentenceBreak {
01490 #ifndef U_HIDE_DRAFT_API
01491 U_SB_OTHER = 0,
01492 U_SB_ATERM = 1,
01493 U_SB_CLOSE = 2,
01494 U_SB_FORMAT = 3,
01495 U_SB_LOWER = 4,
01496 U_SB_NUMERIC = 5,
01497 U_SB_OLETTER = 6,
01498 U_SB_SEP = 7,
01499 U_SB_SP = 8,
01500 U_SB_STERM = 9,
01501 U_SB_UPPER = 10,
01502 #endif
01503 U_SB_COUNT = 11
01504 } USentenceBreak;
01505
01512 typedef enum ULineBreak {
01513 U_LB_UNKNOWN = 0,
01514 U_LB_AMBIGUOUS = 1,
01515 U_LB_ALPHABETIC = 2,
01516 U_LB_BREAK_BOTH = 3,
01517 U_LB_BREAK_AFTER = 4,
01518 U_LB_BREAK_BEFORE = 5,
01519 U_LB_MANDATORY_BREAK = 6,
01520 U_LB_CONTINGENT_BREAK = 7,
01521 U_LB_CLOSE_PUNCTUATION = 8,
01522 U_LB_COMBINING_MARK = 9,
01523 U_LB_CARRIAGE_RETURN = 10,
01524 U_LB_EXCLAMATION = 11,
01525 U_LB_GLUE = 12,
01526 U_LB_HYPHEN = 13,
01527 U_LB_IDEOGRAPHIC = 14,
01528 U_LB_INSEPERABLE = 15,
01530 U_LB_INSEPARABLE=U_LB_INSEPERABLE,
01531 U_LB_INFIX_NUMERIC = 16,
01532 U_LB_LINE_FEED = 17,
01533 U_LB_NONSTARTER = 18,
01534 U_LB_NUMERIC = 19,
01535 U_LB_OPEN_PUNCTUATION = 20,
01536 U_LB_POSTFIX_NUMERIC = 21,
01537 U_LB_PREFIX_NUMERIC = 22,
01538 U_LB_QUOTATION = 23,
01539 U_LB_COMPLEX_CONTEXT = 24,
01540 U_LB_SURROGATE = 25,
01541 U_LB_SPACE = 26,
01542 U_LB_BREAK_SYMBOLS = 27,
01543 U_LB_ZWSPACE = 28,
01544 U_LB_NEXT_LINE = 29,
01545 U_LB_WORD_JOINER = 30,
01546 U_LB_H2 = 31,
01547 U_LB_H3 = 32,
01548 U_LB_JL = 33,
01549 U_LB_JT = 34,
01550 U_LB_JV = 35,
01551 U_LB_COUNT = 36
01552 } ULineBreak;
01553
01560 typedef enum UNumericType {
01561 U_NT_NONE,
01562 U_NT_DECIMAL,
01563 U_NT_DIGIT,
01564 U_NT_NUMERIC,
01565 U_NT_COUNT
01566 } UNumericType;
01567
01574 typedef enum UHangulSyllableType {
01575 U_HST_NOT_APPLICABLE,
01576 U_HST_LEADING_JAMO,
01577 U_HST_VOWEL_JAMO,
01578 U_HST_TRAILING_JAMO,
01579 U_HST_LV_SYLLABLE,
01580 U_HST_LVT_SYLLABLE,
01581 U_HST_COUNT
01582 } UHangulSyllableType;
01583
01610 U_STABLE UBool U_EXPORT2
01611 u_hasBinaryProperty(UChar32 c, UProperty which);
01612
01625 U_STABLE UBool U_EXPORT2
01626 u_isUAlphabetic(UChar32 c);
01627
01640 U_STABLE UBool U_EXPORT2
01641 u_isULowercase(UChar32 c);
01642
01655 U_STABLE UBool U_EXPORT2
01656 u_isUUppercase(UChar32 c);
01657
01676 U_STABLE UBool U_EXPORT2
01677 u_isUWhiteSpace(UChar32 c);
01678
01716 U_STABLE int32_t U_EXPORT2
01717 u_getIntPropertyValue(UChar32 c, UProperty which);
01718
01737 U_STABLE int32_t U_EXPORT2
01738 u_getIntPropertyMinValue(UProperty which);
01739
01766 U_STABLE int32_t U_EXPORT2
01767 u_getIntPropertyMaxValue(UProperty which);
01768
01789 U_STABLE double U_EXPORT2
01790 u_getNumericValue(UChar32 c);
01791
01799 #define U_NO_NUMERIC_VALUE ((double)-123456789.)
01800
01824 U_STABLE UBool U_EXPORT2
01825 u_islower(UChar32 c);
01826
01851 U_STABLE UBool U_EXPORT2
01852 u_isupper(UChar32 c);
01853
01868 U_STABLE UBool U_EXPORT2
01869 u_istitle(UChar32 c);
01870
01889 U_STABLE UBool U_EXPORT2
01890 u_isdigit(UChar32 c);
01891
01910 U_STABLE UBool U_EXPORT2
01911 u_isalpha(UChar32 c);
01912
01931 U_STABLE UBool U_EXPORT2
01932 u_isalnum(UChar32 c);
01933
01954 U_STABLE UBool U_EXPORT2
01955 u_isxdigit(UChar32 c);
01956
01970 U_STABLE UBool U_EXPORT2
01971 u_ispunct(UChar32 c);
01972
01989 U_STABLE UBool U_EXPORT2
01990 u_isgraph(UChar32 c);
01991
02018 U_STABLE UBool U_EXPORT2
02019 u_isblank(UChar32 c);
02020
02043 U_STABLE UBool U_EXPORT2
02044 u_isdefined(UChar32 c);
02045
02064 U_STABLE UBool U_EXPORT2
02065 u_isspace(UChar32 c);
02066
02085 U_STABLE UBool U_EXPORT2
02086 u_isJavaSpaceChar(UChar32 c);
02087
02119 U_STABLE UBool U_EXPORT2
02120 u_isWhitespace(UChar32 c);
02121
02143 U_STABLE UBool U_EXPORT2
02144 u_iscntrl(UChar32 c);
02145
02158 U_STABLE UBool U_EXPORT2
02159 u_isISOControl(UChar32 c);
02160
02176 U_STABLE UBool U_EXPORT2
02177 u_isprint(UChar32 c);
02178
02197 U_STABLE UBool U_EXPORT2
02198 u_isbase(UChar32 c);
02199
02216 U_STABLE UCharDirection U_EXPORT2
02217 u_charDirection(UChar32 c);
02218
02234 U_STABLE UBool U_EXPORT2
02235 u_isMirrored(UChar32 c);
02236
02256 U_STABLE UChar32 U_EXPORT2
02257 u_charMirror(UChar32 c);
02258
02270 U_STABLE int8_t U_EXPORT2
02271 u_charType(UChar32 c);
02272
02286 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
02287
02305 typedef UBool U_CALLCONV
02306 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
02307
02327 U_STABLE void U_EXPORT2
02328 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
02329
02330 #if !UCONFIG_NO_NORMALIZATION
02331
02339 U_STABLE uint8_t U_EXPORT2
02340 u_getCombiningClass(UChar32 c);
02341
02342 #endif
02343
02367 U_STABLE int32_t U_EXPORT2
02368 u_charDigitValue(UChar32 c);
02369
02379 U_STABLE UBlockCode U_EXPORT2
02380 ublock_getCode(UChar32 c);
02381
02414 U_STABLE int32_t U_EXPORT2
02415 u_charName(UChar32 code, UCharNameChoice nameChoice,
02416 char *buffer, int32_t bufferLength,
02417 UErrorCode *pErrorCode);
02418
02441 U_STABLE int32_t U_EXPORT2
02442 u_getISOComment(UChar32 c,
02443 char *dest, int32_t destCapacity,
02444 UErrorCode *pErrorCode);
02445
02466 U_STABLE UChar32 U_EXPORT2
02467 u_charFromName(UCharNameChoice nameChoice,
02468 const char *name,
02469 UErrorCode *pErrorCode);
02470
02488 typedef UBool U_CALLCONV UEnumCharNamesFn(void *context,
02489 UChar32 code,
02490 UCharNameChoice nameChoice,
02491 const char *name,
02492 int32_t length);
02493
02515 U_STABLE void U_EXPORT2
02516 u_enumCharNames(UChar32 start, UChar32 limit,
02517 UEnumCharNamesFn *fn,
02518 void *context,
02519 UCharNameChoice nameChoice,
02520 UErrorCode *pErrorCode);
02521
02553 U_STABLE const char* U_EXPORT2
02554 u_getPropertyName(UProperty property,
02555 UPropertyNameChoice nameChoice);
02556
02576 U_STABLE UProperty U_EXPORT2
02577 u_getPropertyEnum(const char* alias);
02578
02626 U_STABLE const char* U_EXPORT2
02627 u_getPropertyValueName(UProperty property,
02628 int32_t value,
02629 UPropertyNameChoice nameChoice);
02630
02662 U_STABLE int32_t U_EXPORT2
02663 u_getPropertyValueEnum(UProperty property,
02664 const char* alias);
02665
02683 U_STABLE UBool U_EXPORT2
02684 u_isIDStart(UChar32 c);
02685
02707 U_STABLE UBool U_EXPORT2
02708 u_isIDPart(UChar32 c);
02709
02732 U_STABLE UBool U_EXPORT2
02733 u_isIDIgnorable(UChar32 c);
02734
02751 U_STABLE UBool U_EXPORT2
02752 u_isJavaIDStart(UChar32 c);
02753
02772 U_STABLE UBool U_EXPORT2
02773 u_isJavaIDPart(UChar32 c);
02774
02797 U_STABLE UChar32 U_EXPORT2
02798 u_tolower(UChar32 c);
02799
02822 U_STABLE UChar32 U_EXPORT2
02823 u_toupper(UChar32 c);
02824
02847 U_STABLE UChar32 U_EXPORT2
02848 u_totitle(UChar32 c);
02849
02851 #define U_FOLD_CASE_DEFAULT 0
02852
02869 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
02870
02893 U_STABLE UChar32 U_EXPORT2
02894 u_foldCase(UChar32 c, uint32_t options);
02895
02934 U_STABLE int32_t U_EXPORT2
02935 u_digit(UChar32 ch, int8_t radix);
02936
02965 U_STABLE UChar32 U_EXPORT2
02966 u_forDigit(int32_t digit, int8_t radix);
02967
02982 U_STABLE void U_EXPORT2
02983 u_charAge(UChar32 c, UVersionInfo versionArray);
02984
02996 U_STABLE void U_EXPORT2
02997 u_getUnicodeVersion(UVersionInfo versionArray);
02998
03020 U_STABLE int32_t U_EXPORT2
03021 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
03022
03023 U_CDECL_END
03024
03025 #endif
03026