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"
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,
00290 UCHAR_BINARY_LIMIT,
00291
00294 UCHAR_BIDI_CLASS=0x1000,
00296 UCHAR_INT_START=UCHAR_BIDI_CLASS,
00299 UCHAR_BLOCK,
00302 UCHAR_CANONICAL_COMBINING_CLASS,
00305 UCHAR_DECOMPOSITION_TYPE,
00309 UCHAR_EAST_ASIAN_WIDTH,
00312 UCHAR_GENERAL_CATEGORY,
00315 UCHAR_JOINING_GROUP,
00318 UCHAR_JOINING_TYPE,
00321 UCHAR_LINE_BREAK,
00324 UCHAR_NUMERIC_TYPE,
00327 UCHAR_SCRIPT,
00330 UCHAR_HANGUL_SYLLABLE_TYPE,
00332 UCHAR_INT_LIMIT,
00333
00342 UCHAR_GENERAL_CATEGORY_MASK=0x2000,
00344 UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK,
00346 UCHAR_MASK_LIMIT,
00347
00350 UCHAR_NUMERIC_VALUE=0x3000,
00352 UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE,
00354 UCHAR_DOUBLE_LIMIT,
00355
00358 UCHAR_AGE=0x4000,
00360 UCHAR_STRING_START=UCHAR_AGE,
00363 UCHAR_BIDI_MIRRORING_GLYPH,
00366 UCHAR_CASE_FOLDING,
00369 UCHAR_ISO_COMMENT,
00372 UCHAR_LOWERCASE_MAPPING,
00375 UCHAR_NAME,
00378 UCHAR_SIMPLE_CASE_FOLDING,
00381 UCHAR_SIMPLE_LOWERCASE_MAPPING,
00384 UCHAR_SIMPLE_TITLECASE_MAPPING,
00387 UCHAR_SIMPLE_UPPERCASE_MAPPING,
00390 UCHAR_TITLECASE_MAPPING,
00393 UCHAR_UNICODE_1_NAME,
00396 UCHAR_UPPERCASE_MAPPING,
00398 UCHAR_STRING_LIMIT,
00399
00401 UCHAR_INVALID_CODE = -1
00402 } UProperty;
00403
00409 typedef enum UCharCategory
00410 {
00414 U_UNASSIGNED = 0,
00416 U_GENERAL_OTHER_TYPES = 0,
00418 U_UPPERCASE_LETTER = 1,
00420 U_LOWERCASE_LETTER = 2,
00422 U_TITLECASE_LETTER = 3,
00424 U_MODIFIER_LETTER = 4,
00426 U_OTHER_LETTER = 5,
00428 U_NON_SPACING_MARK = 6,
00430 U_ENCLOSING_MARK = 7,
00432 U_COMBINING_SPACING_MARK = 8,
00434 U_DECIMAL_DIGIT_NUMBER = 9,
00436 U_LETTER_NUMBER = 10,
00438 U_OTHER_NUMBER = 11,
00440 U_SPACE_SEPARATOR = 12,
00442 U_LINE_SEPARATOR = 13,
00444 U_PARAGRAPH_SEPARATOR = 14,
00446 U_CONTROL_CHAR = 15,
00448 U_FORMAT_CHAR = 16,
00450 U_PRIVATE_USE_CHAR = 17,
00452 U_SURROGATE = 18,
00454 U_DASH_PUNCTUATION = 19,
00456 U_START_PUNCTUATION = 20,
00458 U_END_PUNCTUATION = 21,
00460 U_CONNECTOR_PUNCTUATION = 22,
00462 U_OTHER_PUNCTUATION = 23,
00464 U_MATH_SYMBOL = 24,
00466 U_CURRENCY_SYMBOL = 25,
00468 U_MODIFIER_SYMBOL = 26,
00470 U_OTHER_SYMBOL = 27,
00472 U_INITIAL_PUNCTUATION = 28,
00474 U_FINAL_PUNCTUATION = 29,
00476 U_CHAR_CATEGORY_COUNT
00477 } UCharCategory;
00478
00493 #define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES)
00494
00496 #define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER)
00497
00498 #define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER)
00499
00500 #define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER)
00501
00502 #define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER)
00503
00504 #define U_GC_LO_MASK U_MASK(U_OTHER_LETTER)
00505
00507 #define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK)
00508
00509 #define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK)
00510
00511 #define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK)
00512
00514 #define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER)
00515
00516 #define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER)
00517
00518 #define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER)
00519
00521 #define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR)
00522
00523 #define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR)
00524
00525 #define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR)
00526
00528 #define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR)
00529
00530 #define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR)
00531
00532 #define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR)
00533
00534 #define U_GC_CS_MASK U_MASK(U_SURROGATE)
00535
00537 #define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION)
00538
00539 #define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION)
00540
00541 #define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION)
00542
00543 #define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION)
00544
00545 #define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION)
00546
00548 #define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL)
00549
00550 #define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL)
00551
00552 #define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL)
00553
00554 #define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL)
00555
00557 #define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION)
00558
00559 #define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION)
00560
00561
00563 #define U_GC_L_MASK \
00564 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
00565
00567 #define U_GC_LC_MASK \
00568 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
00569
00571 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
00572
00574 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
00575
00577 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
00578
00580 #define U_GC_C_MASK \
00581 (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
00582
00584 #define U_GC_P_MASK \
00585 (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
00586 U_GC_PI_MASK|U_GC_PF_MASK)
00587
00589 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
00590
00595 typedef enum UCharDirection {
00599 U_LEFT_TO_RIGHT = 0,
00601 U_RIGHT_TO_LEFT = 1,
00603 U_EUROPEAN_NUMBER = 2,
00605 U_EUROPEAN_NUMBER_SEPARATOR = 3,
00607 U_EUROPEAN_NUMBER_TERMINATOR = 4,
00609 U_ARABIC_NUMBER = 5,
00611 U_COMMON_NUMBER_SEPARATOR = 6,
00613 U_BLOCK_SEPARATOR = 7,
00615 U_SEGMENT_SEPARATOR = 8,
00617 U_WHITE_SPACE_NEUTRAL = 9,
00619 U_OTHER_NEUTRAL = 10,
00621 U_LEFT_TO_RIGHT_EMBEDDING = 11,
00623 U_LEFT_TO_RIGHT_OVERRIDE = 12,
00625 U_RIGHT_TO_LEFT_ARABIC = 13,
00627 U_RIGHT_TO_LEFT_EMBEDDING = 14,
00629 U_RIGHT_TO_LEFT_OVERRIDE = 15,
00631 U_POP_DIRECTIONAL_FORMAT = 16,
00633 U_DIR_NON_SPACING_MARK = 17,
00635 U_BOUNDARY_NEUTRAL = 18,
00637 U_CHAR_DIRECTION_COUNT
00638 } UCharDirection;
00639
00644 enum UBlockCode {
00646 UBLOCK_NO_BLOCK = 0,
00647
00649 UBLOCK_BASIC_LATIN = 1,
00650
00652 UBLOCK_LATIN_1_SUPPLEMENT=2,
00653
00655 UBLOCK_LATIN_EXTENDED_A =3,
00656
00658 UBLOCK_LATIN_EXTENDED_B =4,
00659
00661 UBLOCK_IPA_EXTENSIONS =5,
00662
00664 UBLOCK_SPACING_MODIFIER_LETTERS =6,
00665
00667 UBLOCK_COMBINING_DIACRITICAL_MARKS =7,
00668
00673 UBLOCK_GREEK =8,
00674
00676 UBLOCK_CYRILLIC =9,
00677
00679 UBLOCK_ARMENIAN =10,
00680
00682 UBLOCK_HEBREW =11,
00683
00685 UBLOCK_ARABIC =12,
00686
00688 UBLOCK_SYRIAC =13,
00689
00691 UBLOCK_THAANA =14,
00692
00694 UBLOCK_DEVANAGARI =15,
00695
00697 UBLOCK_BENGALI =16,
00698
00700 UBLOCK_GURMUKHI =17,
00701
00703 UBLOCK_GUJARATI =18,
00704
00706 UBLOCK_ORIYA =19,
00707
00709 UBLOCK_TAMIL =20,
00710
00712 UBLOCK_TELUGU =21,
00713
00715 UBLOCK_KANNADA =22,
00716
00718 UBLOCK_MALAYALAM =23,
00719
00721 UBLOCK_SINHALA =24,
00722
00724 UBLOCK_THAI =25,
00725
00727 UBLOCK_LAO =26,
00728
00730 UBLOCK_TIBETAN =27,
00731
00733 UBLOCK_MYANMAR =28,
00734
00736 UBLOCK_GEORGIAN =29,
00737
00739 UBLOCK_HANGUL_JAMO =30,
00740
00742 UBLOCK_ETHIOPIC =31,
00743
00745 UBLOCK_CHEROKEE =32,
00746
00748 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33,
00749
00751 UBLOCK_OGHAM =34,
00752
00754 UBLOCK_RUNIC =35,
00755
00757 UBLOCK_KHMER =36,
00758
00760 UBLOCK_MONGOLIAN =37,
00761
00763 UBLOCK_LATIN_EXTENDED_ADDITIONAL =38,
00764
00766 UBLOCK_GREEK_EXTENDED =39,
00767
00769 UBLOCK_GENERAL_PUNCTUATION =40,
00770
00772 UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41,
00773
00775 UBLOCK_CURRENCY_SYMBOLS =42,
00776
00781 UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43,
00782
00784 UBLOCK_LETTERLIKE_SYMBOLS =44,
00785
00787 UBLOCK_NUMBER_FORMS =45,
00788
00790 UBLOCK_ARROWS =46,
00791
00793 UBLOCK_MATHEMATICAL_OPERATORS =47,
00794
00796 UBLOCK_MISCELLANEOUS_TECHNICAL =48,
00797
00799 UBLOCK_CONTROL_PICTURES =49,
00800
00802 UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50,
00803
00805 UBLOCK_ENCLOSED_ALPHANUMERICS =51,
00806
00808 UBLOCK_BOX_DRAWING =52,
00809
00811 UBLOCK_BLOCK_ELEMENTS =53,
00812
00814 UBLOCK_GEOMETRIC_SHAPES =54,
00815
00817 UBLOCK_MISCELLANEOUS_SYMBOLS =55,
00818
00820 UBLOCK_DINGBATS =56,
00821
00823 UBLOCK_BRAILLE_PATTERNS =57,
00824
00826 UBLOCK_CJK_RADICALS_SUPPLEMENT =58,
00827
00829 UBLOCK_KANGXI_RADICALS =59,
00830
00832 UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60,
00833
00835 UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61,
00836
00838 UBLOCK_HIRAGANA =62,
00839
00841 UBLOCK_KATAKANA =63,
00842
00844 UBLOCK_BOPOMOFO =64,
00845
00847 UBLOCK_HANGUL_COMPATIBILITY_JAMO =65,
00848
00850 UBLOCK_KANBUN =66,
00851
00853 UBLOCK_BOPOMOFO_EXTENDED =67,
00854
00856 UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68,
00857
00859 UBLOCK_CJK_COMPATIBILITY =69,
00860
00862 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70,
00863
00865 UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71,
00866
00868 UBLOCK_YI_SYLLABLES =72,
00869
00871 UBLOCK_YI_RADICALS =73,
00872
00874 UBLOCK_HANGUL_SYLLABLES =74,
00875
00877 UBLOCK_HIGH_SURROGATES =75,
00878
00880 UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76,
00881
00883 UBLOCK_LOW_SURROGATES =77,
00884
00894 UBLOCK_PRIVATE_USE = 78,
00904 UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE,
00905
00907 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79,
00908
00910 UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80,
00911
00913 UBLOCK_ARABIC_PRESENTATION_FORMS_A =81,
00914
00916 UBLOCK_COMBINING_HALF_MARKS =82,
00917
00919 UBLOCK_CJK_COMPATIBILITY_FORMS =83,
00920
00922 UBLOCK_SMALL_FORM_VARIANTS =84,
00923
00925 UBLOCK_ARABIC_PRESENTATION_FORMS_B =85,
00926
00928 UBLOCK_SPECIALS =86,
00929
00931 UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87,
00932
00933
00934
00936 UBLOCK_OLD_ITALIC = 88 ,
00938 UBLOCK_GOTHIC = 89 ,
00940 UBLOCK_DESERET = 90 ,
00942 UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 ,
00944 UBLOCK_MUSICAL_SYMBOLS = 92 ,
00946 UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93 ,
00948 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94 ,
00950 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 ,
00952 UBLOCK_TAGS = 96,
00953
00954
00955
00957 UBLOCK_CYRILLIC_SUPPLEMENTARY = 97,
00959 UBLOCK_TAGALOG = 98,
00961 UBLOCK_HANUNOO = 99,
00963 UBLOCK_BUHID = 100,
00965 UBLOCK_TAGBANWA = 101,
00967 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102,
00969 UBLOCK_SUPPLEMENTAL_ARROWS_A = 103,
00971 UBLOCK_SUPPLEMENTAL_ARROWS_B = 104,
00973 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105,
00975 UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106,
00977 UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107,
00979 UBLOCK_VARIATION_SELECTORS = 108,
00981 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109,
00983 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110,
00984
00985
00986
00988 UBLOCK_LIMBU = 111,
00990 UBLOCK_TAI_LE = 112,
00992 UBLOCK_KHMER_SYMBOLS = 113,
00994 UBLOCK_PHONETIC_EXTENSIONS = 114,
00996 UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115,
00998 UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116,
01000 UBLOCK_LINEAR_B_SYLLABARY = 117,
01002 UBLOCK_LINEAR_B_IDEOGRAMS = 118,
01004 UBLOCK_AEGEAN_NUMBERS = 119,
01006 UBLOCK_UGARITIC = 120,
01008 UBLOCK_SHAVIAN = 121,
01010 UBLOCK_OSMANYA = 122,
01012 UBLOCK_CYPRIOT_SYLLABARY = 123,
01014 UBLOCK_TAI_XUAN_JING_SYMBOLS = 124,
01016 UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125,
01017
01019 UBLOCK_COUNT,
01020
01022 UBLOCK_INVALID_CODE=-1
01023 };
01024
01026 typedef enum UBlockCode UBlockCode;
01027
01035 typedef enum UEastAsianWidth {
01036 U_EA_NEUTRAL,
01037 U_EA_AMBIGUOUS,
01038 U_EA_HALFWIDTH,
01039 U_EA_FULLWIDTH,
01040 U_EA_NARROW,
01041 U_EA_WIDE,
01042 U_EA_COUNT
01043 } UEastAsianWidth;
01044
01045
01046
01047
01048
01060 typedef enum UCharNameChoice {
01061 U_UNICODE_CHAR_NAME,
01062 U_UNICODE_10_CHAR_NAME,
01063 U_EXTENDED_CHAR_NAME,
01064 U_CHAR_NAME_CHOICE_COUNT
01065 } UCharNameChoice;
01066
01080 typedef enum UPropertyNameChoice {
01081 U_SHORT_PROPERTY_NAME,
01082 U_LONG_PROPERTY_NAME,
01083 U_PROPERTY_NAME_CHOICE_COUNT
01084 } UPropertyNameChoice;
01085
01092 typedef enum UDecompositionType {
01093 U_DT_NONE,
01094 U_DT_CANONICAL,
01095 U_DT_COMPAT,
01096 U_DT_CIRCLE,
01097 U_DT_FINAL,
01098 U_DT_FONT,
01099 U_DT_FRACTION,
01100 U_DT_INITIAL,
01101 U_DT_ISOLATED,
01102 U_DT_MEDIAL,
01103 U_DT_NARROW,
01104 U_DT_NOBREAK,
01105 U_DT_SMALL,
01106 U_DT_SQUARE,
01107 U_DT_SUB,
01108 U_DT_SUPER,
01109 U_DT_VERTICAL,
01110 U_DT_WIDE,
01111 U_DT_COUNT
01112 } UDecompositionType;
01113
01120 typedef enum UJoiningType {
01121 U_JT_NON_JOINING,
01122 U_JT_JOIN_CAUSING,
01123 U_JT_DUAL_JOINING,
01124 U_JT_LEFT_JOINING,
01125 U_JT_RIGHT_JOINING,
01126 U_JT_TRANSPARENT,
01127 U_JT_COUNT
01128 } UJoiningType;
01129
01136 typedef enum UJoiningGroup {
01137 U_JG_NO_JOINING_GROUP,
01138 U_JG_AIN,
01139 U_JG_ALAPH,
01140 U_JG_ALEF,
01141 U_JG_BEH,
01142 U_JG_BETH,
01143 U_JG_DAL,
01144 U_JG_DALATH_RISH,
01145 U_JG_E,
01146 U_JG_FEH,
01147 U_JG_FINAL_SEMKATH,
01148 U_JG_GAF,
01149 U_JG_GAMAL,
01150 U_JG_HAH,
01151 U_JG_HAMZA_ON_HEH_GOAL,
01152 U_JG_HE,
01153 U_JG_HEH,
01154 U_JG_HEH_GOAL,
01155 U_JG_HETH,
01156 U_JG_KAF,
01157 U_JG_KAPH,
01158 U_JG_KNOTTED_HEH,
01159 U_JG_LAM,
01160 U_JG_LAMADH,
01161 U_JG_MEEM,
01162 U_JG_MIM,
01163 U_JG_NOON,
01164 U_JG_NUN,
01165 U_JG_PE,
01166 U_JG_QAF,
01167 U_JG_QAPH,
01168 U_JG_REH,
01169 U_JG_REVERSED_PE,
01170 U_JG_SAD,
01171 U_JG_SADHE,
01172 U_JG_SEEN,
01173 U_JG_SEMKATH,
01174 U_JG_SHIN,
01175 U_JG_SWASH_KAF,
01176 U_JG_SYRIAC_WAW,
01177 U_JG_TAH,
01178 U_JG_TAW,
01179 U_JG_TEH_MARBUTA,
01180 U_JG_TETH,
01181 U_JG_WAW,
01182 U_JG_YEH,
01183 U_JG_YEH_BARREE,
01184 U_JG_YEH_WITH_TAIL,
01185 U_JG_YUDH,
01186 U_JG_YUDH_HE,
01187 U_JG_ZAIN,
01188 U_JG_FE,
01189 U_JG_KHAPH,
01190 U_JG_ZHAIN,
01191 U_JG_COUNT
01192 } UJoiningGroup;
01193
01200 typedef enum ULineBreak {
01201 U_LB_UNKNOWN,
01202 U_LB_AMBIGUOUS,
01203 U_LB_ALPHABETIC,
01204 U_LB_BREAK_BOTH,
01205 U_LB_BREAK_AFTER,
01206 U_LB_BREAK_BEFORE,
01207 U_LB_MANDATORY_BREAK,
01208 U_LB_CONTINGENT_BREAK,
01209 U_LB_CLOSE_PUNCTUATION,
01210 U_LB_COMBINING_MARK,
01211 U_LB_CARRIAGE_RETURN,
01212 U_LB_EXCLAMATION,
01213 U_LB_GLUE,
01214 U_LB_HYPHEN,
01215 U_LB_IDEOGRAPHIC,
01216 U_LB_INSEPERABLE,
01217 U_LB_INFIX_NUMERIC,
01218 U_LB_LINE_FEED,
01219 U_LB_NONSTARTER,
01220 U_LB_NUMERIC,
01221 U_LB_OPEN_PUNCTUATION,
01222 U_LB_POSTFIX_NUMERIC,
01223 U_LB_PREFIX_NUMERIC,
01224 U_LB_QUOTATION,
01225 U_LB_COMPLEX_CONTEXT,
01226 U_LB_SURROGATE,
01227 U_LB_SPACE,
01228 U_LB_BREAK_SYMBOLS,
01229 U_LB_ZWSPACE,
01230 U_LB_NEXT_LINE,
01231 U_LB_WORD_JOINER,
01232 U_LB_COUNT
01233 } ULineBreak;
01234
01241 typedef enum UNumericType {
01242 U_NT_NONE,
01243 U_NT_DECIMAL,
01244 U_NT_DIGIT,
01245 U_NT_NUMERIC,
01246 U_NT_COUNT
01247 } UNumericType;
01248
01255 typedef enum UHangulSyllableType {
01256 U_HST_NOT_APPLICABLE,
01257 U_HST_LEADING_JAMO,
01258 U_HST_VOWEL_JAMO,
01259 U_HST_TRAILING_JAMO,
01260 U_HST_LV_SYLLABLE,
01261 U_HST_LVT_SYLLABLE,
01262 U_HST_COUNT
01263 } UHangulSyllableType;
01264
01291 U_CAPI UBool U_EXPORT2
01292 u_hasBinaryProperty(UChar32 c, UProperty which);
01293
01306 U_CAPI UBool U_EXPORT2
01307 u_isUAlphabetic(UChar32 c);
01308
01321 U_CAPI UBool U_EXPORT2
01322 u_isULowercase(UChar32 c);
01323
01336 U_CAPI UBool U_EXPORT2
01337 u_isUUppercase(UChar32 c);
01338
01357 U_CAPI UBool U_EXPORT2
01358 u_isUWhiteSpace(UChar32 c);
01359
01397 U_CAPI int32_t U_EXPORT2
01398 u_getIntPropertyValue(UChar32 c, UProperty which);
01399
01418 U_CAPI int32_t U_EXPORT2
01419 u_getIntPropertyMinValue(UProperty which);
01420
01447 U_CAPI int32_t U_EXPORT2
01448 u_getIntPropertyMaxValue(UProperty which);
01449
01470 U_CAPI double U_EXPORT2
01471 u_getNumericValue(UChar32 c);
01472
01480 #define U_NO_NUMERIC_VALUE ((double)-123456789.)
01481
01506 U_CAPI UBool U_EXPORT2
01507 u_islower(UChar32 c);
01508
01533 U_CAPI UBool U_EXPORT2
01534 u_isupper(UChar32 c);
01535
01550 U_CAPI UBool U_EXPORT2
01551 u_istitle(UChar32 c);
01552
01571 U_CAPI UBool U_EXPORT2
01572 u_isdigit(UChar32 c);
01573
01592 U_CAPI UBool U_EXPORT2
01593 u_isalpha(UChar32 c);
01594
01613 U_CAPI UBool U_EXPORT2
01614 u_isalnum(UChar32 c);
01615
01636 U_CAPI UBool U_EXPORT2
01637 u_isxdigit(UChar32 c);
01638
01652 U_CAPI UBool U_EXPORT2
01653 u_ispunct(UChar32 c);
01654
01671 U_CAPI UBool U_EXPORT2
01672 u_isgraph(UChar32 c);
01673
01700 U_CAPI UBool U_EXPORT2
01701 u_isblank(UChar32 c);
01702
01725 U_CAPI UBool U_EXPORT2
01726 u_isdefined(UChar32 c);
01727
01746 U_CAPI UBool U_EXPORT2
01747 u_isspace(UChar32 c);
01748
01767 U_CAPI UBool U_EXPORT2
01768 u_isJavaSpaceChar(UChar32 c);
01769
01801 U_CAPI UBool U_EXPORT2
01802 u_isWhitespace(UChar32 c);
01803
01825 U_CAPI UBool U_EXPORT2
01826 u_iscntrl(UChar32 c);
01827
01840 U_CAPI UBool U_EXPORT2
01841 u_isISOControl(UChar32 c);
01842
01858 U_CAPI UBool U_EXPORT2
01859 u_isprint(UChar32 c);
01860
01879 U_CAPI UBool U_EXPORT2
01880 u_isbase(UChar32 c);
01881
01898 U_CAPI UCharDirection U_EXPORT2
01899 u_charDirection(UChar32 c);
01900
01916 U_CAPI UBool U_EXPORT2
01917 u_isMirrored(UChar32 c);
01918
01938 U_CAPI UChar32 U_EXPORT2
01939 u_charMirror(UChar32 c);
01940
01952 U_CAPI int8_t U_EXPORT2
01953 u_charType(UChar32 c);
01954
01968 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
01969
01987 typedef UBool U_CALLCONV
01988 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
01989
02009 U_CAPI void U_EXPORT2
02010 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
02011
02012 #if !UCONFIG_NO_NORMALIZATION
02013
02021 U_CAPI uint8_t U_EXPORT2
02022 u_getCombiningClass(UChar32 c);
02023
02024 #endif
02025
02049 U_CAPI int32_t U_EXPORT2
02050 u_charDigitValue(UChar32 c);
02051
02061 U_CAPI UBlockCode U_EXPORT2
02062 ublock_getCode(UChar32 c);
02063
02096 U_CAPI int32_t U_EXPORT2
02097 u_charName(UChar32 code, UCharNameChoice nameChoice,
02098 char *buffer, int32_t bufferLength,
02099 UErrorCode *pErrorCode);
02100
02123 U_CAPI int32_t U_EXPORT2
02124 u_getISOComment(UChar32 c,
02125 char *dest, int32_t destCapacity,
02126 UErrorCode *pErrorCode);
02127
02148 U_CAPI UChar32 U_EXPORT2
02149 u_charFromName(UCharNameChoice nameChoice,
02150 const char *name,
02151 UErrorCode *pErrorCode);
02152
02170 typedef UBool UEnumCharNamesFn(void *context,
02171 UChar32 code,
02172 UCharNameChoice nameChoice,
02173 const char *name,
02174 int32_t length);
02175
02197 U_CAPI void U_EXPORT2
02198 u_enumCharNames(UChar32 start, UChar32 limit,
02199 UEnumCharNamesFn *fn,
02200 void *context,
02201 UCharNameChoice nameChoice,
02202 UErrorCode *pErrorCode);
02203
02235 U_CAPI const char* U_EXPORT2
02236 u_getPropertyName(UProperty property,
02237 UPropertyNameChoice nameChoice);
02238
02258 U_CAPI UProperty U_EXPORT2
02259 u_getPropertyEnum(const char* alias);
02260
02308 U_CAPI const char* U_EXPORT2
02309 u_getPropertyValueName(UProperty property,
02310 int32_t value,
02311 UPropertyNameChoice nameChoice);
02312
02344 U_CAPI int32_t U_EXPORT2
02345 u_getPropertyValueEnum(UProperty property,
02346 const char* alias);
02347
02365 U_CAPI UBool U_EXPORT2
02366 u_isIDStart(UChar32 c);
02367
02389 U_CAPI UBool U_EXPORT2
02390 u_isIDPart(UChar32 c);
02391
02414 U_CAPI UBool U_EXPORT2
02415 u_isIDIgnorable(UChar32 c);
02416
02433 U_CAPI UBool U_EXPORT2
02434 u_isJavaIDStart(UChar32 c);
02435
02454 U_CAPI UBool U_EXPORT2
02455 u_isJavaIDPart(UChar32 c);
02456
02475 U_CAPI UChar32 U_EXPORT2
02476 u_tolower(UChar32 c);
02477
02496 U_CAPI UChar32 U_EXPORT2
02497 u_toupper(UChar32 c);
02498
02517 U_CAPI UChar32 U_EXPORT2
02518 u_totitle(UChar32 c);
02519
02521 #define U_FOLD_CASE_DEFAULT 0
02522
02539 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
02540
02559 U_CAPI UChar32 U_EXPORT2
02560 u_foldCase(UChar32 c, uint32_t options);
02561
02600 U_CAPI int32_t U_EXPORT2
02601 u_digit(UChar32 ch, int8_t radix);
02602
02631 U_CAPI UChar32 U_EXPORT2
02632 u_forDigit(int32_t digit, int8_t radix);
02633
02648 U_CAPI void U_EXPORT2
02649 u_charAge(UChar32 c, UVersionInfo versionArray);
02650
02662 U_CAPI void U_EXPORT2
02663 u_getUnicodeVersion(UVersionInfo versionArray);
02664
02686 U_CAPI int32_t U_EXPORT2
02687 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
02688
02689 U_CDECL_END
02690
02691 #endif
02692