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 "3.2"
00043
00065 #define UCHAR_MIN_VALUE 0
00066
00073 #define UCHAR_MAX_VALUE 0x10ffff
00074
00079 #define U_MASK(x) ((uint32_t)1<<(x))
00080
00100 enum UProperty {
00103 UCHAR_ALPHABETIC,
00105 UCHAR_BINARY_START=UCHAR_ALPHABETIC,
00107 UCHAR_ASCII_HEX_DIGIT,
00111 UCHAR_BIDI_CONTROL,
00116 UCHAR_BIDI_MIRRORED,
00118 UCHAR_DASH,
00122 UCHAR_DEFAULT_IGNORABLE_CODE_POINT,
00125 UCHAR_DEPRECATED,
00128 UCHAR_DIACRITIC,
00132 UCHAR_EXTENDER,
00136 UCHAR_FULL_COMPOSITION_EXCLUSION,
00140 UCHAR_GRAPHEME_BASE,
00144 UCHAR_GRAPHEME_EXTEND,
00147 UCHAR_GRAPHEME_LINK,
00150 UCHAR_HEX_DIGIT,
00153 UCHAR_HYPHEN,
00157 UCHAR_ID_CONTINUE,
00161 UCHAR_ID_START,
00164 UCHAR_IDEOGRAPHIC,
00168 UCHAR_IDS_BINARY_OPERATOR,
00172 UCHAR_IDS_TRINARY_OPERATOR,
00175 UCHAR_JOIN_CONTROL,
00179 UCHAR_LOGICAL_ORDER_EXCEPTION,
00182 UCHAR_LOWERCASE,
00184 UCHAR_MATH,
00188 UCHAR_NONCHARACTER_CODE_POINT,
00190 UCHAR_QUOTATION_MARK,
00194 UCHAR_RADICAL,
00199 UCHAR_SOFT_DOTTED,
00203 UCHAR_TERMINAL_PUNCTUATION,
00207 UCHAR_UNIFIED_IDEOGRAPH,
00210 UCHAR_UPPERCASE,
00214 UCHAR_WHITE_SPACE,
00218 UCHAR_XID_CONTINUE,
00221 UCHAR_XID_START,
00223 UCHAR_BINARY_LIMIT,
00224
00227 UCHAR_BIDI_CLASS=0x1000,
00229 UCHAR_INT_START=UCHAR_BIDI_CLASS,
00232 UCHAR_BLOCK,
00235 UCHAR_CANONICAL_COMBINING_CLASS,
00238 UCHAR_DECOMPOSITION_TYPE,
00242 UCHAR_EAST_ASIAN_WIDTH,
00245 UCHAR_GENERAL_CATEGORY,
00248 UCHAR_JOINING_GROUP,
00251 UCHAR_JOINING_TYPE,
00254 UCHAR_LINE_BREAK,
00257 UCHAR_NUMERIC_TYPE,
00260 UCHAR_SCRIPT,
00261
00263 UCHAR_INT_LIMIT
00264 };
00265
00267 typedef enum UProperty UProperty;
00268
00274 enum UCharCategory
00275 {
00277 U_UNASSIGNED = 0,
00279 U_GENERAL_OTHER_TYPES = 0,
00281 U_UPPERCASE_LETTER = 1,
00283 U_LOWERCASE_LETTER = 2,
00285 U_TITLECASE_LETTER = 3,
00287 U_MODIFIER_LETTER = 4,
00289 U_OTHER_LETTER = 5,
00291 U_NON_SPACING_MARK = 6,
00293 U_ENCLOSING_MARK = 7,
00295 U_COMBINING_SPACING_MARK = 8,
00297 U_DECIMAL_DIGIT_NUMBER = 9,
00299 U_LETTER_NUMBER = 10,
00301 U_OTHER_NUMBER = 11,
00303 U_SPACE_SEPARATOR = 12,
00305 U_LINE_SEPARATOR = 13,
00307 U_PARAGRAPH_SEPARATOR = 14,
00309 U_CONTROL_CHAR = 15,
00311 U_FORMAT_CHAR = 16,
00313 U_PRIVATE_USE_CHAR = 17,
00315 U_SURROGATE = 18,
00317 U_DASH_PUNCTUATION = 19,
00319 U_START_PUNCTUATION = 20,
00321 U_END_PUNCTUATION = 21,
00323 U_CONNECTOR_PUNCTUATION = 22,
00325 U_OTHER_PUNCTUATION = 23,
00327 U_MATH_SYMBOL = 24,
00329 U_CURRENCY_SYMBOL = 25,
00331 U_MODIFIER_SYMBOL = 26,
00333 U_OTHER_SYMBOL = 27,
00335 U_INITIAL_PUNCTUATION = 28,
00337 U_FINAL_PUNCTUATION = 29,
00339 U_CHAR_CATEGORY_COUNT
00340 };
00341
00342 typedef enum UCharCategory UCharCategory;
00343
00359 #define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES)
00360
00361 #define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER)
00362 #define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER)
00363 #define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER)
00364 #define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER)
00365 #define U_GC_LO_MASK U_MASK(U_OTHER_LETTER)
00366
00367 #define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK)
00368 #define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK)
00369 #define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK)
00370
00371 #define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER)
00372 #define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER)
00373 #define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER)
00374
00375 #define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR)
00376 #define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR)
00377 #define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR)
00378
00379 #define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR)
00380 #define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR)
00381 #define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR)
00382 #define U_GC_CS_MASK U_MASK(U_SURROGATE)
00383
00384 #define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION)
00385 #define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION)
00386 #define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION)
00387 #define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION)
00388 #define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION)
00389
00390 #define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL)
00391 #define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL)
00392 #define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL)
00393 #define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL)
00394
00395 #define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION)
00396 #define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION)
00397
00400 #define U_GC_L_MASK \
00401 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
00402
00403 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
00404
00405 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
00406
00407 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
00408
00409 #define U_GC_C_MASK \
00410 (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
00411
00412 #define U_GC_P_MASK \
00413 (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
00414 U_GC_PI_MASK|U_GC_PF_MASK)
00415
00416 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
00417
00422 enum UCharDirection {
00424 U_LEFT_TO_RIGHT = 0,
00426 U_RIGHT_TO_LEFT = 1,
00428 U_EUROPEAN_NUMBER = 2,
00430 U_EUROPEAN_NUMBER_SEPARATOR = 3,
00432 U_EUROPEAN_NUMBER_TERMINATOR = 4,
00434 U_ARABIC_NUMBER = 5,
00436 U_COMMON_NUMBER_SEPARATOR = 6,
00438 U_BLOCK_SEPARATOR = 7,
00440 U_SEGMENT_SEPARATOR = 8,
00442 U_WHITE_SPACE_NEUTRAL = 9,
00444 U_OTHER_NEUTRAL = 10,
00446 U_LEFT_TO_RIGHT_EMBEDDING = 11,
00448 U_LEFT_TO_RIGHT_OVERRIDE = 12,
00450 U_RIGHT_TO_LEFT_ARABIC = 13,
00452 U_RIGHT_TO_LEFT_EMBEDDING = 14,
00454 U_RIGHT_TO_LEFT_OVERRIDE = 15,
00456 U_POP_DIRECTIONAL_FORMAT = 16,
00458 U_DIR_NON_SPACING_MARK = 17,
00460 U_BOUNDARY_NEUTRAL = 18,
00462 U_CHAR_DIRECTION_COUNT
00463 };
00464
00465 typedef enum UCharDirection UCharDirection;
00466
00472 enum UBlockCode {
00474 UBLOCK_BASIC_LATIN = 1,
00476 U_BASIC_LATIN = 1,
00477
00479 UBLOCK_LATIN_1_SUPPLEMENT=2,
00481 U_LATIN_1_SUPPLEMENT=2,
00482
00484 UBLOCK_LATIN_EXTENDED_A =3,
00486 U_LATIN_EXTENDED_A=3,
00487
00489 UBLOCK_LATIN_EXTENDED_B =4,
00491 U_LATIN_EXTENDED_B=4,
00492
00494 UBLOCK_IPA_EXTENSIONS =5,
00496 U_IPA_EXTENSIONS=5,
00497
00499 UBLOCK_SPACING_MODIFIER_LETTERS =6,
00501 U_SPACING_MODIFIER_LETTERS=6,
00502
00504 UBLOCK_COMBINING_DIACRITICAL_MARKS =7,
00506 U_COMBINING_DIACRITICAL_MARKS=7,
00507
00512 UBLOCK_GREEK =8,
00514 U_GREEK=8,
00515
00517 UBLOCK_CYRILLIC =9,
00519 U_CYRILLIC=9,
00520
00522 UBLOCK_ARMENIAN =10,
00524 U_ARMENIAN=10,
00525
00527 UBLOCK_HEBREW =11,
00529 U_HEBREW=11,
00530
00532 UBLOCK_ARABIC =12,
00534 U_ARABIC=12,
00535
00537 UBLOCK_SYRIAC =13,
00539 U_SYRIAC=13,
00540
00542 UBLOCK_THAANA =14,
00544 U_THAANA=14,
00545
00547 UBLOCK_DEVANAGARI =15,
00549 U_DEVANAGARI=15,
00550
00552 UBLOCK_BENGALI =16,
00554 U_BENGALI=16,
00555
00557 UBLOCK_GURMUKHI =17,
00559 U_GURMUKHI=17,
00560
00562 UBLOCK_GUJARATI =18,
00564 U_GUJARATI=18,
00565
00567 UBLOCK_ORIYA =19,
00569 U_ORIYA=19,
00570
00572 UBLOCK_TAMIL =20,
00574 U_TAMIL=20,
00575
00577 UBLOCK_TELUGU =21,
00579 U_TELUGU=21,
00580
00582 UBLOCK_KANNADA =22,
00584 U_KANNADA=22,
00585
00587 UBLOCK_MALAYALAM =23,
00589 U_MALAYALAM=23,
00590
00592 UBLOCK_SINHALA =24,
00594 U_SINHALA=24,
00595
00597 UBLOCK_THAI =25,
00599 U_THAI=25,
00600
00602 UBLOCK_LAO =26,
00604 U_LAO=26,
00605
00607 UBLOCK_TIBETAN =27,
00609 U_TIBETAN=27,
00610
00612 UBLOCK_MYANMAR =28,
00614 U_MYANMAR=28,
00615
00617 UBLOCK_GEORGIAN =29,
00619 U_GEORGIAN=29,
00620
00622 UBLOCK_HANGUL_JAMO =30,
00624 U_HANGUL_JAMO=30,
00625
00627 UBLOCK_ETHIOPIC =31,
00629 U_ETHIOPIC=31,
00630
00632 UBLOCK_CHEROKEE =32,
00634 U_CHEROKEE=32,
00635
00637 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33,
00639 U_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS=33,
00640
00642 UBLOCK_OGHAM =34,
00644 U_OGHAM=34,
00645
00647 UBLOCK_RUNIC =35,
00649 U_RUNIC=35,
00650
00652 UBLOCK_KHMER =36,
00654 U_KHMER=36,
00655
00657 UBLOCK_MONGOLIAN =37,
00659 U_MONGOLIAN=37,
00660
00662 UBLOCK_LATIN_EXTENDED_ADDITIONAL =38,
00664 U_LATIN_EXTENDED_ADDITIONAL=38,
00665
00667 UBLOCK_GREEK_EXTENDED =39,
00669 U_GREEK_EXTENDED=39,
00670
00672 UBLOCK_GENERAL_PUNCTUATION =40,
00674 U_GENERAL_PUNCTUATION=40,
00675
00677 UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41,
00679 U_SUPERSCRIPTS_AND_SUBSCRIPTS=41,
00680
00682 UBLOCK_CURRENCY_SYMBOLS =42,
00684 U_CURRENCY_SYMBOLS=42,
00685
00690 UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43,
00692 U_COMBINING_MARKS_FOR_SYMBOLS=43,
00693
00695 UBLOCK_LETTERLIKE_SYMBOLS =44,
00697 U_LETTERLIKE_SYMBOLS=44,
00698
00700 UBLOCK_NUMBER_FORMS =45,
00702 U_NUMBER_FORMS=45,
00703
00705 UBLOCK_ARROWS =46,
00707 U_ARROWS=46,
00708
00710 UBLOCK_MATHEMATICAL_OPERATORS =47,
00712 U_MATHEMATICAL_OPERATORS=47,
00713
00715 UBLOCK_MISCELLANEOUS_TECHNICAL =48,
00717 U_MISCELLANEOUS_TECHNICAL=48,
00718
00720 UBLOCK_CONTROL_PICTURES =49,
00722 U_CONTROL_PICTURES=49,
00723
00725 UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50,
00727 U_OPTICAL_CHARACTER_RECOGNITION=50,
00728
00730 UBLOCK_ENCLOSED_ALPHANUMERICS =51,
00732 U_ENCLOSED_ALPHANUMERICS=51,
00733
00735 UBLOCK_BOX_DRAWING =52,
00737 U_BOX_DRAWING=52,
00738
00740 UBLOCK_BLOCK_ELEMENTS =53,
00742 U_BLOCK_ELEMENTS=53,
00743
00745 UBLOCK_GEOMETRIC_SHAPES =54,
00747 U_GEOMETRIC_SHAPES=54,
00748
00750 UBLOCK_MISCELLANEOUS_SYMBOLS =55,
00752 U_MISCELLANEOUS_SYMBOLS=55,
00753
00755 UBLOCK_DINGBATS =56,
00757 U_DINGBATS=56,
00758
00760 UBLOCK_BRAILLE_PATTERNS =57,
00762 U_BRAILLE_PATTERNS=57,
00763
00765 UBLOCK_CJK_RADICALS_SUPPLEMENT =58,
00767 U_CJK_RADICALS_SUPPLEMENT=58,
00768
00770 UBLOCK_KANGXI_RADICALS =59,
00772 U_KANGXI_RADICALS=59,
00773
00775 UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60,
00777 U_IDEOGRAPHIC_DESCRIPTION_CHARACTERS=60,
00778
00780 UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61,
00782 U_CJK_SYMBOLS_AND_PUNCTUATION=61,
00783
00785 UBLOCK_HIRAGANA =62,
00787 U_HIRAGANA=62,
00788
00790 UBLOCK_KATAKANA =63,
00792 U_KATAKANA=63,
00793
00795 UBLOCK_BOPOMOFO =64,
00797 U_BOPOMOFO=64,
00798
00800 UBLOCK_HANGUL_COMPATIBILITY_JAMO =65,
00802 U_HANGUL_COMPATIBILITY_JAMO=65,
00803
00805 UBLOCK_KANBUN =66,
00807 U_KANBUN=66,
00808
00810 UBLOCK_BOPOMOFO_EXTENDED =67,
00812 U_BOPOMOFO_EXTENDED=67,
00813
00815 UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68,
00817 U_ENCLOSED_CJK_LETTERS_AND_MONTHS=68,
00818
00820 UBLOCK_CJK_COMPATIBILITY =69,
00822 U_CJK_COMPATIBILITY=69,
00823
00825 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70,
00827 U_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A=70,
00828
00830 UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71,
00832 U_CJK_UNIFIED_IDEOGRAPHS=71,
00833
00835 UBLOCK_YI_SYLLABLES =72,
00837 U_YI_SYLLABLES=72,
00838
00840 UBLOCK_YI_RADICALS =73,
00842 U_YI_RADICALS=73,
00843
00845 UBLOCK_HANGUL_SYLLABLES =74,
00847 U_HANGUL_SYLLABLES=74,
00848
00850 UBLOCK_HIGH_SURROGATES =75,
00852 U_HIGH_SURROGATES=75,
00853
00855 UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76,
00857 U_HIGH_PRIVATE_USE_SURROGATES=76,
00858
00860 UBLOCK_LOW_SURROGATES =77,
00862 U_LOW_SURROGATES=77,
00863
00873 UBLOCK_PRIVATE_USE = 78,
00883 UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE,
00885 U_PRIVATE_USE_AREA=78,
00886
00888 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79,
00890 U_CJK_COMPATIBILITY_IDEOGRAPHS=79,
00891
00893 UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80,
00895 U_ALPHABETIC_PRESENTATION_FORMS=80,
00896
00898 UBLOCK_ARABIC_PRESENTATION_FORMS_A =81,
00900 U_ARABIC_PRESENTATION_FORMS_A=81,
00901
00903 UBLOCK_COMBINING_HALF_MARKS =82,
00905 U_COMBINING_HALF_MARKS=82,
00906
00908 UBLOCK_CJK_COMPATIBILITY_FORMS =83,
00910 U_CJK_COMPATIBILITY_FORMS=83,
00911
00913 UBLOCK_SMALL_FORM_VARIANTS =84,
00915 U_SMALL_FORM_VARIANTS=84,
00916
00918 UBLOCK_ARABIC_PRESENTATION_FORMS_B =85,
00920 U_ARABIC_PRESENTATION_FORMS_B=85,
00921
00923 UBLOCK_SPECIALS =86,
00925 U_SPECIALS=86,
00926
00928 UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87,
00930 U_HALFWIDTH_AND_FULLWIDTH_FORMS=87,
00931
00933 UBLOCK_OLD_ITALIC = 88 ,
00935 UBLOCK_GOTHIC = 89 ,
00937 UBLOCK_DESERET = 90 ,
00939 UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 ,
00941 UBLOCK_MUSICAL_SYMBOLS = 92 ,
00943 UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93 ,
00945 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94 ,
00947 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 ,
00949 UBLOCK_TAGS = 96,
00950
00951
00952
00954 UBLOCK_CYRILLIC_SUPPLEMENTARY = 97,
00956 UBLOCK_TAGALOG = 98,
00958 UBLOCK_HANUNOO = 99,
00960 UBLOCK_BUHID = 100,
00962 UBLOCK_TAGBANWA = 101,
00964 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102,
00966 UBLOCK_SUPPLEMENTAL_ARROWS_A = 103,
00968 UBLOCK_SUPPLEMENTAL_ARROWS_B = 104,
00970 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105,
00972 UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106,
00974 UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107,
00976 UBLOCK_VARIATION_SELECTORS = 108,
00978 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109,
00980 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110,
00981
00983 UBLOCK_COUNT,
00985 U_SCRIPT_COUNT=UBLOCK_COUNT,
00986
00988 UBLOCK_INVALID_CODE=-1,
00989
00991 U_CHAR_SCRIPT_COUNT =UBLOCK_COUNT,
00993 U_NO_SCRIPT = UBLOCK_COUNT
00994 };
00995
00997 typedef enum UBlockCode UBlockCode;
00998
01003 enum UCellWidth
01004 {
01006 U_ZERO_WIDTH = 0,
01008 U_HALF_WIDTH = 1,
01010 U_FULL_WIDTH = 2,
01012 U_NEUTRAL_WIDTH = 3,
01014 U_CELL_WIDTH_COUNT
01015 };
01016
01018 typedef enum UCellWidth UCellWidth;
01019
01026 enum UEastAsianWidth {
01027 U_EA_NEUTRAL,
01028 U_EA_AMBIGUOUS,
01029 U_EA_HALFWIDTH,
01030 U_EA_FULLWIDTH,
01031 U_EA_NARROW,
01032 U_EA_WIDE,
01033 U_EA_COUNT
01034 };
01035 typedef enum UEastAsianWidth UEastAsianWidth;
01036
01037
01038
01039
01040
01052 enum UCharNameChoice {
01053 U_UNICODE_CHAR_NAME,
01054 U_UNICODE_10_CHAR_NAME,
01055 U_EXTENDED_CHAR_NAME,
01056 U_CHAR_NAME_CHOICE_COUNT
01057 };
01058
01060 typedef enum UCharNameChoice UCharNameChoice;
01061
01068 enum UDecompositionType {
01069 U_DT_NONE,
01070 U_DT_CANONICAL,
01071 U_DT_COMPAT,
01072 U_DT_CIRCLE,
01073 U_DT_FINAL,
01074 U_DT_FONT,
01075 U_DT_FRACTION,
01076 U_DT_INITIAL,
01077 U_DT_ISOLATED,
01078 U_DT_MEDIAL,
01079 U_DT_NARROW,
01080 U_DT_NOBREAK,
01081 U_DT_SMALL,
01082 U_DT_SQUARE,
01083 U_DT_SUB,
01084 U_DT_SUPER,
01085 U_DT_VERTICAL,
01086 U_DT_WIDE,
01087 U_DT_COUNT
01088 };
01089 typedef enum UDecompositionType UDecompositionType;
01090
01097 enum UJoiningType {
01098 U_JT_NON_JOINING,
01099 U_JT_JOIN_CAUSING,
01100 U_JT_DUAL_JOINING,
01101 U_JT_LEFT_JOINING,
01102 U_JT_RIGHT_JOINING,
01103 U_JT_TRANSPARENT,
01104 U_JT_COUNT
01105 };
01106 typedef enum UJoiningType UJoiningType;
01107
01114 enum UJoiningGroup {
01115 U_JG_NO_JOINING_GROUP,
01116 U_JG_AIN,
01117 U_JG_ALAPH,
01118 U_JG_ALEF,
01119 U_JG_BEH,
01120 U_JG_BETH,
01121 U_JG_DAL,
01122 U_JG_DALATH_RISH,
01123 U_JG_E,
01124 U_JG_FEH,
01125 U_JG_FINAL_SEMKATH,
01126 U_JG_GAF,
01127 U_JG_GAMAL,
01128 U_JG_HAH,
01129 U_JG_HAMZA_ON_HEH_GOAL,
01130 U_JG_HE,
01131 U_JG_HEH,
01132 U_JG_HEH_GOAL,
01133 U_JG_HETH,
01134 U_JG_KAF,
01135 U_JG_KAPH,
01136 U_JG_KNOTTED_HEH,
01137 U_JG_LAM,
01138 U_JG_LAMADH,
01139 U_JG_MEEM,
01140 U_JG_MIM,
01141 U_JG_NOON,
01142 U_JG_NUN,
01143 U_JG_PE,
01144 U_JG_QAF,
01145 U_JG_QAPH,
01146 U_JG_REH,
01147 U_JG_REVERSED_PE,
01148 U_JG_SAD,
01149 U_JG_SADHE,
01150 U_JG_SEEN,
01151 U_JG_SEMKATH,
01152 U_JG_SHIN,
01153 U_JG_SWASH_KAF,
01154 U_JG_SYRIAC_WAW,
01155 U_JG_TAH,
01156 U_JG_TAW,
01157 U_JG_TEH_MARBUTA,
01158 U_JG_TETH,
01159 U_JG_WAW,
01160 U_JG_YEH,
01161 U_JG_YEH_BARREE,
01162 U_JG_YEH_WITH_TAIL,
01163 U_JG_YUDH,
01164 U_JG_YUDH_HE,
01165 U_JG_ZAIN,
01166 U_JG_COUNT
01167 };
01168 typedef enum UJoiningGroup UJoiningGroup;
01169
01176 enum ULineBreak {
01177 U_LB_UNKNOWN,
01178 U_LB_AMBIGUOUS,
01179 U_LB_ALPHABETIC,
01180 U_LB_BREAK_BOTH,
01181 U_LB_BREAK_AFTER,
01182 U_LB_BREAK_BEFORE,
01183 U_LB_MANDATORY_BREAK,
01184 U_LB_CONTINGENT_BREAK,
01185 U_LB_CLOSE_PUNCTUATION,
01186 U_LB_COMBINING_MARK,
01187 U_LB_CARRIAGE_RETURN,
01188 U_LB_EXCLAMATION,
01189 U_LB_GLUE,
01190 U_LB_HYPHEN,
01191 U_LB_IDEOGRAPHIC,
01192 U_LB_INSEPERABLE,
01193 U_LB_INFIX_NUMERIC,
01194 U_LB_LINE_FEED,
01195 U_LB_NONSTARTER,
01196 U_LB_NUMERIC,
01197 U_LB_OPEN_PUNCTUATION,
01198 U_LB_POSTFIX_NUMERIC,
01199 U_LB_PREFIX_NUMERIC,
01200 U_LB_QUOTATION,
01201 U_LB_COMPLEX_CONTEXT,
01202 U_LB_SURROGATE,
01203 U_LB_SPACE,
01204 U_LB_BREAK_SYMBOLS,
01205 U_LB_ZWSPACE,
01206 U_LB_COUNT
01207 };
01208 typedef enum ULineBreak ULineBreak;
01209
01216 enum UNumericType {
01217 U_NT_NONE,
01218 U_NT_DECIMAL,
01219 U_NT_DIGIT,
01220 U_NT_NUMERIC,
01221 U_NT_COUNT
01222 };
01223 typedef enum UNumericType UNumericType;
01224
01251 U_CAPI UBool U_EXPORT2
01252 u_hasBinaryProperty(UChar32 c, UProperty which);
01253
01266 U_CAPI UBool U_EXPORT2
01267 u_isUAlphabetic(UChar32 c);
01268
01281 U_CAPI UBool U_EXPORT2
01282 u_isULowercase(UChar32 c);
01283
01296 U_CAPI UBool U_EXPORT2
01297 u_isUUppercase(UChar32 c);
01298
01312 U_CAPI UBool U_EXPORT2
01313 u_isUWhiteSpace(UChar32 c);
01314
01315
01316
01317
01318
01319
01355 U_CAPI int32_t U_EXPORT2
01356 u_getIntPropertyValue(UChar32 c, UProperty which);
01357
01377 U_CAPI int32_t U_EXPORT2
01378 u_getIntPropertyMinValue(UProperty which);
01379
01406 U_CAPI int32_t U_EXPORT2
01407 u_getIntPropertyMaxValue(UProperty which);
01408
01425 U_CAPI double U_EXPORT2
01426 u_getNumericValue(UChar32 c);
01427
01435 #define U_NO_NUMERIC_VALUE ((double)-123456789.)
01436
01449 U_CAPI UBool U_EXPORT2
01450 u_islower(UChar32 c);
01451
01463 U_CAPI UBool U_EXPORT2
01464 u_isupper(UChar32 c);
01465
01477 U_CAPI UBool U_EXPORT2
01478 u_istitle(UChar32 c);
01479
01487 U_CAPI UBool U_EXPORT2
01488 u_isdigit(UChar32 c);
01489
01498 U_CAPI UBool U_EXPORT2
01499 u_isalnum(UChar32 c);
01500
01516 U_CAPI UBool U_EXPORT2
01517 u_isdefined(UChar32 c);
01518
01530 U_CAPI UBool U_EXPORT2
01531 u_isalpha(UChar32 c);
01532
01540 U_CAPI UBool U_EXPORT2
01541 u_isspace(UChar32 c);
01542
01571 U_CAPI UBool U_EXPORT2
01572 u_isWhitespace(UChar32 c);
01573
01589 U_CAPI UBool U_EXPORT2
01590 u_iscntrl(UChar32 c);
01591
01592
01603 U_CAPI UBool U_EXPORT2
01604 u_isprint(UChar32 c);
01605
01617 U_CAPI UBool U_EXPORT2
01618 u_isbase(UChar32 c);
01619
01632 U_CAPI UCharDirection U_EXPORT2
01633 u_charDirection(UChar32 c);
01634
01645 U_CAPI UBool U_EXPORT2
01646 u_isMirrored(UChar32 c);
01647
01664 U_CAPI UChar32 U_EXPORT2
01665 u_charMirror(UChar32 c);
01666
01725 U_CAPI uint16_t U_EXPORT2
01726 u_charCellWidth(UChar32 c);
01727
01738 U_CAPI int8_t U_EXPORT2
01739 u_charType(UChar32 c);
01740
01751 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
01752
01770 typedef UBool U_CALLCONV
01771 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
01772
01792 U_CAPI void U_EXPORT2
01793 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
01794
01802 U_CAPI uint8_t U_EXPORT2
01803 u_getCombiningClass(UChar32 c);
01804
01813 U_CAPI int32_t U_EXPORT2
01814 u_charDigitValue(UChar32 c);
01815
01824 U_CAPI UBlockCode U_EXPORT2
01825 ublock_getCode(UChar32 ch);
01826
01859 U_CAPI int32_t U_EXPORT2
01860 u_charName(UChar32 code, UCharNameChoice nameChoice,
01861 char *buffer, int32_t bufferLength,
01862 UErrorCode *pErrorCode);
01863
01886 U_CAPI int32_t U_EXPORT2
01887 u_getISOComment(UChar32 c,
01888 char *dest, int32_t destCapacity,
01889 UErrorCode *pErrorCode);
01890
01910 U_CAPI UChar32 U_EXPORT2
01911 u_charFromName(UCharNameChoice nameChoice,
01912 const char *name,
01913 UErrorCode *pErrorCode);
01914
01931 typedef UBool UEnumCharNamesFn(void *context,
01932 UChar32 code,
01933 UCharNameChoice nameChoice,
01934 const char *name,
01935 int32_t length);
01936
01957 U_CAPI void U_EXPORT2
01958 u_enumCharNames(UChar32 start, UChar32 limit,
01959 UEnumCharNamesFn *fn,
01960 void *context,
01961 UCharNameChoice nameChoice,
01962 UErrorCode *pErrorCode);
01963
01980 U_CAPI UBool U_EXPORT2
01981 u_isIDStart(UChar32 c);
01982
02007 U_CAPI UBool U_EXPORT2
02008 u_isIDPart(UChar32 c);
02009
02034 U_CAPI UBool U_EXPORT2
02035 u_isIDIgnorable(UChar32 c);
02036
02057 U_CAPI UBool U_EXPORT2
02058 u_isJavaIDStart(UChar32 c);
02059
02088 U_CAPI UBool U_EXPORT2
02089 u_isJavaIDPart(UChar32 c);
02090
02113 U_CAPI UChar32 U_EXPORT2
02114 u_tolower(UChar32 c);
02115
02131 U_CAPI UChar32 U_EXPORT2
02132 u_toupper(UChar32 c);
02133
02148 U_CAPI UChar32 U_EXPORT2
02149 u_totitle(UChar32 c);
02150
02152 #define U_FOLD_CASE_DEFAULT 0
02153
02170 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
02171
02185 U_CAPI UChar32 U_EXPORT2
02186 u_foldCase(UChar32 c, uint32_t options);
02187
02223 U_CAPI int32_t U_EXPORT2
02224 u_digit(UChar32 ch, int8_t radix);
02225
02252 U_CAPI UChar32 U_EXPORT2
02253 u_forDigit(int32_t digit, int8_t radix);
02254
02269 U_CAPI void U_EXPORT2
02270 u_charAge(UChar32 c, UVersionInfo versionArray);
02271
02279 U_CAPI void U_EXPORT2
02280 u_getUnicodeVersion(UVersionInfo info);
02281
02303 U_CAPI int32_t U_EXPORT2
02304 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
02305
02306
02310 #define u_charScript ublock_getCode
02311
02312 typedef UBlockCode UCharScript;
02313
02314 U_CDECL_END
02315
02316 #endif
02317