ICU 4.8.1.1
4.8.1.1
|
00001 /* 00002 ********************************************************************** 00003 * Copyright (C) 1997-2010, International Business Machines 00004 * Corporation and others. All Rights Reserved. 00005 ********************************************************************** 00006 * 00007 * File UCHAR.H 00008 * 00009 * Modification History: 00010 * 00011 * Date Name Description 00012 * 04/02/97 aliu Creation. 00013 * 03/29/99 helena Updated for C APIs. 00014 * 4/15/99 Madhu Updated for C Implementation and Javadoc 00015 * 5/20/99 Madhu Added the function u_getVersion() 00016 * 8/19/1999 srl Upgraded scripts to Unicode 3.0 00017 * 8/27/1999 schererm UCharDirection constants: U_... 00018 * 11/11/1999 weiv added u_isalnum(), cleaned comments 00019 * 01/11/2000 helena Renamed u_getVersion to u_getUnicodeVersion(). 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 /* Unicode version number */ 00032 /*==========================================================================*/ 00042 #define U_UNICODE_VERSION "6.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 * !! Note: Several comments in this file are machine-read by the 00144 * genpname tool. These comments describe the correspondence between 00145 * icu enum constants and UCD entities. Do not delete them. Update 00146 * these comments as needed. 00147 * 00148 * Any comment of the form "/ *[name]* /" (spaces added) is such 00149 * a comment. 00150 * 00151 * The U_JG_* and U_GC_*_MASK constants are matched by their symbolic 00152 * name, which must match PropertyValueAliases.txt. 00153 */ 00154 00174 typedef enum UProperty { 00175 /* See note !!. Comments of the form "Binary property Dash", 00176 "Enumerated property Script", "Double property Numeric_Value", 00177 and "String property Age" are read by genpname. */ 00178 00179 /* Note: Place UCHAR_ALPHABETIC before UCHAR_BINARY_START so that 00180 debuggers display UCHAR_ALPHABETIC as the symbolic name for 0, 00181 rather than UCHAR_BINARY_START. Likewise for other *_START 00182 identifiers. */ 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 00570 UCHAR_SCRIPT_EXTENSIONS=0x7000, 00572 UCHAR_OTHER_PROPERTY_START=UCHAR_SCRIPT_EXTENSIONS, 00575 UCHAR_OTHER_PROPERTY_LIMIT=0x7001, 00576 00578 UCHAR_INVALID_CODE = -1 00579 } UProperty; 00580 00586 typedef enum UCharCategory 00587 { 00591 U_UNASSIGNED = 0, 00593 U_GENERAL_OTHER_TYPES = 0, 00595 U_UPPERCASE_LETTER = 1, 00597 U_LOWERCASE_LETTER = 2, 00599 U_TITLECASE_LETTER = 3, 00601 U_MODIFIER_LETTER = 4, 00603 U_OTHER_LETTER = 5, 00605 U_NON_SPACING_MARK = 6, 00607 U_ENCLOSING_MARK = 7, 00609 U_COMBINING_SPACING_MARK = 8, 00611 U_DECIMAL_DIGIT_NUMBER = 9, 00613 U_LETTER_NUMBER = 10, 00615 U_OTHER_NUMBER = 11, 00617 U_SPACE_SEPARATOR = 12, 00619 U_LINE_SEPARATOR = 13, 00621 U_PARAGRAPH_SEPARATOR = 14, 00623 U_CONTROL_CHAR = 15, 00625 U_FORMAT_CHAR = 16, 00627 U_PRIVATE_USE_CHAR = 17, 00629 U_SURROGATE = 18, 00631 U_DASH_PUNCTUATION = 19, 00633 U_START_PUNCTUATION = 20, 00635 U_END_PUNCTUATION = 21, 00637 U_CONNECTOR_PUNCTUATION = 22, 00639 U_OTHER_PUNCTUATION = 23, 00641 U_MATH_SYMBOL = 24, 00643 U_CURRENCY_SYMBOL = 25, 00645 U_MODIFIER_SYMBOL = 26, 00647 U_OTHER_SYMBOL = 27, 00649 U_INITIAL_PUNCTUATION = 28, 00651 U_FINAL_PUNCTUATION = 29, 00653 U_CHAR_CATEGORY_COUNT 00654 } UCharCategory; 00655 00670 #define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES) 00671 00673 #define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER) 00674 00675 #define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER) 00676 00677 #define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER) 00678 00679 #define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER) 00680 00681 #define U_GC_LO_MASK U_MASK(U_OTHER_LETTER) 00682 00684 #define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK) 00685 00686 #define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK) 00687 00688 #define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK) 00689 00691 #define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER) 00692 00693 #define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER) 00694 00695 #define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER) 00696 00698 #define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR) 00699 00700 #define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR) 00701 00702 #define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR) 00703 00705 #define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR) 00706 00707 #define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR) 00708 00709 #define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR) 00710 00711 #define U_GC_CS_MASK U_MASK(U_SURROGATE) 00712 00714 #define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION) 00715 00716 #define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION) 00717 00718 #define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION) 00719 00720 #define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION) 00721 00722 #define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION) 00723 00725 #define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL) 00726 00727 #define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL) 00728 00729 #define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL) 00730 00731 #define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL) 00732 00734 #define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION) 00735 00736 #define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION) 00737 00738 00740 #define U_GC_L_MASK \ 00741 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK) 00742 00744 #define U_GC_LC_MASK \ 00745 (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK) 00746 00748 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK) 00749 00751 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK) 00752 00754 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK) 00755 00757 #define U_GC_C_MASK \ 00758 (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK) 00759 00761 #define U_GC_P_MASK \ 00762 (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \ 00763 U_GC_PI_MASK|U_GC_PF_MASK) 00764 00766 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK) 00767 00772 typedef enum UCharDirection { 00776 U_LEFT_TO_RIGHT = 0, 00778 U_RIGHT_TO_LEFT = 1, 00780 U_EUROPEAN_NUMBER = 2, 00782 U_EUROPEAN_NUMBER_SEPARATOR = 3, 00784 U_EUROPEAN_NUMBER_TERMINATOR = 4, 00786 U_ARABIC_NUMBER = 5, 00788 U_COMMON_NUMBER_SEPARATOR = 6, 00790 U_BLOCK_SEPARATOR = 7, 00792 U_SEGMENT_SEPARATOR = 8, 00794 U_WHITE_SPACE_NEUTRAL = 9, 00796 U_OTHER_NEUTRAL = 10, 00798 U_LEFT_TO_RIGHT_EMBEDDING = 11, 00800 U_LEFT_TO_RIGHT_OVERRIDE = 12, 00802 U_RIGHT_TO_LEFT_ARABIC = 13, 00804 U_RIGHT_TO_LEFT_EMBEDDING = 14, 00806 U_RIGHT_TO_LEFT_OVERRIDE = 15, 00808 U_POP_DIRECTIONAL_FORMAT = 16, 00810 U_DIR_NON_SPACING_MARK = 17, 00812 U_BOUNDARY_NEUTRAL = 18, 00814 U_CHAR_DIRECTION_COUNT 00815 } UCharDirection; 00816 00821 enum UBlockCode { 00822 00824 UBLOCK_NO_BLOCK = 0, /*[none]*/ /* Special range indicating No_Block */ 00825 00827 UBLOCK_BASIC_LATIN = 1, /*[0000]*/ /*See note !!*/ 00828 00830 UBLOCK_LATIN_1_SUPPLEMENT=2, /*[0080]*/ 00831 00833 UBLOCK_LATIN_EXTENDED_A =3, /*[0100]*/ 00834 00836 UBLOCK_LATIN_EXTENDED_B =4, /*[0180]*/ 00837 00839 UBLOCK_IPA_EXTENSIONS =5, /*[0250]*/ 00840 00842 UBLOCK_SPACING_MODIFIER_LETTERS =6, /*[02B0]*/ 00843 00845 UBLOCK_COMBINING_DIACRITICAL_MARKS =7, /*[0300]*/ 00846 00851 UBLOCK_GREEK =8, /*[0370]*/ 00852 00854 UBLOCK_CYRILLIC =9, /*[0400]*/ 00855 00857 UBLOCK_ARMENIAN =10, /*[0530]*/ 00858 00860 UBLOCK_HEBREW =11, /*[0590]*/ 00861 00863 UBLOCK_ARABIC =12, /*[0600]*/ 00864 00866 UBLOCK_SYRIAC =13, /*[0700]*/ 00867 00869 UBLOCK_THAANA =14, /*[0780]*/ 00870 00872 UBLOCK_DEVANAGARI =15, /*[0900]*/ 00873 00875 UBLOCK_BENGALI =16, /*[0980]*/ 00876 00878 UBLOCK_GURMUKHI =17, /*[0A00]*/ 00879 00881 UBLOCK_GUJARATI =18, /*[0A80]*/ 00882 00884 UBLOCK_ORIYA =19, /*[0B00]*/ 00885 00887 UBLOCK_TAMIL =20, /*[0B80]*/ 00888 00890 UBLOCK_TELUGU =21, /*[0C00]*/ 00891 00893 UBLOCK_KANNADA =22, /*[0C80]*/ 00894 00896 UBLOCK_MALAYALAM =23, /*[0D00]*/ 00897 00899 UBLOCK_SINHALA =24, /*[0D80]*/ 00900 00902 UBLOCK_THAI =25, /*[0E00]*/ 00903 00905 UBLOCK_LAO =26, /*[0E80]*/ 00906 00908 UBLOCK_TIBETAN =27, /*[0F00]*/ 00909 00911 UBLOCK_MYANMAR =28, /*[1000]*/ 00912 00914 UBLOCK_GEORGIAN =29, /*[10A0]*/ 00915 00917 UBLOCK_HANGUL_JAMO =30, /*[1100]*/ 00918 00920 UBLOCK_ETHIOPIC =31, /*[1200]*/ 00921 00923 UBLOCK_CHEROKEE =32, /*[13A0]*/ 00924 00926 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33, /*[1400]*/ 00927 00929 UBLOCK_OGHAM =34, /*[1680]*/ 00930 00932 UBLOCK_RUNIC =35, /*[16A0]*/ 00933 00935 UBLOCK_KHMER =36, /*[1780]*/ 00936 00938 UBLOCK_MONGOLIAN =37, /*[1800]*/ 00939 00941 UBLOCK_LATIN_EXTENDED_ADDITIONAL =38, /*[1E00]*/ 00942 00944 UBLOCK_GREEK_EXTENDED =39, /*[1F00]*/ 00945 00947 UBLOCK_GENERAL_PUNCTUATION =40, /*[2000]*/ 00948 00950 UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41, /*[2070]*/ 00951 00953 UBLOCK_CURRENCY_SYMBOLS =42, /*[20A0]*/ 00954 00959 UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43, /*[20D0]*/ 00960 00962 UBLOCK_LETTERLIKE_SYMBOLS =44, /*[2100]*/ 00963 00965 UBLOCK_NUMBER_FORMS =45, /*[2150]*/ 00966 00968 UBLOCK_ARROWS =46, /*[2190]*/ 00969 00971 UBLOCK_MATHEMATICAL_OPERATORS =47, /*[2200]*/ 00972 00974 UBLOCK_MISCELLANEOUS_TECHNICAL =48, /*[2300]*/ 00975 00977 UBLOCK_CONTROL_PICTURES =49, /*[2400]*/ 00978 00980 UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50, /*[2440]*/ 00981 00983 UBLOCK_ENCLOSED_ALPHANUMERICS =51, /*[2460]*/ 00984 00986 UBLOCK_BOX_DRAWING =52, /*[2500]*/ 00987 00989 UBLOCK_BLOCK_ELEMENTS =53, /*[2580]*/ 00990 00992 UBLOCK_GEOMETRIC_SHAPES =54, /*[25A0]*/ 00993 00995 UBLOCK_MISCELLANEOUS_SYMBOLS =55, /*[2600]*/ 00996 00998 UBLOCK_DINGBATS =56, /*[2700]*/ 00999 01001 UBLOCK_BRAILLE_PATTERNS =57, /*[2800]*/ 01002 01004 UBLOCK_CJK_RADICALS_SUPPLEMENT =58, /*[2E80]*/ 01005 01007 UBLOCK_KANGXI_RADICALS =59, /*[2F00]*/ 01008 01010 UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60, /*[2FF0]*/ 01011 01013 UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61, /*[3000]*/ 01014 01016 UBLOCK_HIRAGANA =62, /*[3040]*/ 01017 01019 UBLOCK_KATAKANA =63, /*[30A0]*/ 01020 01022 UBLOCK_BOPOMOFO =64, /*[3100]*/ 01023 01025 UBLOCK_HANGUL_COMPATIBILITY_JAMO =65, /*[3130]*/ 01026 01028 UBLOCK_KANBUN =66, /*[3190]*/ 01029 01031 UBLOCK_BOPOMOFO_EXTENDED =67, /*[31A0]*/ 01032 01034 UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68, /*[3200]*/ 01035 01037 UBLOCK_CJK_COMPATIBILITY =69, /*[3300]*/ 01038 01040 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70, /*[3400]*/ 01041 01043 UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71, /*[4E00]*/ 01044 01046 UBLOCK_YI_SYLLABLES =72, /*[A000]*/ 01047 01049 UBLOCK_YI_RADICALS =73, /*[A490]*/ 01050 01052 UBLOCK_HANGUL_SYLLABLES =74, /*[AC00]*/ 01053 01055 UBLOCK_HIGH_SURROGATES =75, /*[D800]*/ 01056 01058 UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76, /*[DB80]*/ 01059 01061 UBLOCK_LOW_SURROGATES =77, /*[DC00]*/ 01062 01072 UBLOCK_PRIVATE_USE = 78, 01082 UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE, /*[E000]*/ 01083 01085 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79, /*[F900]*/ 01086 01088 UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80, /*[FB00]*/ 01089 01091 UBLOCK_ARABIC_PRESENTATION_FORMS_A =81, /*[FB50]*/ 01092 01094 UBLOCK_COMBINING_HALF_MARKS =82, /*[FE20]*/ 01095 01097 UBLOCK_CJK_COMPATIBILITY_FORMS =83, /*[FE30]*/ 01098 01100 UBLOCK_SMALL_FORM_VARIANTS =84, /*[FE50]*/ 01101 01103 UBLOCK_ARABIC_PRESENTATION_FORMS_B =85, /*[FE70]*/ 01104 01106 UBLOCK_SPECIALS =86, /*[FFF0]*/ 01107 01109 UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87, /*[FF00]*/ 01110 01111 /* New blocks in Unicode 3.1 */ 01112 01114 UBLOCK_OLD_ITALIC = 88 , /*[10300]*/ 01116 UBLOCK_GOTHIC = 89 , /*[10330]*/ 01118 UBLOCK_DESERET = 90 , /*[10400]*/ 01120 UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 , /*[1D000]*/ 01122 UBLOCK_MUSICAL_SYMBOLS = 92 , /*[1D100]*/ 01124 UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93 , /*[1D400]*/ 01126 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94 , /*[20000]*/ 01128 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 , /*[2F800]*/ 01130 UBLOCK_TAGS = 96, /*[E0000]*/ 01131 01132 /* New blocks in Unicode 3.2 */ 01133 01138 UBLOCK_CYRILLIC_SUPPLEMENTARY = 97, 01140 UBLOCK_CYRILLIC_SUPPLEMENT = UBLOCK_CYRILLIC_SUPPLEMENTARY, /*[0500]*/ 01142 UBLOCK_TAGALOG = 98, /*[1700]*/ 01144 UBLOCK_HANUNOO = 99, /*[1720]*/ 01146 UBLOCK_BUHID = 100, /*[1740]*/ 01148 UBLOCK_TAGBANWA = 101, /*[1760]*/ 01150 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102, /*[27C0]*/ 01152 UBLOCK_SUPPLEMENTAL_ARROWS_A = 103, /*[27F0]*/ 01154 UBLOCK_SUPPLEMENTAL_ARROWS_B = 104, /*[2900]*/ 01156 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105, /*[2980]*/ 01158 UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106, /*[2A00]*/ 01160 UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107, /*[31F0]*/ 01162 UBLOCK_VARIATION_SELECTORS = 108, /*[FE00]*/ 01164 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109, /*[F0000]*/ 01166 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110, /*[100000]*/ 01167 01168 /* New blocks in Unicode 4 */ 01169 01171 UBLOCK_LIMBU = 111, /*[1900]*/ 01173 UBLOCK_TAI_LE = 112, /*[1950]*/ 01175 UBLOCK_KHMER_SYMBOLS = 113, /*[19E0]*/ 01177 UBLOCK_PHONETIC_EXTENSIONS = 114, /*[1D00]*/ 01179 UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115, /*[2B00]*/ 01181 UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116, /*[4DC0]*/ 01183 UBLOCK_LINEAR_B_SYLLABARY = 117, /*[10000]*/ 01185 UBLOCK_LINEAR_B_IDEOGRAMS = 118, /*[10080]*/ 01187 UBLOCK_AEGEAN_NUMBERS = 119, /*[10100]*/ 01189 UBLOCK_UGARITIC = 120, /*[10380]*/ 01191 UBLOCK_SHAVIAN = 121, /*[10450]*/ 01193 UBLOCK_OSMANYA = 122, /*[10480]*/ 01195 UBLOCK_CYPRIOT_SYLLABARY = 123, /*[10800]*/ 01197 UBLOCK_TAI_XUAN_JING_SYMBOLS = 124, /*[1D300]*/ 01199 UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125, /*[E0100]*/ 01200 01201 /* New blocks in Unicode 4.1 */ 01202 01204 UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION = 126, /*[1D200]*/ 01206 UBLOCK_ANCIENT_GREEK_NUMBERS = 127, /*[10140]*/ 01208 UBLOCK_ARABIC_SUPPLEMENT = 128, /*[0750]*/ 01210 UBLOCK_BUGINESE = 129, /*[1A00]*/ 01212 UBLOCK_CJK_STROKES = 130, /*[31C0]*/ 01214 UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131, /*[1DC0]*/ 01216 UBLOCK_COPTIC = 132, /*[2C80]*/ 01218 UBLOCK_ETHIOPIC_EXTENDED = 133, /*[2D80]*/ 01220 UBLOCK_ETHIOPIC_SUPPLEMENT = 134, /*[1380]*/ 01222 UBLOCK_GEORGIAN_SUPPLEMENT = 135, /*[2D00]*/ 01224 UBLOCK_GLAGOLITIC = 136, /*[2C00]*/ 01226 UBLOCK_KHAROSHTHI = 137, /*[10A00]*/ 01228 UBLOCK_MODIFIER_TONE_LETTERS = 138, /*[A700]*/ 01230 UBLOCK_NEW_TAI_LUE = 139, /*[1980]*/ 01232 UBLOCK_OLD_PERSIAN = 140, /*[103A0]*/ 01234 UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT = 141, /*[1D80]*/ 01236 UBLOCK_SUPPLEMENTAL_PUNCTUATION = 142, /*[2E00]*/ 01238 UBLOCK_SYLOTI_NAGRI = 143, /*[A800]*/ 01240 UBLOCK_TIFINAGH = 144, /*[2D30]*/ 01242 UBLOCK_VERTICAL_FORMS = 145, /*[FE10]*/ 01243 01244 /* New blocks in Unicode 5.0 */ 01245 01247 UBLOCK_NKO = 146, /*[07C0]*/ 01249 UBLOCK_BALINESE = 147, /*[1B00]*/ 01251 UBLOCK_LATIN_EXTENDED_C = 148, /*[2C60]*/ 01253 UBLOCK_LATIN_EXTENDED_D = 149, /*[A720]*/ 01255 UBLOCK_PHAGS_PA = 150, /*[A840]*/ 01257 UBLOCK_PHOENICIAN = 151, /*[10900]*/ 01259 UBLOCK_CUNEIFORM = 152, /*[12000]*/ 01261 UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153, /*[12400]*/ 01263 UBLOCK_COUNTING_ROD_NUMERALS = 154, /*[1D360]*/ 01264 01265 /* New blocks in Unicode 5.1 */ 01266 01268 UBLOCK_SUNDANESE = 155, /*[1B80]*/ 01270 UBLOCK_LEPCHA = 156, /*[1C00]*/ 01272 UBLOCK_OL_CHIKI = 157, /*[1C50]*/ 01274 UBLOCK_CYRILLIC_EXTENDED_A = 158, /*[2DE0]*/ 01276 UBLOCK_VAI = 159, /*[A500]*/ 01278 UBLOCK_CYRILLIC_EXTENDED_B = 160, /*[A640]*/ 01280 UBLOCK_SAURASHTRA = 161, /*[A880]*/ 01282 UBLOCK_KAYAH_LI = 162, /*[A900]*/ 01284 UBLOCK_REJANG = 163, /*[A930]*/ 01286 UBLOCK_CHAM = 164, /*[AA00]*/ 01288 UBLOCK_ANCIENT_SYMBOLS = 165, /*[10190]*/ 01290 UBLOCK_PHAISTOS_DISC = 166, /*[101D0]*/ 01292 UBLOCK_LYCIAN = 167, /*[10280]*/ 01294 UBLOCK_CARIAN = 168, /*[102A0]*/ 01296 UBLOCK_LYDIAN = 169, /*[10920]*/ 01298 UBLOCK_MAHJONG_TILES = 170, /*[1F000]*/ 01300 UBLOCK_DOMINO_TILES = 171, /*[1F030]*/ 01301 01302 /* New blocks in Unicode 5.2 */ 01303 01305 UBLOCK_SAMARITAN = 172, /*[0800]*/ 01307 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173, /*[18B0]*/ 01309 UBLOCK_TAI_THAM = 174, /*[1A20]*/ 01311 UBLOCK_VEDIC_EXTENSIONS = 175, /*[1CD0]*/ 01313 UBLOCK_LISU = 176, /*[A4D0]*/ 01315 UBLOCK_BAMUM = 177, /*[A6A0]*/ 01317 UBLOCK_COMMON_INDIC_NUMBER_FORMS = 178, /*[A830]*/ 01319 UBLOCK_DEVANAGARI_EXTENDED = 179, /*[A8E0]*/ 01321 UBLOCK_HANGUL_JAMO_EXTENDED_A = 180, /*[A960]*/ 01323 UBLOCK_JAVANESE = 181, /*[A980]*/ 01325 UBLOCK_MYANMAR_EXTENDED_A = 182, /*[AA60]*/ 01327 UBLOCK_TAI_VIET = 183, /*[AA80]*/ 01329 UBLOCK_MEETEI_MAYEK = 184, /*[ABC0]*/ 01331 UBLOCK_HANGUL_JAMO_EXTENDED_B = 185, /*[D7B0]*/ 01333 UBLOCK_IMPERIAL_ARAMAIC = 186, /*[10840]*/ 01335 UBLOCK_OLD_SOUTH_ARABIAN = 187, /*[10A60]*/ 01337 UBLOCK_AVESTAN = 188, /*[10B00]*/ 01339 UBLOCK_INSCRIPTIONAL_PARTHIAN = 189, /*[10B40]*/ 01341 UBLOCK_INSCRIPTIONAL_PAHLAVI = 190, /*[10B60]*/ 01343 UBLOCK_OLD_TURKIC = 191, /*[10C00]*/ 01345 UBLOCK_RUMI_NUMERAL_SYMBOLS = 192, /*[10E60]*/ 01347 UBLOCK_KAITHI = 193, /*[11080]*/ 01349 UBLOCK_EGYPTIAN_HIEROGLYPHS = 194, /*[13000]*/ 01351 UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195, /*[1F100]*/ 01353 UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196, /*[1F200]*/ 01355 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197, /*[2A700]*/ 01356 01357 /* New blocks in Unicode 6.0 */ 01358 01360 UBLOCK_MANDAIC = 198, /*[0840]*/ 01362 UBLOCK_BATAK = 199, /*[1BC0]*/ 01364 UBLOCK_ETHIOPIC_EXTENDED_A = 200, /*[AB00]*/ 01366 UBLOCK_BRAHMI = 201, /*[11000]*/ 01368 UBLOCK_BAMUM_SUPPLEMENT = 202, /*[16800]*/ 01370 UBLOCK_KANA_SUPPLEMENT = 203, /*[1B000]*/ 01372 UBLOCK_PLAYING_CARDS = 204, /*[1F0A0]*/ 01374 UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = 205, /*[1F300]*/ 01376 UBLOCK_EMOTICONS = 206, /*[1F600]*/ 01378 UBLOCK_TRANSPORT_AND_MAP_SYMBOLS = 207, /*[1F680]*/ 01380 UBLOCK_ALCHEMICAL_SYMBOLS = 208, /*[1F700]*/ 01382 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = 209, /*[2B740]*/ 01383 01385 UBLOCK_COUNT = 210, 01386 01388 UBLOCK_INVALID_CODE=-1 01389 }; 01390 01392 typedef enum UBlockCode UBlockCode; 01393 01401 typedef enum UEastAsianWidth { 01402 U_EA_NEUTRAL, /*[N]*/ /*See note !!*/ 01403 U_EA_AMBIGUOUS, /*[A]*/ 01404 U_EA_HALFWIDTH, /*[H]*/ 01405 U_EA_FULLWIDTH, /*[F]*/ 01406 U_EA_NARROW, /*[Na]*/ 01407 U_EA_WIDE, /*[W]*/ 01408 U_EA_COUNT 01409 } UEastAsianWidth; 01410 /* 01411 * Implementation note: 01412 * Keep UEastAsianWidth constant values in sync with names list in genprops/props2.c. 01413 */ 01414 01426 typedef enum UCharNameChoice { 01427 U_UNICODE_CHAR_NAME, 01428 U_UNICODE_10_CHAR_NAME, 01429 U_EXTENDED_CHAR_NAME, 01430 U_CHAR_NAME_ALIAS, 01431 U_CHAR_NAME_CHOICE_COUNT 01432 } UCharNameChoice; 01433 01447 typedef enum UPropertyNameChoice { 01448 U_SHORT_PROPERTY_NAME, 01449 U_LONG_PROPERTY_NAME, 01450 U_PROPERTY_NAME_CHOICE_COUNT 01451 } UPropertyNameChoice; 01452 01459 typedef enum UDecompositionType { 01460 U_DT_NONE, /*[none]*/ /*See note !!*/ 01461 U_DT_CANONICAL, /*[can]*/ 01462 U_DT_COMPAT, /*[com]*/ 01463 U_DT_CIRCLE, /*[enc]*/ 01464 U_DT_FINAL, /*[fin]*/ 01465 U_DT_FONT, /*[font]*/ 01466 U_DT_FRACTION, /*[fra]*/ 01467 U_DT_INITIAL, /*[init]*/ 01468 U_DT_ISOLATED, /*[iso]*/ 01469 U_DT_MEDIAL, /*[med]*/ 01470 U_DT_NARROW, /*[nar]*/ 01471 U_DT_NOBREAK, /*[nb]*/ 01472 U_DT_SMALL, /*[sml]*/ 01473 U_DT_SQUARE, /*[sqr]*/ 01474 U_DT_SUB, /*[sub]*/ 01475 U_DT_SUPER, /*[sup]*/ 01476 U_DT_VERTICAL, /*[vert]*/ 01477 U_DT_WIDE, /*[wide]*/ 01478 U_DT_COUNT /* 18 */ 01479 } UDecompositionType; 01480 01487 typedef enum UJoiningType { 01488 U_JT_NON_JOINING, /*[U]*/ /*See note !!*/ 01489 U_JT_JOIN_CAUSING, /*[C]*/ 01490 U_JT_DUAL_JOINING, /*[D]*/ 01491 U_JT_LEFT_JOINING, /*[L]*/ 01492 U_JT_RIGHT_JOINING, /*[R]*/ 01493 U_JT_TRANSPARENT, /*[T]*/ 01494 U_JT_COUNT /* 6 */ 01495 } UJoiningType; 01496 01503 typedef enum UJoiningGroup { 01504 U_JG_NO_JOINING_GROUP, 01505 U_JG_AIN, 01506 U_JG_ALAPH, 01507 U_JG_ALEF, 01508 U_JG_BEH, 01509 U_JG_BETH, 01510 U_JG_DAL, 01511 U_JG_DALATH_RISH, 01512 U_JG_E, 01513 U_JG_FEH, 01514 U_JG_FINAL_SEMKATH, 01515 U_JG_GAF, 01516 U_JG_GAMAL, 01517 U_JG_HAH, 01518 U_JG_TEH_MARBUTA_GOAL, 01519 U_JG_HAMZA_ON_HEH_GOAL=U_JG_TEH_MARBUTA_GOAL, 01520 U_JG_HE, 01521 U_JG_HEH, 01522 U_JG_HEH_GOAL, 01523 U_JG_HETH, 01524 U_JG_KAF, 01525 U_JG_KAPH, 01526 U_JG_KNOTTED_HEH, 01527 U_JG_LAM, 01528 U_JG_LAMADH, 01529 U_JG_MEEM, 01530 U_JG_MIM, 01531 U_JG_NOON, 01532 U_JG_NUN, 01533 U_JG_PE, 01534 U_JG_QAF, 01535 U_JG_QAPH, 01536 U_JG_REH, 01537 U_JG_REVERSED_PE, 01538 U_JG_SAD, 01539 U_JG_SADHE, 01540 U_JG_SEEN, 01541 U_JG_SEMKATH, 01542 U_JG_SHIN, 01543 U_JG_SWASH_KAF, 01544 U_JG_SYRIAC_WAW, 01545 U_JG_TAH, 01546 U_JG_TAW, 01547 U_JG_TEH_MARBUTA, 01548 U_JG_TETH, 01549 U_JG_WAW, 01550 U_JG_YEH, 01551 U_JG_YEH_BARREE, 01552 U_JG_YEH_WITH_TAIL, 01553 U_JG_YUDH, 01554 U_JG_YUDH_HE, 01555 U_JG_ZAIN, 01556 U_JG_FE, 01557 U_JG_KHAPH, 01558 U_JG_ZHAIN, 01559 U_JG_BURUSHASKI_YEH_BARREE, 01560 U_JG_FARSI_YEH, 01561 U_JG_NYA, 01562 U_JG_COUNT 01563 } UJoiningGroup; 01564 01571 typedef enum UGraphemeClusterBreak { 01572 U_GCB_OTHER = 0, /*[XX]*/ /*See note !!*/ 01573 U_GCB_CONTROL = 1, /*[CN]*/ 01574 U_GCB_CR = 2, /*[CR]*/ 01575 U_GCB_EXTEND = 3, /*[EX]*/ 01576 U_GCB_L = 4, /*[L]*/ 01577 U_GCB_LF = 5, /*[LF]*/ 01578 U_GCB_LV = 6, /*[LV]*/ 01579 U_GCB_LVT = 7, /*[LVT]*/ 01580 U_GCB_T = 8, /*[T]*/ 01581 U_GCB_V = 9, /*[V]*/ 01582 U_GCB_SPACING_MARK = 10, /*[SM]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */ 01583 U_GCB_PREPEND = 11, /*[PP]*/ 01584 U_GCB_COUNT = 12 01585 } UGraphemeClusterBreak; 01586 01594 typedef enum UWordBreakValues { 01595 U_WB_OTHER = 0, /*[XX]*/ /*See note !!*/ 01596 U_WB_ALETTER = 1, /*[LE]*/ 01597 U_WB_FORMAT = 2, /*[FO]*/ 01598 U_WB_KATAKANA = 3, /*[KA]*/ 01599 U_WB_MIDLETTER = 4, /*[ML]*/ 01600 U_WB_MIDNUM = 5, /*[MN]*/ 01601 U_WB_NUMERIC = 6, /*[NU]*/ 01602 U_WB_EXTENDNUMLET = 7, /*[EX]*/ 01603 U_WB_CR = 8, /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */ 01604 U_WB_EXTEND = 9, /*[Extend]*/ 01605 U_WB_LF = 10, /*[LF]*/ 01606 U_WB_MIDNUMLET =11, /*[MB]*/ 01607 U_WB_NEWLINE =12, /*[NL]*/ 01608 U_WB_COUNT = 13 01609 } UWordBreakValues; 01610 01617 typedef enum USentenceBreak { 01618 U_SB_OTHER = 0, /*[XX]*/ /*See note !!*/ 01619 U_SB_ATERM = 1, /*[AT]*/ 01620 U_SB_CLOSE = 2, /*[CL]*/ 01621 U_SB_FORMAT = 3, /*[FO]*/ 01622 U_SB_LOWER = 4, /*[LO]*/ 01623 U_SB_NUMERIC = 5, /*[NU]*/ 01624 U_SB_OLETTER = 6, /*[LE]*/ 01625 U_SB_SEP = 7, /*[SE]*/ 01626 U_SB_SP = 8, /*[SP]*/ 01627 U_SB_STERM = 9, /*[ST]*/ 01628 U_SB_UPPER = 10, /*[UP]*/ 01629 U_SB_CR = 11, /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */ 01630 U_SB_EXTEND = 12, /*[EX]*/ 01631 U_SB_LF = 13, /*[LF]*/ 01632 U_SB_SCONTINUE = 14, /*[SC]*/ 01633 U_SB_COUNT = 15 01634 } USentenceBreak; 01635 01642 typedef enum ULineBreak { 01643 U_LB_UNKNOWN = 0, /*[XX]*/ /*See note !!*/ 01644 U_LB_AMBIGUOUS = 1, /*[AI]*/ 01645 U_LB_ALPHABETIC = 2, /*[AL]*/ 01646 U_LB_BREAK_BOTH = 3, /*[B2]*/ 01647 U_LB_BREAK_AFTER = 4, /*[BA]*/ 01648 U_LB_BREAK_BEFORE = 5, /*[BB]*/ 01649 U_LB_MANDATORY_BREAK = 6, /*[BK]*/ 01650 U_LB_CONTINGENT_BREAK = 7, /*[CB]*/ 01651 U_LB_CLOSE_PUNCTUATION = 8, /*[CL]*/ 01652 U_LB_COMBINING_MARK = 9, /*[CM]*/ 01653 U_LB_CARRIAGE_RETURN = 10, /*[CR]*/ 01654 U_LB_EXCLAMATION = 11, /*[EX]*/ 01655 U_LB_GLUE = 12, /*[GL]*/ 01656 U_LB_HYPHEN = 13, /*[HY]*/ 01657 U_LB_IDEOGRAPHIC = 14, /*[ID]*/ 01658 U_LB_INSEPERABLE = 15, 01660 U_LB_INSEPARABLE=U_LB_INSEPERABLE,/*[IN]*/ 01661 U_LB_INFIX_NUMERIC = 16, /*[IS]*/ 01662 U_LB_LINE_FEED = 17, /*[LF]*/ 01663 U_LB_NONSTARTER = 18, /*[NS]*/ 01664 U_LB_NUMERIC = 19, /*[NU]*/ 01665 U_LB_OPEN_PUNCTUATION = 20, /*[OP]*/ 01666 U_LB_POSTFIX_NUMERIC = 21, /*[PO]*/ 01667 U_LB_PREFIX_NUMERIC = 22, /*[PR]*/ 01668 U_LB_QUOTATION = 23, /*[QU]*/ 01669 U_LB_COMPLEX_CONTEXT = 24, /*[SA]*/ 01670 U_LB_SURROGATE = 25, /*[SG]*/ 01671 U_LB_SPACE = 26, /*[SP]*/ 01672 U_LB_BREAK_SYMBOLS = 27, /*[SY]*/ 01673 U_LB_ZWSPACE = 28, /*[ZW]*/ 01674 U_LB_NEXT_LINE = 29, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */ 01675 U_LB_WORD_JOINER = 30, /*[WJ]*/ 01676 U_LB_H2 = 31, /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */ 01677 U_LB_H3 = 32, /*[H3]*/ 01678 U_LB_JL = 33, /*[JL]*/ 01679 U_LB_JT = 34, /*[JT]*/ 01680 U_LB_JV = 35, /*[JV]*/ 01681 U_LB_CLOSE_PARENTHESIS = 36, /*[CP]*/ /* new in Unicode 5.2/ICU 4.4 */ 01682 U_LB_COUNT = 37 01683 } ULineBreak; 01684 01691 typedef enum UNumericType { 01692 U_NT_NONE, /*[None]*/ /*See note !!*/ 01693 U_NT_DECIMAL, /*[de]*/ 01694 U_NT_DIGIT, /*[di]*/ 01695 U_NT_NUMERIC, /*[nu]*/ 01696 U_NT_COUNT 01697 } UNumericType; 01698 01705 typedef enum UHangulSyllableType { 01706 U_HST_NOT_APPLICABLE, /*[NA]*/ /*See note !!*/ 01707 U_HST_LEADING_JAMO, /*[L]*/ 01708 U_HST_VOWEL_JAMO, /*[V]*/ 01709 U_HST_TRAILING_JAMO, /*[T]*/ 01710 U_HST_LV_SYLLABLE, /*[LV]*/ 01711 U_HST_LVT_SYLLABLE, /*[LVT]*/ 01712 U_HST_COUNT 01713 } UHangulSyllableType; 01714 01741 U_STABLE UBool U_EXPORT2 01742 u_hasBinaryProperty(UChar32 c, UProperty which); 01743 01756 U_STABLE UBool U_EXPORT2 01757 u_isUAlphabetic(UChar32 c); 01758 01771 U_STABLE UBool U_EXPORT2 01772 u_isULowercase(UChar32 c); 01773 01786 U_STABLE UBool U_EXPORT2 01787 u_isUUppercase(UChar32 c); 01788 01807 U_STABLE UBool U_EXPORT2 01808 u_isUWhiteSpace(UChar32 c); 01809 01847 U_STABLE int32_t U_EXPORT2 01848 u_getIntPropertyValue(UChar32 c, UProperty which); 01849 01868 U_STABLE int32_t U_EXPORT2 01869 u_getIntPropertyMinValue(UProperty which); 01870 01897 U_STABLE int32_t U_EXPORT2 01898 u_getIntPropertyMaxValue(UProperty which); 01899 01920 U_STABLE double U_EXPORT2 01921 u_getNumericValue(UChar32 c); 01922 01930 #define U_NO_NUMERIC_VALUE ((double)-123456789.) 01931 01955 U_STABLE UBool U_EXPORT2 01956 u_islower(UChar32 c); 01957 01982 U_STABLE UBool U_EXPORT2 01983 u_isupper(UChar32 c); 01984 01999 U_STABLE UBool U_EXPORT2 02000 u_istitle(UChar32 c); 02001 02020 U_STABLE UBool U_EXPORT2 02021 u_isdigit(UChar32 c); 02022 02041 U_STABLE UBool U_EXPORT2 02042 u_isalpha(UChar32 c); 02043 02062 U_STABLE UBool U_EXPORT2 02063 u_isalnum(UChar32 c); 02064 02085 U_STABLE UBool U_EXPORT2 02086 u_isxdigit(UChar32 c); 02087 02101 U_STABLE UBool U_EXPORT2 02102 u_ispunct(UChar32 c); 02103 02120 U_STABLE UBool U_EXPORT2 02121 u_isgraph(UChar32 c); 02122 02149 U_STABLE UBool U_EXPORT2 02150 u_isblank(UChar32 c); 02151 02174 U_STABLE UBool U_EXPORT2 02175 u_isdefined(UChar32 c); 02176 02195 U_STABLE UBool U_EXPORT2 02196 u_isspace(UChar32 c); 02197 02216 U_STABLE UBool U_EXPORT2 02217 u_isJavaSpaceChar(UChar32 c); 02218 02256 U_STABLE UBool U_EXPORT2 02257 u_isWhitespace(UChar32 c); 02258 02280 U_STABLE UBool U_EXPORT2 02281 u_iscntrl(UChar32 c); 02282 02295 U_STABLE UBool U_EXPORT2 02296 u_isISOControl(UChar32 c); 02297 02313 U_STABLE UBool U_EXPORT2 02314 u_isprint(UChar32 c); 02315 02334 U_STABLE UBool U_EXPORT2 02335 u_isbase(UChar32 c); 02336 02353 U_STABLE UCharDirection U_EXPORT2 02354 u_charDirection(UChar32 c); 02355 02371 U_STABLE UBool U_EXPORT2 02372 u_isMirrored(UChar32 c); 02373 02393 U_STABLE UChar32 U_EXPORT2 02394 u_charMirror(UChar32 c); 02395 02407 U_STABLE int8_t U_EXPORT2 02408 u_charType(UChar32 c); 02409 02423 #define U_GET_GC_MASK(c) U_MASK(u_charType(c)) 02424 02442 typedef UBool U_CALLCONV 02443 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type); 02444 02464 U_STABLE void U_EXPORT2 02465 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context); 02466 02467 #if !UCONFIG_NO_NORMALIZATION 02468 02476 U_STABLE uint8_t U_EXPORT2 02477 u_getCombiningClass(UChar32 c); 02478 02479 #endif 02480 02504 U_STABLE int32_t U_EXPORT2 02505 u_charDigitValue(UChar32 c); 02506 02516 U_STABLE UBlockCode U_EXPORT2 02517 ublock_getCode(UChar32 c); 02518 02551 U_STABLE int32_t U_EXPORT2 02552 u_charName(UChar32 code, UCharNameChoice nameChoice, 02553 char *buffer, int32_t bufferLength, 02554 UErrorCode *pErrorCode); 02555 02581 U_STABLE int32_t U_EXPORT2 02582 u_getISOComment(UChar32 c, 02583 char *dest, int32_t destCapacity, 02584 UErrorCode *pErrorCode); 02585 02606 U_STABLE UChar32 U_EXPORT2 02607 u_charFromName(UCharNameChoice nameChoice, 02608 const char *name, 02609 UErrorCode *pErrorCode); 02610 02628 typedef UBool U_CALLCONV UEnumCharNamesFn(void *context, 02629 UChar32 code, 02630 UCharNameChoice nameChoice, 02631 const char *name, 02632 int32_t length); 02633 02655 U_STABLE void U_EXPORT2 02656 u_enumCharNames(UChar32 start, UChar32 limit, 02657 UEnumCharNamesFn *fn, 02658 void *context, 02659 UCharNameChoice nameChoice, 02660 UErrorCode *pErrorCode); 02661 02693 U_STABLE const char* U_EXPORT2 02694 u_getPropertyName(UProperty property, 02695 UPropertyNameChoice nameChoice); 02696 02716 U_STABLE UProperty U_EXPORT2 02717 u_getPropertyEnum(const char* alias); 02718 02766 U_STABLE const char* U_EXPORT2 02767 u_getPropertyValueName(UProperty property, 02768 int32_t value, 02769 UPropertyNameChoice nameChoice); 02770 02802 U_STABLE int32_t U_EXPORT2 02803 u_getPropertyValueEnum(UProperty property, 02804 const char* alias); 02805 02823 U_STABLE UBool U_EXPORT2 02824 u_isIDStart(UChar32 c); 02825 02847 U_STABLE UBool U_EXPORT2 02848 u_isIDPart(UChar32 c); 02849 02870 U_STABLE UBool U_EXPORT2 02871 u_isIDIgnorable(UChar32 c); 02872 02889 U_STABLE UBool U_EXPORT2 02890 u_isJavaIDStart(UChar32 c); 02891 02910 U_STABLE UBool U_EXPORT2 02911 u_isJavaIDPart(UChar32 c); 02912 02935 U_STABLE UChar32 U_EXPORT2 02936 u_tolower(UChar32 c); 02937 02960 U_STABLE UChar32 U_EXPORT2 02961 u_toupper(UChar32 c); 02962 02985 U_STABLE UChar32 U_EXPORT2 02986 u_totitle(UChar32 c); 02987 02989 #define U_FOLD_CASE_DEFAULT 0 02990 03007 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1 03008 03031 U_STABLE UChar32 U_EXPORT2 03032 u_foldCase(UChar32 c, uint32_t options); 03033 03072 U_STABLE int32_t U_EXPORT2 03073 u_digit(UChar32 ch, int8_t radix); 03074 03103 U_STABLE UChar32 U_EXPORT2 03104 u_forDigit(int32_t digit, int8_t radix); 03105 03120 U_STABLE void U_EXPORT2 03121 u_charAge(UChar32 c, UVersionInfo versionArray); 03122 03134 U_STABLE void U_EXPORT2 03135 u_getUnicodeVersion(UVersionInfo versionArray); 03136 03137 #if !UCONFIG_NO_NORMALIZATION 03138 03159 U_STABLE int32_t U_EXPORT2 03160 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode); 03161 03162 #endif 03163 03164 03165 U_CDECL_END 03166 03167 #endif /*_UCHAR*/ 03168 /*eof*/