uchar.h

Go to the documentation of this file.
00001 /* 00002 ********************************************************************** 00003 * Copyright (C) 1997-2004, 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 "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 * !! Note: Several comments in this file are machine-read by the 00123 * genpname tool. These comments describe the correspondence between 00124 * icu enum constants and UCD entities. Do not delete them. Update 00125 * these comments as needed. 00126 * 00127 * Any comment of the form "/ *[name]* /" (spaces added) is such 00128 * a comment. 00129 * 00130 * The U_JG_* and U_GC_*_MASK constants are matched by their symbolic 00131 * name, which must match PropertyValueAliases.txt. 00132 */ 00133 00153 typedef enum UProperty { 00154 /* See note !!. Comments of the form "Binary property Dash", 00155 "Enumerated property Script", "Double property Numeric_Value", 00156 and "String property Age" are read by genpname. */ 00157 00158 /* Note: Place UCHAR_ALPHABETIC before UCHAR_BINARY_START so that 00159 debuggers display UCHAR_ALPHABETIC as the symbolic name for 0, 00160 rather than UCHAR_BINARY_START. Likewise for other *_START 00161 identifiers. */ 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, /*[none]*/ /* Special range indicating No_Block */ 00746 00748 UBLOCK_BASIC_LATIN = 1, /*[0000]*/ /*See note !!*/ 00749 00751 UBLOCK_LATIN_1_SUPPLEMENT=2, /*[0080]*/ 00752 00754 UBLOCK_LATIN_EXTENDED_A =3, /*[0100]*/ 00755 00757 UBLOCK_LATIN_EXTENDED_B =4, /*[0180]*/ 00758 00760 UBLOCK_IPA_EXTENSIONS =5, /*[0250]*/ 00761 00763 UBLOCK_SPACING_MODIFIER_LETTERS =6, /*[02B0]*/ 00764 00766 UBLOCK_COMBINING_DIACRITICAL_MARKS =7, /*[0300]*/ 00767 00772 UBLOCK_GREEK =8, /*[0370]*/ 00773 00775 UBLOCK_CYRILLIC =9, /*[0400]*/ 00776 00778 UBLOCK_ARMENIAN =10, /*[0530]*/ 00779 00781 UBLOCK_HEBREW =11, /*[0590]*/ 00782 00784 UBLOCK_ARABIC =12, /*[0600]*/ 00785 00787 UBLOCK_SYRIAC =13, /*[0700]*/ 00788 00790 UBLOCK_THAANA =14, /*[0780]*/ 00791 00793 UBLOCK_DEVANAGARI =15, /*[0900]*/ 00794 00796 UBLOCK_BENGALI =16, /*[0980]*/ 00797 00799 UBLOCK_GURMUKHI =17, /*[0A00]*/ 00800 00802 UBLOCK_GUJARATI =18, /*[0A80]*/ 00803 00805 UBLOCK_ORIYA =19, /*[0B00]*/ 00806 00808 UBLOCK_TAMIL =20, /*[0B80]*/ 00809 00811 UBLOCK_TELUGU =21, /*[0C00]*/ 00812 00814 UBLOCK_KANNADA =22, /*[0C80]*/ 00815 00817 UBLOCK_MALAYALAM =23, /*[0D00]*/ 00818 00820 UBLOCK_SINHALA =24, /*[0D80]*/ 00821 00823 UBLOCK_THAI =25, /*[0E00]*/ 00824 00826 UBLOCK_LAO =26, /*[0E80]*/ 00827 00829 UBLOCK_TIBETAN =27, /*[0F00]*/ 00830 00832 UBLOCK_MYANMAR =28, /*[1000]*/ 00833 00835 UBLOCK_GEORGIAN =29, /*[10A0]*/ 00836 00838 UBLOCK_HANGUL_JAMO =30, /*[1100]*/ 00839 00841 UBLOCK_ETHIOPIC =31, /*[1200]*/ 00842 00844 UBLOCK_CHEROKEE =32, /*[13A0]*/ 00845 00847 UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33, /*[1400]*/ 00848 00850 UBLOCK_OGHAM =34, /*[1680]*/ 00851 00853 UBLOCK_RUNIC =35, /*[16A0]*/ 00854 00856 UBLOCK_KHMER =36, /*[1780]*/ 00857 00859 UBLOCK_MONGOLIAN =37, /*[1800]*/ 00860 00862 UBLOCK_LATIN_EXTENDED_ADDITIONAL =38, /*[1E00]*/ 00863 00865 UBLOCK_GREEK_EXTENDED =39, /*[1F00]*/ 00866 00868 UBLOCK_GENERAL_PUNCTUATION =40, /*[2000]*/ 00869 00871 UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41, /*[2070]*/ 00872 00874 UBLOCK_CURRENCY_SYMBOLS =42, /*[20A0]*/ 00875 00880 UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43, /*[20D0]*/ 00881 00883 UBLOCK_LETTERLIKE_SYMBOLS =44, /*[2100]*/ 00884 00886 UBLOCK_NUMBER_FORMS =45, /*[2150]*/ 00887 00889 UBLOCK_ARROWS =46, /*[2190]*/ 00890 00892 UBLOCK_MATHEMATICAL_OPERATORS =47, /*[2200]*/ 00893 00895 UBLOCK_MISCELLANEOUS_TECHNICAL =48, /*[2300]*/ 00896 00898 UBLOCK_CONTROL_PICTURES =49, /*[2400]*/ 00899 00901 UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50, /*[2440]*/ 00902 00904 UBLOCK_ENCLOSED_ALPHANUMERICS =51, /*[2460]*/ 00905 00907 UBLOCK_BOX_DRAWING =52, /*[2500]*/ 00908 00910 UBLOCK_BLOCK_ELEMENTS =53, /*[2580]*/ 00911 00913 UBLOCK_GEOMETRIC_SHAPES =54, /*[25A0]*/ 00914 00916 UBLOCK_MISCELLANEOUS_SYMBOLS =55, /*[2600]*/ 00917 00919 UBLOCK_DINGBATS =56, /*[2700]*/ 00920 00922 UBLOCK_BRAILLE_PATTERNS =57, /*[2800]*/ 00923 00925 UBLOCK_CJK_RADICALS_SUPPLEMENT =58, /*[2E80]*/ 00926 00928 UBLOCK_KANGXI_RADICALS =59, /*[2F00]*/ 00929 00931 UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60, /*[2FF0]*/ 00932 00934 UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61, /*[3000]*/ 00935 00937 UBLOCK_HIRAGANA =62, /*[3040]*/ 00938 00940 UBLOCK_KATAKANA =63, /*[30A0]*/ 00941 00943 UBLOCK_BOPOMOFO =64, /*[3100]*/ 00944 00946 UBLOCK_HANGUL_COMPATIBILITY_JAMO =65, /*[3130]*/ 00947 00949 UBLOCK_KANBUN =66, /*[3190]*/ 00950 00952 UBLOCK_BOPOMOFO_EXTENDED =67, /*[31A0]*/ 00953 00955 UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68, /*[3200]*/ 00956 00958 UBLOCK_CJK_COMPATIBILITY =69, /*[3300]*/ 00959 00961 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70, /*[3400]*/ 00962 00964 UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71, /*[4E00]*/ 00965 00967 UBLOCK_YI_SYLLABLES =72, /*[A000]*/ 00968 00970 UBLOCK_YI_RADICALS =73, /*[A490]*/ 00971 00973 UBLOCK_HANGUL_SYLLABLES =74, /*[AC00]*/ 00974 00976 UBLOCK_HIGH_SURROGATES =75, /*[D800]*/ 00977 00979 UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76, /*[DB80]*/ 00980 00982 UBLOCK_LOW_SURROGATES =77, /*[DC00]*/ 00983 00993 UBLOCK_PRIVATE_USE = 78, 01003 UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE, /*[E000]*/ 01004 01006 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79, /*[F900]*/ 01007 01009 UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80, /*[FB00]*/ 01010 01012 UBLOCK_ARABIC_PRESENTATION_FORMS_A =81, /*[FB50]*/ 01013 01015 UBLOCK_COMBINING_HALF_MARKS =82, /*[FE20]*/ 01016 01018 UBLOCK_CJK_COMPATIBILITY_FORMS =83, /*[FE30]*/ 01019 01021 UBLOCK_SMALL_FORM_VARIANTS =84, /*[FE50]*/ 01022 01024 UBLOCK_ARABIC_PRESENTATION_FORMS_B =85, /*[FE70]*/ 01025 01027 UBLOCK_SPECIALS =86, /*[FFF0]*/ 01028 01030 UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87, /*[FF00]*/ 01031 01032 /* New blocks in Unicode 3.1 */ 01033 01035 UBLOCK_OLD_ITALIC = 88 , /*[10300]*/ 01037 UBLOCK_GOTHIC = 89 , /*[10330]*/ 01039 UBLOCK_DESERET = 90 , /*[10400]*/ 01041 UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 , /*[1D000]*/ 01043 UBLOCK_MUSICAL_SYMBOLS = 92 , /*[1D100]*/ 01045 UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93 , /*[1D400]*/ 01047 UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94 , /*[20000]*/ 01049 UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 , /*[2F800]*/ 01051 UBLOCK_TAGS = 96, /*[E0000]*/ 01052 01053 /* New blocks in Unicode 3.2 */ 01054 01059 UBLOCK_CYRILLIC_SUPPLEMENTARY = 97, 01061 UBLOCK_CYRILLIC_SUPPLEMENT = UBLOCK_CYRILLIC_SUPPLEMENTARY, /*[0500]*/ 01063 UBLOCK_TAGALOG = 98, /*[1700]*/ 01065 UBLOCK_HANUNOO = 99, /*[1720]*/ 01067 UBLOCK_BUHID = 100, /*[1740]*/ 01069 UBLOCK_TAGBANWA = 101, /*[1760]*/ 01071 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102, /*[27C0]*/ 01073 UBLOCK_SUPPLEMENTAL_ARROWS_A = 103, /*[27F0]*/ 01075 UBLOCK_SUPPLEMENTAL_ARROWS_B = 104, /*[2900]*/ 01077 UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105, /*[2980]*/ 01079 UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106, /*[2A00]*/ 01081 UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107, /*[31F0]*/ 01083 UBLOCK_VARIATION_SELECTORS = 108, /*[FE00]*/ 01085 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109, /*[F0000]*/ 01087 UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110, /*[100000]*/ 01088 01089 /* New blocks in Unicode 4 */ 01090 01092 UBLOCK_LIMBU = 111, /*[1900]*/ 01094 UBLOCK_TAI_LE = 112, /*[1950]*/ 01096 UBLOCK_KHMER_SYMBOLS = 113, /*[19E0]*/ 01098 UBLOCK_PHONETIC_EXTENSIONS = 114, /*[1D00]*/ 01100 UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115, /*[2B00]*/ 01102 UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116, /*[4DC0]*/ 01104 UBLOCK_LINEAR_B_SYLLABARY = 117, /*[10000]*/ 01106 UBLOCK_LINEAR_B_IDEOGRAMS = 118, /*[10080]*/ 01108 UBLOCK_AEGEAN_NUMBERS = 119, /*[10100]*/ 01110 UBLOCK_UGARITIC = 120, /*[10380]*/ 01112 UBLOCK_SHAVIAN = 121, /*[10450]*/ 01114 UBLOCK_OSMANYA = 122, /*[10480]*/ 01116 UBLOCK_CYPRIOT_SYLLABARY = 123, /*[10800]*/ 01118 UBLOCK_TAI_XUAN_JING_SYMBOLS = 124, /*[1D300]*/ 01120 UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125, /*[E0100]*/ 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, /*[N]*/ /*See note !!*/ 01141 U_EA_AMBIGUOUS, /*[A]*/ 01142 U_EA_HALFWIDTH, /*[H]*/ 01143 U_EA_FULLWIDTH, /*[F]*/ 01144 U_EA_NARROW, /*[Na]*/ 01145 U_EA_WIDE, /*[W]*/ 01146 U_EA_COUNT 01147 } UEastAsianWidth; 01148 /* 01149 * Implementation note: 01150 * Keep UEastAsianWidth constant values in sync with names list in genprops/props2.c. 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, /*[none]*/ /*See note !!*/ 01198 U_DT_CANONICAL, /*[can]*/ 01199 U_DT_COMPAT, /*[com]*/ 01200 U_DT_CIRCLE, /*[enc]*/ 01201 U_DT_FINAL, /*[fin]*/ 01202 U_DT_FONT, /*[font]*/ 01203 U_DT_FRACTION, /*[fra]*/ 01204 U_DT_INITIAL, /*[init]*/ 01205 U_DT_ISOLATED, /*[iso]*/ 01206 U_DT_MEDIAL, /*[med]*/ 01207 U_DT_NARROW, /*[nar]*/ 01208 U_DT_NOBREAK, /*[nb]*/ 01209 U_DT_SMALL, /*[sml]*/ 01210 U_DT_SQUARE, /*[sqr]*/ 01211 U_DT_SUB, /*[sub]*/ 01212 U_DT_SUPER, /*[sup]*/ 01213 U_DT_VERTICAL, /*[vert]*/ 01214 U_DT_WIDE, /*[wide]*/ 01215 U_DT_COUNT /* 18 */ 01216 } UDecompositionType; 01217 01224 typedef enum UJoiningType { 01225 U_JT_NON_JOINING, /*[U]*/ /*See note !!*/ 01226 U_JT_JOIN_CAUSING, /*[C]*/ 01227 U_JT_DUAL_JOINING, /*[D]*/ 01228 U_JT_LEFT_JOINING, /*[L]*/ 01229 U_JT_RIGHT_JOINING, /*[R]*/ 01230 U_JT_TRANSPARENT, /*[T]*/ 01231 U_JT_COUNT /* 6 */ 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, /*[XX]*/ /*See note !!*/ 01306 U_LB_AMBIGUOUS, /*[AI]*/ 01307 U_LB_ALPHABETIC, /*[AL]*/ 01308 U_LB_BREAK_BOTH, /*[B2]*/ 01309 U_LB_BREAK_AFTER, /*[BA]*/ 01310 U_LB_BREAK_BEFORE, /*[BB]*/ 01311 U_LB_MANDATORY_BREAK, /*[BK]*/ 01312 U_LB_CONTINGENT_BREAK, /*[CB]*/ 01313 U_LB_CLOSE_PUNCTUATION, /*[CL]*/ 01314 U_LB_COMBINING_MARK, /*[CM]*/ 01315 U_LB_CARRIAGE_RETURN, /*[CR]*/ 01316 U_LB_EXCLAMATION, /*[EX]*/ 01317 U_LB_GLUE, /*[GL]*/ 01318 U_LB_HYPHEN, /*[HY]*/ 01319 U_LB_IDEOGRAPHIC, /*[ID]*/ 01320 U_LB_INSEPERABLE, 01322 U_LB_INSEPARABLE=U_LB_INSEPERABLE,/*[IN]*/ 01323 U_LB_INFIX_NUMERIC, /*[IS]*/ 01324 U_LB_LINE_FEED, /*[LF]*/ 01325 U_LB_NONSTARTER, /*[NS]*/ 01326 U_LB_NUMERIC, /*[NU]*/ 01327 U_LB_OPEN_PUNCTUATION, /*[OP]*/ 01328 U_LB_POSTFIX_NUMERIC, /*[PO]*/ 01329 U_LB_PREFIX_NUMERIC, /*[PR]*/ 01330 U_LB_QUOTATION, /*[QU]*/ 01331 U_LB_COMPLEX_CONTEXT, /*[SA]*/ 01332 U_LB_SURROGATE, /*[SG]*/ 01333 U_LB_SPACE, /*[SP]*/ 01334 U_LB_BREAK_SYMBOLS, /*[SY]*/ 01335 U_LB_ZWSPACE, /*[ZW]*/ 01336 U_LB_NEXT_LINE, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */ 01337 U_LB_WORD_JOINER, /*[WJ]*/ 01338 U_LB_COUNT 01339 } ULineBreak; 01340 01347 typedef enum UNumericType { 01348 U_NT_NONE, /*[None]*/ /*See note !!*/ 01349 U_NT_DECIMAL, /*[de]*/ 01350 U_NT_DIGIT, /*[di]*/ 01351 U_NT_NUMERIC, /*[nu]*/ 01352 U_NT_COUNT 01353 } UNumericType; 01354 01361 typedef enum UHangulSyllableType { 01362 U_HST_NOT_APPLICABLE, /*[NA]*/ /*See note !!*/ 01363 U_HST_LEADING_JAMO, /*[L]*/ 01364 U_HST_VOWEL_JAMO, /*[V]*/ 01365 U_HST_TRAILING_JAMO, /*[T]*/ 01366 U_HST_LV_SYLLABLE, /*[LV]*/ 01367 U_HST_LVT_SYLLABLE, /*[LVT]*/ 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_DRAFT UBool U_EXPORT2 01743 u_isxdigit(UChar32 c); 01744 01758 U_DRAFT UBool U_EXPORT2 01759 u_ispunct(UChar32 c); 01760 01777 U_DRAFT UBool U_EXPORT2 01778 u_isgraph(UChar32 c); 01779 01806 U_DRAFT 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_DRAFT 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_DRAFT 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 /*_UCHAR*/ 02798 /*eof*/

Generated on Fri Jun 18 12:36:00 2004 for ICU by doxygen 1.3.7