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 "4.0.1"
00043
00103 #define UCHAR_MIN_VALUE 0
00104
00113 #define UCHAR_MAX_VALUE 0x10ffff
00114
00119 #define U_MASK(x) ((uint32_t)1<<(x))
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00153 typedef enum UProperty {
00154
00155
00156
00157
00158
00159
00160
00161
00162
00165 UCHAR_ALPHABETIC=0,
00167 UCHAR_BINARY_START=UCHAR_ALPHABETIC,
00169 UCHAR_ASCII_HEX_DIGIT,
00173 UCHAR_BIDI_CONTROL,
00178 UCHAR_BIDI_MIRRORED,
00180 UCHAR_DASH,
00184 UCHAR_DEFAULT_IGNORABLE_CODE_POINT,
00187 UCHAR_DEPRECATED,
00190 UCHAR_DIACRITIC,
00194 UCHAR_EXTENDER,
00198 UCHAR_FULL_COMPOSITION_EXCLUSION,
00202 UCHAR_GRAPHEME_BASE,
00206 UCHAR_GRAPHEME_EXTEND,
00209 UCHAR_GRAPHEME_LINK,
00212 UCHAR_HEX_DIGIT,
00215 UCHAR_HYPHEN,
00220 UCHAR_ID_CONTINUE,
00224 UCHAR_ID_START,
00227 UCHAR_IDEOGRAPHIC,
00231 UCHAR_IDS_BINARY_OPERATOR,
00235 UCHAR_IDS_TRINARY_OPERATOR,
00238 UCHAR_JOIN_CONTROL,
00242 UCHAR_LOGICAL_ORDER_EXCEPTION,
00245 UCHAR_LOWERCASE,
00247 UCHAR_MATH,
00251 UCHAR_NONCHARACTER_CODE_POINT,
00253 UCHAR_QUOTATION_MARK,
00257 UCHAR_RADICAL,
00262 UCHAR_SOFT_DOTTED,
00266 UCHAR_TERMINAL_PUNCTUATION,
00270 UCHAR_UNIFIED_IDEOGRAPH,
00273 UCHAR_UPPERCASE,
00277 UCHAR_WHITE_SPACE,
00281 UCHAR_XID_CONTINUE,
00284 UCHAR_XID_START,
00288 UCHAR_CASE_SENSITIVE,
00293 UCHAR_S_TERM,
00299 UCHAR_VARIATION_SELECTOR,
00322 UCHAR_NFD_INERT,
00331 UCHAR_NFKD_INERT,
00340 UCHAR_NFC_INERT,
00349 UCHAR_NFKC_INERT,
00360 UCHAR_SEGMENT_STARTER,
00362 UCHAR_BINARY_LIMIT,
00363
00366 UCHAR_BIDI_CLASS=0x1000,
00368 UCHAR_INT_START=UCHAR_BIDI_CLASS,
00371 UCHAR_BLOCK,
00374 UCHAR_CANONICAL_COMBINING_CLASS,
00377 UCHAR_DECOMPOSITION_TYPE,
00381 UCHAR_EAST_ASIAN_WIDTH,
00384 UCHAR_GENERAL_CATEGORY,
00387 UCHAR_JOINING_GROUP,
00390 UCHAR_JOINING_TYPE,
00393 UCHAR_LINE_BREAK,
00396 UCHAR_NUMERIC_TYPE,
00399 UCHAR_SCRIPT,
00402 UCHAR_HANGUL_SYLLABLE_TYPE,
00405 UCHAR_NFD_QUICK_CHECK,
00408 UCHAR_NFKD_QUICK_CHECK,
00411 UCHAR_NFC_QUICK_CHECK,
00414 UCHAR_NFKC_QUICK_CHECK,
00421 UCHAR_LEAD_CANONICAL_COMBINING_CLASS,
00428 UCHAR_TRAIL_CANONICAL_COMBINING_CLASS,
00430 UCHAR_INT_LIMIT,
00431
00440 UCHAR_GENERAL_CATEGORY_MASK=0x2000,
00442 UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK,
00444 UCHAR_MASK_LIMIT,
00445
00448 UCHAR_NUMERIC_VALUE=0x3000,
00450 UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE,
00452 UCHAR_DOUBLE_LIMIT,
00453
00456 UCHAR_AGE=0x4000,
00458 UCHAR_STRING_START=UCHAR_AGE,
00461 UCHAR_BIDI_MIRRORING_GLYPH,
00464 UCHAR_CASE_FOLDING,
00467 UCHAR_ISO_COMMENT,
00470 UCHAR_LOWERCASE_MAPPING,
00473 UCHAR_NAME,
00476 UCHAR_SIMPLE_CASE_FOLDING,
00479 UCHAR_SIMPLE_LOWERCASE_MAPPING,
00482 UCHAR_SIMPLE_TITLECASE_MAPPING,
00485 UCHAR_SIMPLE_UPPERCASE_MAPPING,
00488 UCHAR_TITLECASE_MAPPING,
00491 UCHAR_UNICODE_1_NAME,
00494 UCHAR_UPPERCASE_MAPPING,
00496 UCHAR_STRING_LIMIT,
00497
00499 UCHAR_INVALID_CODE = -1
00500 } UProperty;
00501
00507 typedef enum UCharCategory
00508 {
00512 U_UNASSIGNED = 0,
00514 U_GENERAL_OTHER_TYPES = 0,
00516 U_UPPERCASE_LETTER = 1,
00518 U_LOWERCASE_LETTER = 2,
00520 U_TITLECASE_LETTER = 3,
00522 U_MODIFIER_LETTER = 4,
00524 U_OTHER_LETTER = 5,
00526 U_NON_SPACING_MARK = 6,
00528 U_ENCLOSING_MARK = 7,
00530 U_COMBINING_SPACING_MARK = 8,
00532 U_DECIMAL_DIGIT_NUMBER = 9,
00534 U_LETTER_NUMBER = 10,
00536 U_OTHER_NUMBER = 11,
00538 U_SPACE_SEPARATOR = 12,
00540 U_LINE_SEPARATOR = 13,
00542 U_PARAGRAPH_SEPARATOR = 14,
00544 U_CONTROL_CHAR = 15,
00546 U_FORMAT_CHAR = 16,
00548 U_PRIVATE_USE_CHAR = 17,
00550 U_SURROGATE = 18,
00552 U_DASH_PUNCTUATION = 19,
00554 U_START_PUNCTUATION = 20,
00556 U_END_PUNCTUATION = 21,
00558 U_CONNECTOR_PUNCTUATION = 22,
00560 U_OTHER_PUNCTUATION = 23,
00562 U_MATH_SYMBOL = 24,
00564 U_CURRENCY_SYMBOL = 25,
00566 U_MODIFIER_SYMBOL = 26,
00568 U_OTHER_SYMBOL = 27,
00570 U_INITIAL_PUNCTUATION = 28,
00572 U_FINAL_PUNCTUATION = 29,
00574 U_CHAR_CATEGORY_COUNT
00575 } UCharCategory;
00576
00591 #define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES)
00592
00594 #define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER)
00595
00596 #define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER)
00597
00598 #define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER)
00599
00600 #define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER)
00601
00602 #define U_GC_LO_MASK U_MASK(U_OTHER_LETTER)
00603
00605 #define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK)
00606
00607 #define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK)
00608
00609 #define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK)
00610
00612 #define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER)
00613
00614 #define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER)
00615
00616 #define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER)
00617
00619 #define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR)
00620
00621 #define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR)
00622
00623 #define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR)
00624
00626 #define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR)
00627
00628 #define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR)
00629
00630 #define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR)
00631
00632 #define U_GC_CS_MASK U_MASK(U_SURROGATE)
00633
00635 #define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION)
00636
00637 #define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION)
00638
00639 #define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION)
00640
00641 #define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION)
00642
00643 #define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION)
00644
00646 #define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL)
00647
00648 #define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL)
00649
00650 #define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL)
00651
00652 #define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL)
00653
00655 #define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION)
00656
00657 #define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION)
00658
00659
00661 #define U_GC_L_MASK \
00662 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
00663
00665 #define U_GC_LC_MASK \
00666 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
00667
00669 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
00670
00672 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
00673
00675 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
00676
00678 #define U_GC_C_MASK \
00679 (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
00680
00682 #define U_GC_P_MASK \
00683 (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
00684 U_GC_PI_MASK|U_GC_PF_MASK)
00685
00687 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
00688
00693 typedef enum UCharDirection {
00697 U_LEFT_TO_RIGHT = 0,
00699 U_RIGHT_TO_LEFT = 1,
00701 U_EUROPEAN_NUMBER = 2,
00703 U_EUROPEAN_NUMBER_SEPARATOR = 3,
00705 U_EUROPEAN_NUMBER_TERMINATOR = 4,
00707 U_ARABIC_NUMBER = 5,
00709 U_COMMON_NUMBER_SEPARATOR = 6,
00711 U_BLOCK_SEPARATOR = 7,
00713 U_SEGMENT_SEPARATOR = 8,
00715 U_WHITE_SPACE_NEUTRAL = 9,
00717 U_OTHER_NEUTRAL = 10,
00719 U_LEFT_TO_RIGHT_EMBEDDING = 11,
00721 U_LEFT_TO_RIGHT_OVERRIDE = 12,
00723 U_RIGHT_TO_LEFT_ARABIC = 13,
00725 U_RIGHT_TO_LEFT_EMBEDDING = 14,
00727 U_RIGHT_TO_LEFT_OVERRIDE = 15,
00729 U_POP_DIRECTIONAL_FORMAT = 16,
00731 U_DIR_NON_SPACING_MARK = 17,
00733 U_BOUNDARY_NEUTRAL = 18,
00735 U_CHAR_DIRECTION_COUNT
00736 } UCharDirection;
00737
00742 enum UBlockCode {
00743
00745 UBLOCK_NO_BLOCK = 0,
00746
00748 UBLOCK_BASIC_LATIN = 1,
00749
00751 UBLOCK_LATIN_1_SUPPLEMENT=2,
00752
00754 UBLOCK_LATIN_EXTENDED_A =3,
00755
00757 UBLOCK_LATIN_EXTENDED_B =4,
00758
00760 UBLOCK_IPA_EXTENSIONS =5,
00761
00763 UBLOCK_SPACING_MODIFIER_LETTERS =6,
00764
00766 UBLOCK_COMBINING_DIACRITICAL_MARKS =7,
00767
00772 UBLOCK_GREEK =8,
00773
00775 UBLOCK_CYRILLIC =9,
00776
00778 UBLOCK_ARMENIAN =10,
00779
00781 UBLOCK_HEBREW =11,
00782
00784 UBLOCK_ARABIC =12,
00785
00787 UBLOCK_SYRIAC =13,
00788
00790 UBLOCK_THAANA =14,
00791
00793 UBLOCK_DEVANAGARI =15,
00794
00796 UBLOCK_BENGALI =16,
00797
00799 UBLOCK_GURMUKHI =17,
00800
00802 UBLOCK_GUJARATI =18,
00803
00805 UBLOCK_ORIYA =19,
00806
00808 UBLOCK_TAMIL =20,
00809
00811 UBLOCK_TELUGU =21,
00812
00814 UBLOCK_KANNADA =22,
00815
00817 UBLOCK_MALAYALAM =23,
00818
00820 UBLOCK_SINHALA =24,
00821
00823 UBLOCK_THAI =25,
00824
00826 UBLOCK_LAO =26,
00827
00829 UBLOCK_TIBETAN =27,
00830
00832 UBLOCK_MYANMAR =28,
00833
00835 UBLOCK_GEORGIAN =29,
00836
00838 UBLOCK_HANGUL_JAMO =30,
00839
00841 UBLOCK_ETHIOPIC =31,
00842
00844 UBLOCK_CHEROKEE =32,
00845
00847 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33,
00848
00850 UBLOCK_OGHAM =34,
00851
00853 UBLOCK_RUNIC =35,
00854
00856 UBLOCK_KHMER =36,
00857
00859 UBLOCK_MONGOLIAN =37,
00860
00862 UBLOCK_LATIN_EXTENDED_ADDITIONAL =38,
00863
00865 UBLOCK_GREEK_EXTENDED =39,
00866
00868 UBLOCK_GENERAL_PUNCTUATION =40,
00869
00871 UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41,
00872
00874 UBLOCK_CURRENCY_SYMBOLS =42,
00875
00880 UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43,
00881
00883 UBLOCK_LETTERLIKE_SYMBOLS =44,
00884
00886 UBLOCK_NUMBER_FORMS =45,
00887
00889 UBLOCK_ARROWS =46,
00890
00892 UBLOCK_MATHEMATICAL_OPERATORS =47,
00893
00895 UBLOCK_MISCELLANEOUS_TECHNICAL =48,
00896
00898 UBLOCK_CONTROL_PICTURES =49,
00899
00901 UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50,
00902
00904 UBLOCK_ENCLOSED_ALPHANUMERICS =51,
00905
00907 UBLOCK_BOX_DRAWING =52,
00908
00910 UBLOCK_BLOCK_ELEMENTS =53,
00911
00913 UBLOCK_GEOMETRIC_SHAPES =54,
00914
00916 UBLOCK_MISCELLANEOUS_SYMBOLS =55,
00917
00919 UBLOCK_DINGBATS =56,
00920
00922 UBLOCK_BRAILLE_PATTERNS =57,
00923
00925 UBLOCK_CJK_RADICALS_SUPPLEMENT =58,
00926
00928 UBLOCK_KANGXI_RADICALS =59,
00929
00931 UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60,
00932
00934 UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61,
00935
00937 UBLOCK_HIRAGANA =62,
00938
00940 UBLOCK_KATAKANA =63,
00941
00943 UBLOCK_BOPOMOFO =64,
00944
00946 UBLOCK_HANGUL_COMPATIBILITY_JAMO =65,
00947
00949 UBLOCK_KANBUN =66,
00950
00952 UBLOCK_BOPOMOFO_EXTENDED =67,
00953
00955 UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68,
00956
00958 UBLOCK_CJK_COMPATIBILITY =69,
00959
00961 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70,
00962
00964 UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71,
00965
00967 UBLOCK_YI_SYLLABLES =72,
00968
00970 UBLOCK_YI_RADICALS =73,
00971
00973 UBLOCK_HANGUL_SYLLABLES =74,
00974
00976 UBLOCK_HIGH_SURROGATES =75,
00977
00979 UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76,
00980
00982 UBLOCK_LOW_SURROGATES =77,
00983
00993 UBLOCK_PRIVATE_USE = 78,
01003 UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE,
01004
01006 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79,
01007
01009 UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80,
01010
01012 UBLOCK_ARABIC_PRESENTATION_FORMS_A =81,
01013
01015 UBLOCK_COMBINING_HALF_MARKS =82,
01016
01018 UBLOCK_CJK_COMPATIBILITY_FORMS =83,
01019
01021 UBLOCK_SMALL_FORM_VARIANTS =84,
01022
01024 UBLOCK_ARABIC_PRESENTATION_FORMS_B =85,
01025
01027 UBLOCK_SPECIALS =86,
01028
01030 UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87,
01031
01032
01033
01035 UBLOCK_OLD_ITALIC = 88 ,
01037 UBLOCK_GOTHIC = 89 ,
01039 UBLOCK_DESERET = 90 ,
01041 UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 ,
01043 UBLOCK_MUSICAL_SYMBOLS = 92 ,
01045 UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93 ,
01047 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94 ,
01049 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 ,
01051 UBLOCK_TAGS = 96,
01052
01053
01054
01059 UBLOCK_CYRILLIC_SUPPLEMENTARY = 97,
01061 UBLOCK_CYRILLIC_SUPPLEMENT = UBLOCK_CYRILLIC_SUPPLEMENTARY,
01063 UBLOCK_TAGALOG = 98,
01065 UBLOCK_HANUNOO = 99,
01067 UBLOCK_BUHID = 100,
01069 UBLOCK_TAGBANWA = 101,
01071 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102,
01073 UBLOCK_SUPPLEMENTAL_ARROWS_A = 103,
01075 UBLOCK_SUPPLEMENTAL_ARROWS_B = 104,
01077 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105,
01079 UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106,
01081 UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107,
01083 UBLOCK_VARIATION_SELECTORS = 108,
01085 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109,
01087 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110,
01088
01089
01090
01092 UBLOCK_LIMBU = 111,
01094 UBLOCK_TAI_LE = 112,
01096 UBLOCK_KHMER_SYMBOLS = 113,
01098 UBLOCK_PHONETIC_EXTENSIONS = 114,
01100 UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115,
01102 UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116,
01104 UBLOCK_LINEAR_B_SYLLABARY = 117,
01106 UBLOCK_LINEAR_B_IDEOGRAMS = 118,
01108 UBLOCK_AEGEAN_NUMBERS = 119,
01110 UBLOCK_UGARITIC = 120,
01112 UBLOCK_SHAVIAN = 121,
01114 UBLOCK_OSMANYA = 122,
01116 UBLOCK_CYPRIOT_SYLLABARY = 123,
01118 UBLOCK_TAI_XUAN_JING_SYMBOLS = 124,
01120 UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125,
01121
01123 UBLOCK_COUNT,
01124
01126 UBLOCK_INVALID_CODE=-1
01127 };
01128
01130 typedef enum UBlockCode UBlockCode;
01131
01139 typedef enum UEastAsianWidth {
01140 U_EA_NEUTRAL,
01141 U_EA_AMBIGUOUS,
01142 U_EA_HALFWIDTH,
01143 U_EA_FULLWIDTH,
01144 U_EA_NARROW,
01145 U_EA_WIDE,
01146 U_EA_COUNT
01147 } UEastAsianWidth;
01148
01149
01150
01151
01152
01164 typedef enum UCharNameChoice {
01165 U_UNICODE_CHAR_NAME,
01166 U_UNICODE_10_CHAR_NAME,
01167 U_EXTENDED_CHAR_NAME,
01168 U_CHAR_NAME_CHOICE_COUNT
01169 } UCharNameChoice;
01170
01184 typedef enum UPropertyNameChoice {
01185 U_SHORT_PROPERTY_NAME,
01186 U_LONG_PROPERTY_NAME,
01187 U_PROPERTY_NAME_CHOICE_COUNT
01188 } UPropertyNameChoice;
01189
01196 typedef enum UDecompositionType {
01197 U_DT_NONE,
01198 U_DT_CANONICAL,
01199 U_DT_COMPAT,
01200 U_DT_CIRCLE,
01201 U_DT_FINAL,
01202 U_DT_FONT,
01203 U_DT_FRACTION,
01204 U_DT_INITIAL,
01205 U_DT_ISOLATED,
01206 U_DT_MEDIAL,
01207 U_DT_NARROW,
01208 U_DT_NOBREAK,
01209 U_DT_SMALL,
01210 U_DT_SQUARE,
01211 U_DT_SUB,
01212 U_DT_SUPER,
01213 U_DT_VERTICAL,
01214 U_DT_WIDE,
01215 U_DT_COUNT
01216 } UDecompositionType;
01217
01224 typedef enum UJoiningType {
01225 U_JT_NON_JOINING,
01226 U_JT_JOIN_CAUSING,
01227 U_JT_DUAL_JOINING,
01228 U_JT_LEFT_JOINING,
01229 U_JT_RIGHT_JOINING,
01230 U_JT_TRANSPARENT,
01231 U_JT_COUNT
01232 } UJoiningType;
01233
01240 typedef enum UJoiningGroup {
01241 U_JG_NO_JOINING_GROUP,
01242 U_JG_AIN,
01243 U_JG_ALAPH,
01244 U_JG_ALEF,
01245 U_JG_BEH,
01246 U_JG_BETH,
01247 U_JG_DAL,
01248 U_JG_DALATH_RISH,
01249 U_JG_E,
01250 U_JG_FEH,
01251 U_JG_FINAL_SEMKATH,
01252 U_JG_GAF,
01253 U_JG_GAMAL,
01254 U_JG_HAH,
01255 U_JG_HAMZA_ON_HEH_GOAL,
01256 U_JG_HE,
01257 U_JG_HEH,
01258 U_JG_HEH_GOAL,
01259 U_JG_HETH,
01260 U_JG_KAF,
01261 U_JG_KAPH,
01262 U_JG_KNOTTED_HEH,
01263 U_JG_LAM,
01264 U_JG_LAMADH,
01265 U_JG_MEEM,
01266 U_JG_MIM,
01267 U_JG_NOON,
01268 U_JG_NUN,
01269 U_JG_PE,
01270 U_JG_QAF,
01271 U_JG_QAPH,
01272 U_JG_REH,
01273 U_JG_REVERSED_PE,
01274 U_JG_SAD,
01275 U_JG_SADHE,
01276 U_JG_SEEN,
01277 U_JG_SEMKATH,
01278 U_JG_SHIN,
01279 U_JG_SWASH_KAF,
01280 U_JG_SYRIAC_WAW,
01281 U_JG_TAH,
01282 U_JG_TAW,
01283 U_JG_TEH_MARBUTA,
01284 U_JG_TETH,
01285 U_JG_WAW,
01286 U_JG_YEH,
01287 U_JG_YEH_BARREE,
01288 U_JG_YEH_WITH_TAIL,
01289 U_JG_YUDH,
01290 U_JG_YUDH_HE,
01291 U_JG_ZAIN,
01292 U_JG_FE,
01293 U_JG_KHAPH,
01294 U_JG_ZHAIN,
01295 U_JG_COUNT
01296 } UJoiningGroup;
01297
01304 typedef enum ULineBreak {
01305 U_LB_UNKNOWN,
01306 U_LB_AMBIGUOUS,
01307 U_LB_ALPHABETIC,
01308 U_LB_BREAK_BOTH,
01309 U_LB_BREAK_AFTER,
01310 U_LB_BREAK_BEFORE,
01311 U_LB_MANDATORY_BREAK,
01312 U_LB_CONTINGENT_BREAK,
01313 U_LB_CLOSE_PUNCTUATION,
01314 U_LB_COMBINING_MARK,
01315 U_LB_CARRIAGE_RETURN,
01316 U_LB_EXCLAMATION,
01317 U_LB_GLUE,
01318 U_LB_HYPHEN,
01319 U_LB_IDEOGRAPHIC,
01320 U_LB_INSEPERABLE,
01322 U_LB_INSEPARABLE=U_LB_INSEPERABLE,
01323 U_LB_INFIX_NUMERIC,
01324 U_LB_LINE_FEED,
01325 U_LB_NONSTARTER,
01326 U_LB_NUMERIC,
01327 U_LB_OPEN_PUNCTUATION,
01328 U_LB_POSTFIX_NUMERIC,
01329 U_LB_PREFIX_NUMERIC,
01330 U_LB_QUOTATION,
01331 U_LB_COMPLEX_CONTEXT,
01332 U_LB_SURROGATE,
01333 U_LB_SPACE,
01334 U_LB_BREAK_SYMBOLS,
01335 U_LB_ZWSPACE,
01336 U_LB_NEXT_LINE,
01337 U_LB_WORD_JOINER,
01338 U_LB_COUNT
01339 } ULineBreak;
01340
01347 typedef enum UNumericType {
01348 U_NT_NONE,
01349 U_NT_DECIMAL,
01350 U_NT_DIGIT,
01351 U_NT_NUMERIC,
01352 U_NT_COUNT
01353 } UNumericType;
01354
01361 typedef enum UHangulSyllableType {
01362 U_HST_NOT_APPLICABLE,
01363 U_HST_LEADING_JAMO,
01364 U_HST_VOWEL_JAMO,
01365 U_HST_TRAILING_JAMO,
01366 U_HST_LV_SYLLABLE,
01367 U_HST_LVT_SYLLABLE,
01368 U_HST_COUNT
01369 } UHangulSyllableType;
01370
01397 U_STABLE UBool U_EXPORT2
01398 u_hasBinaryProperty(UChar32 c, UProperty which);
01399
01412 U_STABLE UBool U_EXPORT2
01413 u_isUAlphabetic(UChar32 c);
01414
01427 U_STABLE UBool U_EXPORT2
01428 u_isULowercase(UChar32 c);
01429
01442 U_STABLE UBool U_EXPORT2
01443 u_isUUppercase(UChar32 c);
01444
01463 U_STABLE UBool U_EXPORT2
01464 u_isUWhiteSpace(UChar32 c);
01465
01503 U_STABLE int32_t U_EXPORT2
01504 u_getIntPropertyValue(UChar32 c, UProperty which);
01505
01524 U_STABLE int32_t U_EXPORT2
01525 u_getIntPropertyMinValue(UProperty which);
01526
01553 U_STABLE int32_t U_EXPORT2
01554 u_getIntPropertyMaxValue(UProperty which);
01555
01576 U_STABLE double U_EXPORT2
01577 u_getNumericValue(UChar32 c);
01578
01586 #define U_NO_NUMERIC_VALUE ((double)-123456789.)
01587
01612 U_STABLE UBool U_EXPORT2
01613 u_islower(UChar32 c);
01614
01639 U_STABLE UBool U_EXPORT2
01640 u_isupper(UChar32 c);
01641
01656 U_STABLE UBool U_EXPORT2
01657 u_istitle(UChar32 c);
01658
01677 U_STABLE UBool U_EXPORT2
01678 u_isdigit(UChar32 c);
01679
01698 U_STABLE UBool U_EXPORT2
01699 u_isalpha(UChar32 c);
01700
01719 U_STABLE UBool U_EXPORT2
01720 u_isalnum(UChar32 c);
01721
01742 U_STABLE UBool U_EXPORT2
01743 u_isxdigit(UChar32 c);
01744
01758 U_STABLE UBool U_EXPORT2
01759 u_ispunct(UChar32 c);
01760
01777 U_STABLE UBool U_EXPORT2
01778 u_isgraph(UChar32 c);
01779
01806 U_STABLE UBool U_EXPORT2
01807 u_isblank(UChar32 c);
01808
01831 U_STABLE UBool U_EXPORT2
01832 u_isdefined(UChar32 c);
01833
01852 U_STABLE UBool U_EXPORT2
01853 u_isspace(UChar32 c);
01854
01873 U_STABLE UBool U_EXPORT2
01874 u_isJavaSpaceChar(UChar32 c);
01875
01907 U_STABLE UBool U_EXPORT2
01908 u_isWhitespace(UChar32 c);
01909
01931 U_STABLE UBool U_EXPORT2
01932 u_iscntrl(UChar32 c);
01933
01946 U_STABLE UBool U_EXPORT2
01947 u_isISOControl(UChar32 c);
01948
01964 U_STABLE UBool U_EXPORT2
01965 u_isprint(UChar32 c);
01966
01985 U_STABLE UBool U_EXPORT2
01986 u_isbase(UChar32 c);
01987
02004 U_STABLE UCharDirection U_EXPORT2
02005 u_charDirection(UChar32 c);
02006
02022 U_STABLE UBool U_EXPORT2
02023 u_isMirrored(UChar32 c);
02024
02044 U_STABLE UChar32 U_EXPORT2
02045 u_charMirror(UChar32 c);
02046
02058 U_STABLE int8_t U_EXPORT2
02059 u_charType(UChar32 c);
02060
02074 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
02075
02093 typedef UBool U_CALLCONV
02094 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
02095
02115 U_STABLE void U_EXPORT2
02116 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
02117
02118 #if !UCONFIG_NO_NORMALIZATION
02119
02127 U_STABLE uint8_t U_EXPORT2
02128 u_getCombiningClass(UChar32 c);
02129
02130 #endif
02131
02155 U_STABLE int32_t U_EXPORT2
02156 u_charDigitValue(UChar32 c);
02157
02167 U_STABLE UBlockCode U_EXPORT2
02168 ublock_getCode(UChar32 c);
02169
02202 U_STABLE int32_t U_EXPORT2
02203 u_charName(UChar32 code, UCharNameChoice nameChoice,
02204 char *buffer, int32_t bufferLength,
02205 UErrorCode *pErrorCode);
02206
02229 U_STABLE int32_t U_EXPORT2
02230 u_getISOComment(UChar32 c,
02231 char *dest, int32_t destCapacity,
02232 UErrorCode *pErrorCode);
02233
02254 U_STABLE UChar32 U_EXPORT2
02255 u_charFromName(UCharNameChoice nameChoice,
02256 const char *name,
02257 UErrorCode *pErrorCode);
02258
02276 typedef UBool UEnumCharNamesFn(void *context,
02277 UChar32 code,
02278 UCharNameChoice nameChoice,
02279 const char *name,
02280 int32_t length);
02281
02303 U_STABLE void U_EXPORT2
02304 u_enumCharNames(UChar32 start, UChar32 limit,
02305 UEnumCharNamesFn *fn,
02306 void *context,
02307 UCharNameChoice nameChoice,
02308 UErrorCode *pErrorCode);
02309
02341 U_STABLE const char* U_EXPORT2
02342 u_getPropertyName(UProperty property,
02343 UPropertyNameChoice nameChoice);
02344
02364 U_STABLE UProperty U_EXPORT2
02365 u_getPropertyEnum(const char* alias);
02366
02414 U_STABLE const char* U_EXPORT2
02415 u_getPropertyValueName(UProperty property,
02416 int32_t value,
02417 UPropertyNameChoice nameChoice);
02418
02450 U_STABLE int32_t U_EXPORT2
02451 u_getPropertyValueEnum(UProperty property,
02452 const char* alias);
02453
02471 U_STABLE UBool U_EXPORT2
02472 u_isIDStart(UChar32 c);
02473
02495 U_STABLE UBool U_EXPORT2
02496 u_isIDPart(UChar32 c);
02497
02520 U_STABLE UBool U_EXPORT2
02521 u_isIDIgnorable(UChar32 c);
02522
02539 U_STABLE UBool U_EXPORT2
02540 u_isJavaIDStart(UChar32 c);
02541
02560 U_STABLE UBool U_EXPORT2
02561 u_isJavaIDPart(UChar32 c);
02562
02581 U_STABLE UChar32 U_EXPORT2
02582 u_tolower(UChar32 c);
02583
02602 U_STABLE UChar32 U_EXPORT2
02603 u_toupper(UChar32 c);
02604
02623 U_STABLE UChar32 U_EXPORT2
02624 u_totitle(UChar32 c);
02625
02627 #define U_FOLD_CASE_DEFAULT 0
02628
02645 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
02646
02665 U_STABLE UChar32 U_EXPORT2
02666 u_foldCase(UChar32 c, uint32_t options);
02667
02706 U_STABLE int32_t U_EXPORT2
02707 u_digit(UChar32 ch, int8_t radix);
02708
02737 U_STABLE UChar32 U_EXPORT2
02738 u_forDigit(int32_t digit, int8_t radix);
02739
02754 U_STABLE void U_EXPORT2
02755 u_charAge(UChar32 c, UVersionInfo versionArray);
02756
02768 U_STABLE void U_EXPORT2
02769 u_getUnicodeVersion(UVersionInfo versionArray);
02770
02792 U_STABLE int32_t U_EXPORT2
02793 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
02794
02795 U_CDECL_END
02796
02797 #endif
02798