- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

# uchar.h

Go to the documentation of this file.

    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 "5.2"
    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
    00564     UCHAR_INVALID_CODE = -1
    00565 } UProperty;
    00566
    00572 typedef enum UCharCategory
    00573 {
    00577     U_UNASSIGNED              = 0,
    00579     U_GENERAL_OTHER_TYPES     = 0,
    00581     U_UPPERCASE_LETTER        = 1,
    00583     U_LOWERCASE_LETTER        = 2,
    00585     U_TITLECASE_LETTER        = 3,
    00587     U_MODIFIER_LETTER         = 4,
    00589     U_OTHER_LETTER            = 5,
    00591     U_NON_SPACING_MARK        = 6,
    00593     U_ENCLOSING_MARK          = 7,
    00595     U_COMBINING_SPACING_MARK  = 8,
    00597     U_DECIMAL_DIGIT_NUMBER    = 9,
    00599     U_LETTER_NUMBER           = 10,
    00601     U_OTHER_NUMBER            = 11,
    00603     U_SPACE_SEPARATOR         = 12,
    00605     U_LINE_SEPARATOR          = 13,
    00607     U_PARAGRAPH_SEPARATOR     = 14,
    00609     U_CONTROL_CHAR            = 15,
    00611     U_FORMAT_CHAR             = 16,
    00613     U_PRIVATE_USE_CHAR        = 17,
    00615     U_SURROGATE               = 18,
    00617     U_DASH_PUNCTUATION        = 19,
    00619     U_START_PUNCTUATION       = 20,
    00621     U_END_PUNCTUATION         = 21,
    00623     U_CONNECTOR_PUNCTUATION   = 22,
    00625     U_OTHER_PUNCTUATION       = 23,
    00627     U_MATH_SYMBOL             = 24,
    00629     U_CURRENCY_SYMBOL         = 25,
    00631     U_MODIFIER_SYMBOL         = 26,
    00633     U_OTHER_SYMBOL            = 27,
    00635     U_INITIAL_PUNCTUATION     = 28,
    00637     U_FINAL_PUNCTUATION       = 29,
    00639     U_CHAR_CATEGORY_COUNT
    00640 } UCharCategory;
    00641
    00656 #define U_GC_CN_MASK    U_MASK(U_GENERAL_OTHER_TYPES)
    00657
    00659 #define U_GC_LU_MASK    U_MASK(U_UPPERCASE_LETTER)
    00660
    00661 #define U_GC_LL_MASK    U_MASK(U_LOWERCASE_LETTER)
    00662
    00663 #define U_GC_LT_MASK    U_MASK(U_TITLECASE_LETTER)
    00664
    00665 #define U_GC_LM_MASK    U_MASK(U_MODIFIER_LETTER)
    00666
    00667 #define U_GC_LO_MASK    U_MASK(U_OTHER_LETTER)
    00668
    00670 #define U_GC_MN_MASK    U_MASK(U_NON_SPACING_MARK)
    00671
    00672 #define U_GC_ME_MASK    U_MASK(U_ENCLOSING_MARK)
    00673
    00674 #define U_GC_MC_MASK    U_MASK(U_COMBINING_SPACING_MARK)
    00675
    00677 #define U_GC_ND_MASK    U_MASK(U_DECIMAL_DIGIT_NUMBER)
    00678
    00679 #define U_GC_NL_MASK    U_MASK(U_LETTER_NUMBER)
    00680
    00681 #define U_GC_NO_MASK    U_MASK(U_OTHER_NUMBER)
    00682
    00684 #define U_GC_ZS_MASK    U_MASK(U_SPACE_SEPARATOR)
    00685
    00686 #define U_GC_ZL_MASK    U_MASK(U_LINE_SEPARATOR)
    00687
    00688 #define U_GC_ZP_MASK    U_MASK(U_PARAGRAPH_SEPARATOR)
    00689
    00691 #define U_GC_CC_MASK    U_MASK(U_CONTROL_CHAR)
    00692
    00693 #define U_GC_CF_MASK    U_MASK(U_FORMAT_CHAR)
    00694
    00695 #define U_GC_CO_MASK    U_MASK(U_PRIVATE_USE_CHAR)
    00696
    00697 #define U_GC_CS_MASK    U_MASK(U_SURROGATE)
    00698
    00700 #define U_GC_PD_MASK    U_MASK(U_DASH_PUNCTUATION)
    00701
    00702 #define U_GC_PS_MASK    U_MASK(U_START_PUNCTUATION)
    00703
    00704 #define U_GC_PE_MASK    U_MASK(U_END_PUNCTUATION)
    00705
    00706 #define U_GC_PC_MASK    U_MASK(U_CONNECTOR_PUNCTUATION)
    00707
    00708 #define U_GC_PO_MASK    U_MASK(U_OTHER_PUNCTUATION)
    00709
    00711 #define U_GC_SM_MASK    U_MASK(U_MATH_SYMBOL)
    00712
    00713 #define U_GC_SC_MASK    U_MASK(U_CURRENCY_SYMBOL)
    00714
    00715 #define U_GC_SK_MASK    U_MASK(U_MODIFIER_SYMBOL)
    00716
    00717 #define U_GC_SO_MASK    U_MASK(U_OTHER_SYMBOL)
    00718
    00720 #define U_GC_PI_MASK    U_MASK(U_INITIAL_PUNCTUATION)
    00721
    00722 #define U_GC_PF_MASK    U_MASK(U_FINAL_PUNCTUATION)
    00723
    00724
    00726 #define U_GC_L_MASK \
    00727             (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
    00728
    00730 #define U_GC_LC_MASK \
    00731             (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
    00732
    00734 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
    00735
    00737 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
    00738
    00740 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
    00741
    00743 #define U_GC_C_MASK \
    00744             (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
    00745
    00747 #define U_GC_P_MASK \
    00748             (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
    00749              U_GC_PI_MASK|U_GC_PF_MASK)
    00750
    00752 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
    00753
    00758 typedef enum UCharDirection {
    00762     U_LEFT_TO_RIGHT               = 0,
    00764     U_RIGHT_TO_LEFT               = 1,
    00766     U_EUROPEAN_NUMBER             = 2,
    00768     U_EUROPEAN_NUMBER_SEPARATOR   = 3,
    00770     U_EUROPEAN_NUMBER_TERMINATOR  = 4,
    00772     U_ARABIC_NUMBER               = 5,
    00774     U_COMMON_NUMBER_SEPARATOR     = 6,
    00776     U_BLOCK_SEPARATOR             = 7,
    00778     U_SEGMENT_SEPARATOR           = 8,
    00780     U_WHITE_SPACE_NEUTRAL         = 9,
    00782     U_OTHER_NEUTRAL               = 10,
    00784     U_LEFT_TO_RIGHT_EMBEDDING     = 11,
    00786     U_LEFT_TO_RIGHT_OVERRIDE      = 12,
    00788     U_RIGHT_TO_LEFT_ARABIC        = 13,
    00790     U_RIGHT_TO_LEFT_EMBEDDING     = 14,
    00792     U_RIGHT_TO_LEFT_OVERRIDE      = 15,
    00794     U_POP_DIRECTIONAL_FORMAT      = 16,
    00796     U_DIR_NON_SPACING_MARK        = 17,
    00798     U_BOUNDARY_NEUTRAL            = 18,
    00800     U_CHAR_DIRECTION_COUNT
    00801 } UCharDirection;
    00802
    00807 enum UBlockCode {
    00808
    00810     UBLOCK_NO_BLOCK = 0, /*[none]*/ /* Special range indicating No_Block */
    00811
    00813     UBLOCK_BASIC_LATIN = 1, /*[0000]*/ /*See note !!*/
    00814
    00816     UBLOCK_LATIN_1_SUPPLEMENT=2, /*[0080]*/
    00817
    00819     UBLOCK_LATIN_EXTENDED_A =3, /*[0100]*/
    00820
    00822     UBLOCK_LATIN_EXTENDED_B =4, /*[0180]*/
    00823
    00825     UBLOCK_IPA_EXTENSIONS =5, /*[0250]*/
    00826
    00828     UBLOCK_SPACING_MODIFIER_LETTERS =6, /*[02B0]*/
    00829
    00831     UBLOCK_COMBINING_DIACRITICAL_MARKS =7, /*[0300]*/
    00832
    00837     UBLOCK_GREEK =8, /*[0370]*/
    00838
    00840     UBLOCK_CYRILLIC =9, /*[0400]*/
    00841
    00843     UBLOCK_ARMENIAN =10, /*[0530]*/
    00844
    00846     UBLOCK_HEBREW =11, /*[0590]*/
    00847
    00849     UBLOCK_ARABIC =12, /*[0600]*/
    00850
    00852     UBLOCK_SYRIAC =13, /*[0700]*/
    00853
    00855     UBLOCK_THAANA =14, /*[0780]*/
    00856
    00858     UBLOCK_DEVANAGARI =15, /*[0900]*/
    00859
    00861     UBLOCK_BENGALI =16, /*[0980]*/
    00862
    00864     UBLOCK_GURMUKHI =17, /*[0A00]*/
    00865
    00867     UBLOCK_GUJARATI =18, /*[0A80]*/
    00868
    00870     UBLOCK_ORIYA =19, /*[0B00]*/
    00871
    00873     UBLOCK_TAMIL =20, /*[0B80]*/
    00874
    00876     UBLOCK_TELUGU =21, /*[0C00]*/
    00877
    00879     UBLOCK_KANNADA =22, /*[0C80]*/
    00880
    00882     UBLOCK_MALAYALAM =23, /*[0D00]*/
    00883
    00885     UBLOCK_SINHALA =24, /*[0D80]*/
    00886
    00888     UBLOCK_THAI =25, /*[0E00]*/
    00889
    00891     UBLOCK_LAO =26, /*[0E80]*/
    00892
    00894     UBLOCK_TIBETAN =27, /*[0F00]*/
    00895
    00897     UBLOCK_MYANMAR =28, /*[1000]*/
    00898
    00900     UBLOCK_GEORGIAN =29, /*[10A0]*/
    00901
    00903     UBLOCK_HANGUL_JAMO =30, /*[1100]*/
    00904
    00906     UBLOCK_ETHIOPIC =31, /*[1200]*/
    00907
    00909     UBLOCK_CHEROKEE =32, /*[13A0]*/
    00910
    00912     UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33, /*[1400]*/
    00913
    00915     UBLOCK_OGHAM =34, /*[1680]*/
    00916
    00918     UBLOCK_RUNIC =35, /*[16A0]*/
    00919
    00921     UBLOCK_KHMER =36, /*[1780]*/
    00922
    00924     UBLOCK_MONGOLIAN =37, /*[1800]*/
    00925
    00927     UBLOCK_LATIN_EXTENDED_ADDITIONAL =38, /*[1E00]*/
    00928
    00930     UBLOCK_GREEK_EXTENDED =39, /*[1F00]*/
    00931
    00933     UBLOCK_GENERAL_PUNCTUATION =40, /*[2000]*/
    00934
    00936     UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41, /*[2070]*/
    00937
    00939     UBLOCK_CURRENCY_SYMBOLS =42, /*[20A0]*/
    00940
    00945     UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43, /*[20D0]*/
    00946
    00948     UBLOCK_LETTERLIKE_SYMBOLS =44, /*[2100]*/
    00949
    00951     UBLOCK_NUMBER_FORMS =45, /*[2150]*/
    00952
    00954     UBLOCK_ARROWS =46, /*[2190]*/
    00955
    00957     UBLOCK_MATHEMATICAL_OPERATORS =47, /*[2200]*/
    00958
    00960     UBLOCK_MISCELLANEOUS_TECHNICAL =48, /*[2300]*/
    00961
    00963     UBLOCK_CONTROL_PICTURES =49, /*[2400]*/
    00964
    00966     UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50, /*[2440]*/
    00967
    00969     UBLOCK_ENCLOSED_ALPHANUMERICS =51, /*[2460]*/
    00970
    00972     UBLOCK_BOX_DRAWING =52, /*[2500]*/
    00973
    00975     UBLOCK_BLOCK_ELEMENTS =53, /*[2580]*/
    00976
    00978     UBLOCK_GEOMETRIC_SHAPES =54, /*[25A0]*/
    00979
    00981     UBLOCK_MISCELLANEOUS_SYMBOLS =55, /*[2600]*/
    00982
    00984     UBLOCK_DINGBATS =56, /*[2700]*/
    00985
    00987     UBLOCK_BRAILLE_PATTERNS =57, /*[2800]*/
    00988
    00990     UBLOCK_CJK_RADICALS_SUPPLEMENT =58, /*[2E80]*/
    00991
    00993     UBLOCK_KANGXI_RADICALS =59, /*[2F00]*/
    00994
    00996     UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60, /*[2FF0]*/
    00997
    00999     UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61, /*[3000]*/
    01000
    01002     UBLOCK_HIRAGANA =62, /*[3040]*/
    01003
    01005     UBLOCK_KATAKANA =63, /*[30A0]*/
    01006
    01008     UBLOCK_BOPOMOFO =64, /*[3100]*/
    01009
    01011     UBLOCK_HANGUL_COMPATIBILITY_JAMO =65, /*[3130]*/
    01012
    01014     UBLOCK_KANBUN =66, /*[3190]*/
    01015
    01017     UBLOCK_BOPOMOFO_EXTENDED =67, /*[31A0]*/
    01018
    01020     UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68, /*[3200]*/
    01021
    01023     UBLOCK_CJK_COMPATIBILITY =69, /*[3300]*/
    01024
    01026     UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70, /*[3400]*/
    01027
    01029     UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71, /*[4E00]*/
    01030
    01032     UBLOCK_YI_SYLLABLES =72, /*[A000]*/
    01033
    01035     UBLOCK_YI_RADICALS =73, /*[A490]*/
    01036
    01038     UBLOCK_HANGUL_SYLLABLES =74, /*[AC00]*/
    01039
    01041     UBLOCK_HIGH_SURROGATES =75, /*[D800]*/
    01042
    01044     UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76, /*[DB80]*/
    01045
    01047     UBLOCK_LOW_SURROGATES =77, /*[DC00]*/
    01048
    01058     UBLOCK_PRIVATE_USE = 78,
    01068     UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE, /*[E000]*/
    01069
    01071     UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79, /*[F900]*/
    01072
    01074     UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80, /*[FB00]*/
    01075
    01077     UBLOCK_ARABIC_PRESENTATION_FORMS_A =81, /*[FB50]*/
    01078
    01080     UBLOCK_COMBINING_HALF_MARKS =82, /*[FE20]*/
    01081
    01083     UBLOCK_CJK_COMPATIBILITY_FORMS =83, /*[FE30]*/
    01084
    01086     UBLOCK_SMALL_FORM_VARIANTS =84, /*[FE50]*/
    01087
    01089     UBLOCK_ARABIC_PRESENTATION_FORMS_B =85, /*[FE70]*/
    01090
    01092     UBLOCK_SPECIALS =86, /*[FFF0]*/
    01093
    01095     UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87, /*[FF00]*/
    01096
    01097     /* New blocks in Unicode 3.1 */
    01098
    01100     UBLOCK_OLD_ITALIC = 88  , /*[10300]*/
    01102     UBLOCK_GOTHIC = 89 , /*[10330]*/
    01104     UBLOCK_DESERET = 90 , /*[10400]*/
    01106     UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 , /*[1D000]*/
    01108     UBLOCK_MUSICAL_SYMBOLS = 92 , /*[1D100]*/
    01110     UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93  , /*[1D400]*/
    01112     UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B  = 94 , /*[20000]*/
    01114     UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 , /*[2F800]*/
    01116     UBLOCK_TAGS = 96, /*[E0000]*/
    01117
    01118     /* New blocks in Unicode 3.2 */
    01119
    01124     UBLOCK_CYRILLIC_SUPPLEMENTARY = 97,
    01126     UBLOCK_CYRILLIC_SUPPLEMENT = UBLOCK_CYRILLIC_SUPPLEMENTARY, /*[0500]*/
    01128     UBLOCK_TAGALOG = 98, /*[1700]*/
    01130     UBLOCK_HANUNOO = 99, /*[1720]*/
    01132     UBLOCK_BUHID = 100, /*[1740]*/
    01134     UBLOCK_TAGBANWA = 101, /*[1760]*/
    01136     UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102, /*[27C0]*/
    01138     UBLOCK_SUPPLEMENTAL_ARROWS_A = 103, /*[27F0]*/
    01140     UBLOCK_SUPPLEMENTAL_ARROWS_B = 104, /*[2900]*/
    01142     UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105, /*[2980]*/
    01144     UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106, /*[2A00]*/
    01146     UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107, /*[31F0]*/
    01148     UBLOCK_VARIATION_SELECTORS = 108, /*[FE00]*/
    01150     UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109, /*[F0000]*/
    01152     UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110, /*[100000]*/
    01153
    01154     /* New blocks in Unicode 4 */
    01155
    01157     UBLOCK_LIMBU = 111, /*[1900]*/
    01159     UBLOCK_TAI_LE = 112, /*[1950]*/
    01161     UBLOCK_KHMER_SYMBOLS = 113, /*[19E0]*/
    01163     UBLOCK_PHONETIC_EXTENSIONS = 114, /*[1D00]*/
    01165     UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115, /*[2B00]*/
    01167     UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116, /*[4DC0]*/
    01169     UBLOCK_LINEAR_B_SYLLABARY = 117, /*[10000]*/
    01171     UBLOCK_LINEAR_B_IDEOGRAMS = 118, /*[10080]*/
    01173     UBLOCK_AEGEAN_NUMBERS = 119, /*[10100]*/
    01175     UBLOCK_UGARITIC = 120, /*[10380]*/
    01177     UBLOCK_SHAVIAN = 121, /*[10450]*/
    01179     UBLOCK_OSMANYA = 122, /*[10480]*/
    01181     UBLOCK_CYPRIOT_SYLLABARY = 123, /*[10800]*/
    01183     UBLOCK_TAI_XUAN_JING_SYMBOLS = 124, /*[1D300]*/
    01185     UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125, /*[E0100]*/
    01186
    01187     /* New blocks in Unicode 4.1 */
    01188
    01190     UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION = 126, /*[1D200]*/
    01192     UBLOCK_ANCIENT_GREEK_NUMBERS = 127, /*[10140]*/
    01194     UBLOCK_ARABIC_SUPPLEMENT = 128, /*[0750]*/
    01196     UBLOCK_BUGINESE = 129, /*[1A00]*/
    01198     UBLOCK_CJK_STROKES = 130, /*[31C0]*/
    01200     UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131, /*[1DC0]*/
    01202     UBLOCK_COPTIC = 132, /*[2C80]*/
    01204     UBLOCK_ETHIOPIC_EXTENDED = 133, /*[2D80]*/
    01206     UBLOCK_ETHIOPIC_SUPPLEMENT = 134, /*[1380]*/
    01208     UBLOCK_GEORGIAN_SUPPLEMENT = 135, /*[2D00]*/
    01210     UBLOCK_GLAGOLITIC = 136, /*[2C00]*/
    01212     UBLOCK_KHAROSHTHI = 137, /*[10A00]*/
    01214     UBLOCK_MODIFIER_TONE_LETTERS = 138, /*[A700]*/
    01216     UBLOCK_NEW_TAI_LUE = 139, /*[1980]*/
    01218     UBLOCK_OLD_PERSIAN = 140, /*[103A0]*/
    01220     UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT = 141, /*[1D80]*/
    01222     UBLOCK_SUPPLEMENTAL_PUNCTUATION = 142, /*[2E00]*/
    01224     UBLOCK_SYLOTI_NAGRI = 143, /*[A800]*/
    01226     UBLOCK_TIFINAGH = 144, /*[2D30]*/
    01228     UBLOCK_VERTICAL_FORMS = 145, /*[FE10]*/
    01229
    01230     /* New blocks in Unicode 5.0 */
    01231
    01233     UBLOCK_NKO = 146, /*[07C0]*/
    01235     UBLOCK_BALINESE = 147, /*[1B00]*/
    01237     UBLOCK_LATIN_EXTENDED_C = 148, /*[2C60]*/
    01239     UBLOCK_LATIN_EXTENDED_D = 149, /*[A720]*/
    01241     UBLOCK_PHAGS_PA = 150, /*[A840]*/
    01243     UBLOCK_PHOENICIAN = 151, /*[10900]*/
    01245     UBLOCK_CUNEIFORM = 152, /*[12000]*/
    01247     UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153, /*[12400]*/
    01249     UBLOCK_COUNTING_ROD_NUMERALS = 154, /*[1D360]*/
    01250
    01251     /* New blocks in Unicode 5.1 */
    01252
    01254     UBLOCK_SUNDANESE = 155, /*[1B80]*/
    01256     UBLOCK_LEPCHA = 156, /*[1C00]*/
    01258     UBLOCK_OL_CHIKI = 157, /*[1C50]*/
    01260     UBLOCK_CYRILLIC_EXTENDED_A = 158, /*[2DE0]*/
    01262     UBLOCK_VAI = 159, /*[A500]*/
    01264     UBLOCK_CYRILLIC_EXTENDED_B = 160, /*[A640]*/
    01266     UBLOCK_SAURASHTRA = 161, /*[A880]*/
    01268     UBLOCK_KAYAH_LI = 162, /*[A900]*/
    01270     UBLOCK_REJANG = 163, /*[A930]*/
    01272     UBLOCK_CHAM = 164, /*[AA00]*/
    01274     UBLOCK_ANCIENT_SYMBOLS = 165, /*[10190]*/
    01276     UBLOCK_PHAISTOS_DISC = 166, /*[101D0]*/
    01278     UBLOCK_LYCIAN = 167, /*[10280]*/
    01280     UBLOCK_CARIAN = 168, /*[102A0]*/
    01282     UBLOCK_LYDIAN = 169, /*[10920]*/
    01284     UBLOCK_MAHJONG_TILES = 170, /*[1F000]*/
    01286     UBLOCK_DOMINO_TILES = 171, /*[1F030]*/
    01287
    01288     /* New blocks in Unicode 5.2 */
    01289
    01291     UBLOCK_SAMARITAN = 172, /*[0800]*/
    01293     UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173, /*[18B0]*/
    01295     UBLOCK_TAI_THAM = 174, /*[1A20]*/
    01297     UBLOCK_VEDIC_EXTENSIONS = 175, /*[1CD0]*/
    01299     UBLOCK_LISU = 176, /*[A4D0]*/
    01301     UBLOCK_BAMUM = 177, /*[A6A0]*/
    01303     UBLOCK_COMMON_INDIC_NUMBER_FORMS = 178, /*[A830]*/
    01305     UBLOCK_DEVANAGARI_EXTENDED = 179, /*[A8E0]*/
    01307     UBLOCK_HANGUL_JAMO_EXTENDED_A = 180, /*[A960]*/
    01309     UBLOCK_JAVANESE = 181, /*[A980]*/
    01311     UBLOCK_MYANMAR_EXTENDED_A = 182, /*[AA60]*/
    01313     UBLOCK_TAI_VIET = 183, /*[AA80]*/
    01315     UBLOCK_MEETEI_MAYEK = 184, /*[ABC0]*/
    01317     UBLOCK_HANGUL_JAMO_EXTENDED_B = 185, /*[D7B0]*/
    01319     UBLOCK_IMPERIAL_ARAMAIC = 186, /*[10840]*/
    01321     UBLOCK_OLD_SOUTH_ARABIAN = 187, /*[10A60]*/
    01323     UBLOCK_AVESTAN = 188, /*[10B00]*/
    01325     UBLOCK_INSCRIPTIONAL_PARTHIAN = 189, /*[10B40]*/
    01327     UBLOCK_INSCRIPTIONAL_PAHLAVI = 190, /*[10B60]*/
    01329     UBLOCK_OLD_TURKIC = 191, /*[10C00]*/
    01331     UBLOCK_RUMI_NUMERAL_SYMBOLS = 192, /*[10E60]*/
    01333     UBLOCK_KAITHI = 193, /*[11080]*/
    01335     UBLOCK_EGYPTIAN_HIEROGLYPHS = 194, /*[13000]*/
    01337     UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195, /*[1F100]*/
    01339     UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196, /*[1F200]*/
    01341     UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197, /*[2A700]*/
    01342
    01344     UBLOCK_COUNT = 198,
    01345
    01347     UBLOCK_INVALID_CODE=-1
    01348 };
    01349
    01351 typedef enum UBlockCode UBlockCode;
    01352
    01360 typedef enum UEastAsianWidth {
    01361     U_EA_NEUTRAL,   /*[N]*/ /*See note !!*/
    01362     U_EA_AMBIGUOUS, /*[A]*/
    01363     U_EA_HALFWIDTH, /*[H]*/
    01364     U_EA_FULLWIDTH, /*[F]*/
    01365     U_EA_NARROW,    /*[Na]*/
    01366     U_EA_WIDE,      /*[W]*/
    01367     U_EA_COUNT
    01368 } UEastAsianWidth;
    01369 /*
    01370  * Implementation note:
    01371  * Keep UEastAsianWidth constant values in sync with names list in genprops/props2.c.
    01372  */
    01373
    01385 typedef enum UCharNameChoice {
    01386     U_UNICODE_CHAR_NAME,
    01387     U_UNICODE_10_CHAR_NAME,
    01388     U_EXTENDED_CHAR_NAME,
    01389     U_CHAR_NAME_ALIAS,
    01390     U_CHAR_NAME_CHOICE_COUNT
    01391 } UCharNameChoice;
    01392
    01406 typedef enum UPropertyNameChoice {
    01407     U_SHORT_PROPERTY_NAME,
    01408     U_LONG_PROPERTY_NAME,
    01409     U_PROPERTY_NAME_CHOICE_COUNT
    01410 } UPropertyNameChoice;
    01411
    01418 typedef enum UDecompositionType {
    01419     U_DT_NONE,              /*[none]*/ /*See note !!*/
    01420     U_DT_CANONICAL,         /*[can]*/
    01421     U_DT_COMPAT,            /*[com]*/
    01422     U_DT_CIRCLE,            /*[enc]*/
    01423     U_DT_FINAL,             /*[fin]*/
    01424     U_DT_FONT,              /*[font]*/
    01425     U_DT_FRACTION,          /*[fra]*/
    01426     U_DT_INITIAL,           /*[init]*/
    01427     U_DT_ISOLATED,          /*[iso]*/
    01428     U_DT_MEDIAL,            /*[med]*/
    01429     U_DT_NARROW,            /*[nar]*/
    01430     U_DT_NOBREAK,           /*[nb]*/
    01431     U_DT_SMALL,             /*[sml]*/
    01432     U_DT_SQUARE,            /*[sqr]*/
    01433     U_DT_SUB,               /*[sub]*/
    01434     U_DT_SUPER,             /*[sup]*/
    01435     U_DT_VERTICAL,          /*[vert]*/
    01436     U_DT_WIDE,              /*[wide]*/
    01437     U_DT_COUNT /* 18 */
    01438 } UDecompositionType;
    01439
    01446 typedef enum UJoiningType {
    01447     U_JT_NON_JOINING,       /*[U]*/ /*See note !!*/
    01448     U_JT_JOIN_CAUSING,      /*[C]*/
    01449     U_JT_DUAL_JOINING,      /*[D]*/
    01450     U_JT_LEFT_JOINING,      /*[L]*/
    01451     U_JT_RIGHT_JOINING,     /*[R]*/
    01452     U_JT_TRANSPARENT,       /*[T]*/
    01453     U_JT_COUNT /* 6 */
    01454 } UJoiningType;
    01455
    01462 typedef enum UJoiningGroup {
    01463     U_JG_NO_JOINING_GROUP,
    01464     U_JG_AIN,
    01465     U_JG_ALAPH,
    01466     U_JG_ALEF,
    01467     U_JG_BEH,
    01468     U_JG_BETH,
    01469     U_JG_DAL,
    01470     U_JG_DALATH_RISH,
    01471     U_JG_E,
    01472     U_JG_FEH,
    01473     U_JG_FINAL_SEMKATH,
    01474     U_JG_GAF,
    01475     U_JG_GAMAL,
    01476     U_JG_HAH,
    01477     U_JG_HAMZA_ON_HEH_GOAL,
    01478     U_JG_HE,
    01479     U_JG_HEH,
    01480     U_JG_HEH_GOAL,
    01481     U_JG_HETH,
    01482     U_JG_KAF,
    01483     U_JG_KAPH,
    01484     U_JG_KNOTTED_HEH,
    01485     U_JG_LAM,
    01486     U_JG_LAMADH,
    01487     U_JG_MEEM,
    01488     U_JG_MIM,
    01489     U_JG_NOON,
    01490     U_JG_NUN,
    01491     U_JG_PE,
    01492     U_JG_QAF,
    01493     U_JG_QAPH,
    01494     U_JG_REH,
    01495     U_JG_REVERSED_PE,
    01496     U_JG_SAD,
    01497     U_JG_SADHE,
    01498     U_JG_SEEN,
    01499     U_JG_SEMKATH,
    01500     U_JG_SHIN,
    01501     U_JG_SWASH_KAF,
    01502     U_JG_SYRIAC_WAW,
    01503     U_JG_TAH,
    01504     U_JG_TAW,
    01505     U_JG_TEH_MARBUTA,
    01506     U_JG_TETH,
    01507     U_JG_WAW,
    01508     U_JG_YEH,
    01509     U_JG_YEH_BARREE,
    01510     U_JG_YEH_WITH_TAIL,
    01511     U_JG_YUDH,
    01512     U_JG_YUDH_HE,
    01513     U_JG_ZAIN,
    01514     U_JG_FE,
    01515     U_JG_KHAPH,
    01516     U_JG_ZHAIN,
    01517     U_JG_BURUSHASKI_YEH_BARREE,
    01518     U_JG_FARSI_YEH,
    01519     U_JG_NYA,
    01520     U_JG_COUNT
    01521 } UJoiningGroup;
    01522
    01529 typedef enum UGraphemeClusterBreak {
    01530     U_GCB_OTHER = 0,            /*[XX]*/ /*See note !!*/
    01531     U_GCB_CONTROL = 1,          /*[CN]*/
    01532     U_GCB_CR = 2,               /*[CR]*/
    01533     U_GCB_EXTEND = 3,           /*[EX]*/
    01534     U_GCB_L = 4,                /*[L]*/
    01535     U_GCB_LF = 5,               /*[LF]*/
    01536     U_GCB_LV = 6,               /*[LV]*/
    01537     U_GCB_LVT = 7,              /*[LVT]*/
    01538     U_GCB_T = 8,                /*[T]*/
    01539     U_GCB_V = 9,                /*[V]*/
    01540     U_GCB_SPACING_MARK = 10,    /*[SM]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
    01541     U_GCB_PREPEND = 11,         /*[PP]*/
    01542     U_GCB_COUNT = 12
    01543 } UGraphemeClusterBreak;
    01544
    01552 typedef enum UWordBreakValues {
    01553     U_WB_OTHER = 0,             /*[XX]*/ /*See note !!*/
    01554     U_WB_ALETTER = 1,           /*[LE]*/
    01555     U_WB_FORMAT = 2,            /*[FO]*/
    01556     U_WB_KATAKANA = 3,          /*[KA]*/
    01557     U_WB_MIDLETTER = 4,         /*[ML]*/
    01558     U_WB_MIDNUM = 5,            /*[MN]*/
    01559     U_WB_NUMERIC = 6,           /*[NU]*/
    01560     U_WB_EXTENDNUMLET = 7,      /*[EX]*/
    01561     U_WB_CR = 8,                /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
    01562     U_WB_EXTEND = 9,            /*[Extend]*/
    01563     U_WB_LF = 10,               /*[LF]*/
    01564     U_WB_MIDNUMLET =11,         /*[MB]*/
    01565     U_WB_NEWLINE =12,           /*[NL]*/
    01566     U_WB_COUNT = 13
    01567 } UWordBreakValues;
    01568
    01575 typedef enum USentenceBreak {
    01576     U_SB_OTHER = 0,             /*[XX]*/ /*See note !!*/
    01577     U_SB_ATERM = 1,             /*[AT]*/
    01578     U_SB_CLOSE = 2,             /*[CL]*/
    01579     U_SB_FORMAT = 3,            /*[FO]*/
    01580     U_SB_LOWER = 4,             /*[LO]*/
    01581     U_SB_NUMERIC = 5,           /*[NU]*/
    01582     U_SB_OLETTER = 6,           /*[LE]*/
    01583     U_SB_SEP = 7,               /*[SE]*/
    01584     U_SB_SP = 8,                /*[SP]*/
    01585     U_SB_STERM = 9,             /*[ST]*/
    01586     U_SB_UPPER = 10,            /*[UP]*/
    01587     U_SB_CR = 11,               /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */
    01588     U_SB_EXTEND = 12,           /*[EX]*/
    01589     U_SB_LF = 13,               /*[LF]*/
    01590     U_SB_SCONTINUE = 14,        /*[SC]*/
    01591     U_SB_COUNT = 15
    01592 } USentenceBreak;
    01593
    01600 typedef enum ULineBreak {
    01601     U_LB_UNKNOWN = 0,           /*[XX]*/ /*See note !!*/
    01602     U_LB_AMBIGUOUS = 1,         /*[AI]*/
    01603     U_LB_ALPHABETIC = 2,        /*[AL]*/
    01604     U_LB_BREAK_BOTH = 3,        /*[B2]*/
    01605     U_LB_BREAK_AFTER = 4,       /*[BA]*/
    01606     U_LB_BREAK_BEFORE = 5,      /*[BB]*/
    01607     U_LB_MANDATORY_BREAK = 6,   /*[BK]*/
    01608     U_LB_CONTINGENT_BREAK = 7,  /*[CB]*/
    01609     U_LB_CLOSE_PUNCTUATION = 8, /*[CL]*/
    01610     U_LB_COMBINING_MARK = 9,    /*[CM]*/
    01611     U_LB_CARRIAGE_RETURN = 10,   /*[CR]*/
    01612     U_LB_EXCLAMATION = 11,       /*[EX]*/
    01613     U_LB_GLUE = 12,              /*[GL]*/
    01614     U_LB_HYPHEN = 13,            /*[HY]*/
    01615     U_LB_IDEOGRAPHIC = 14,       /*[ID]*/
    01616     U_LB_INSEPERABLE = 15,
    01618     U_LB_INSEPARABLE=U_LB_INSEPERABLE,/*[IN]*/
    01619     U_LB_INFIX_NUMERIC = 16,     /*[IS]*/
    01620     U_LB_LINE_FEED = 17,         /*[LF]*/
    01621     U_LB_NONSTARTER = 18,        /*[NS]*/
    01622     U_LB_NUMERIC = 19,           /*[NU]*/
    01623     U_LB_OPEN_PUNCTUATION = 20,  /*[OP]*/
    01624     U_LB_POSTFIX_NUMERIC = 21,   /*[PO]*/
    01625     U_LB_PREFIX_NUMERIC = 22,    /*[PR]*/
    01626     U_LB_QUOTATION = 23,         /*[QU]*/
    01627     U_LB_COMPLEX_CONTEXT = 24,   /*[SA]*/
    01628     U_LB_SURROGATE = 25,         /*[SG]*/
    01629     U_LB_SPACE = 26,             /*[SP]*/
    01630     U_LB_BREAK_SYMBOLS = 27,     /*[SY]*/
    01631     U_LB_ZWSPACE = 28,           /*[ZW]*/
    01632     U_LB_NEXT_LINE = 29,         /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */
    01633     U_LB_WORD_JOINER = 30,       /*[WJ]*/
    01634     U_LB_H2 = 31,                /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */
    01635     U_LB_H3 = 32,                /*[H3]*/
    01636     U_LB_JL = 33,                /*[JL]*/
    01637     U_LB_JT = 34,                /*[JT]*/
    01638     U_LB_JV = 35,                /*[JV]*/
    01639     U_LB_CLOSE_PARENTHESIS = 36, /*[CP]*/ /* new in Unicode 5.2/ICU 4.4 */
    01640     U_LB_COUNT = 37
    01641 } ULineBreak;
    01642
    01649 typedef enum UNumericType {
    01650     U_NT_NONE,              /*[None]*/ /*See note !!*/
    01651     U_NT_DECIMAL,           /*[de]*/
    01652     U_NT_DIGIT,             /*[di]*/
    01653     U_NT_NUMERIC,           /*[nu]*/
    01654     U_NT_COUNT
    01655 } UNumericType;
    01656
    01663 typedef enum UHangulSyllableType {
    01664     U_HST_NOT_APPLICABLE,   /*[NA]*/ /*See note !!*/
    01665     U_HST_LEADING_JAMO,     /*[L]*/
    01666     U_HST_VOWEL_JAMO,       /*[V]*/
    01667     U_HST_TRAILING_JAMO,    /*[T]*/
    01668     U_HST_LV_SYLLABLE,      /*[LV]*/
    01669     U_HST_LVT_SYLLABLE,     /*[LVT]*/
    01670     U_HST_COUNT
    01671 } UHangulSyllableType;
    01672
    01699 U_STABLE UBool U_EXPORT2
    01700 u_hasBinaryProperty(UChar32 c, UProperty which);
    01701
    01714 U_STABLE UBool U_EXPORT2
    01715 u_isUAlphabetic(UChar32 c);
    01716
    01729 U_STABLE UBool U_EXPORT2
    01730 u_isULowercase(UChar32 c);
    01731
    01744 U_STABLE UBool U_EXPORT2
    01745 u_isUUppercase(UChar32 c);
    01746
    01765 U_STABLE UBool U_EXPORT2
    01766 u_isUWhiteSpace(UChar32 c);
    01767
    01805 U_STABLE int32_t U_EXPORT2
    01806 u_getIntPropertyValue(UChar32 c, UProperty which);
    01807
    01826 U_STABLE int32_t U_EXPORT2
    01827 u_getIntPropertyMinValue(UProperty which);
    01828
    01855 U_STABLE int32_t U_EXPORT2
    01856 u_getIntPropertyMaxValue(UProperty which);
    01857
    01878 U_STABLE double U_EXPORT2
    01879 u_getNumericValue(UChar32 c);
    01880
    01888 #define U_NO_NUMERIC_VALUE ((double)-123456789.)
    01889
    01913 U_STABLE UBool U_EXPORT2
    01914 u_islower(UChar32 c);
    01915
    01940 U_STABLE UBool U_EXPORT2
    01941 u_isupper(UChar32 c);
    01942
    01957 U_STABLE UBool U_EXPORT2
    01958 u_istitle(UChar32 c);
    01959
    01978 U_STABLE UBool U_EXPORT2
    01979 u_isdigit(UChar32 c);
    01980
    01999 U_STABLE UBool U_EXPORT2
    02000 u_isalpha(UChar32 c);
    02001
    02020 U_STABLE UBool U_EXPORT2
    02021 u_isalnum(UChar32 c);
    02022
    02043 U_STABLE UBool U_EXPORT2
    02044 u_isxdigit(UChar32 c);
    02045
    02059 U_STABLE UBool U_EXPORT2
    02060 u_ispunct(UChar32 c);
    02061
    02078 U_STABLE UBool U_EXPORT2
    02079 u_isgraph(UChar32 c);
    02080
    02107 U_STABLE UBool U_EXPORT2
    02108 u_isblank(UChar32 c);
    02109
    02132 U_STABLE UBool U_EXPORT2
    02133 u_isdefined(UChar32 c);
    02134
    02153 U_STABLE UBool U_EXPORT2
    02154 u_isspace(UChar32 c);
    02155
    02174 U_STABLE UBool U_EXPORT2
    02175 u_isJavaSpaceChar(UChar32 c);
    02176
    02214 U_STABLE UBool U_EXPORT2
    02215 u_isWhitespace(UChar32 c);
    02216
    02238 U_STABLE UBool U_EXPORT2
    02239 u_iscntrl(UChar32 c);
    02240
    02253 U_STABLE UBool U_EXPORT2
    02254 u_isISOControl(UChar32 c);
    02255
    02271 U_STABLE UBool U_EXPORT2
    02272 u_isprint(UChar32 c);
    02273
    02292 U_STABLE UBool U_EXPORT2
    02293 u_isbase(UChar32 c);
    02294
    02311 U_STABLE UCharDirection U_EXPORT2
    02312 u_charDirection(UChar32 c);
    02313
    02329 U_STABLE UBool U_EXPORT2
    02330 u_isMirrored(UChar32 c);
    02331
    02351 U_STABLE UChar32 U_EXPORT2
    02352 u_charMirror(UChar32 c);
    02353
    02365 U_STABLE int8_t U_EXPORT2
    02366 u_charType(UChar32 c);
    02367
    02381 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
    02382
    02400 typedef UBool U_CALLCONV
    02401 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
    02402
    02422 U_STABLE void U_EXPORT2
    02423 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
    02424
    02425 #if !UCONFIG_NO_NORMALIZATION
    02426
    02434 U_STABLE uint8_t U_EXPORT2
    02435 u_getCombiningClass(UChar32 c);
    02436
    02437 #endif
    02438
    02462 U_STABLE int32_t U_EXPORT2
    02463 u_charDigitValue(UChar32 c);
    02464
    02474 U_STABLE UBlockCode U_EXPORT2
    02475 ublock_getCode(UChar32 c);
    02476
    02509 U_STABLE int32_t U_EXPORT2
    02510 u_charName(UChar32 code, UCharNameChoice nameChoice,
    02511            char *buffer, int32_t bufferLength,
    02512            UErrorCode *pErrorCode);
    02513
    02539 U_STABLE int32_t U_EXPORT2
    02540 u_getISOComment(UChar32 c,
    02541                 char *dest, int32_t destCapacity,
    02542                 UErrorCode *pErrorCode);
    02543
    02564 U_STABLE UChar32 U_EXPORT2
    02565 u_charFromName(UCharNameChoice nameChoice,
    02566                const char *name,
    02567                UErrorCode *pErrorCode);
    02568
    02586 typedef UBool U_CALLCONV UEnumCharNamesFn(void *context,
    02587                                UChar32 code,
    02588                                UCharNameChoice nameChoice,
    02589                                const char *name,
    02590                                int32_t length);
    02591
    02613 U_STABLE void U_EXPORT2
    02614 u_enumCharNames(UChar32 start, UChar32 limit,
    02615                 UEnumCharNamesFn *fn,
    02616                 void *context,
    02617                 UCharNameChoice nameChoice,
    02618                 UErrorCode *pErrorCode);
    02619
    02651 U_STABLE const char* U_EXPORT2
    02652 u_getPropertyName(UProperty property,
    02653                   UPropertyNameChoice nameChoice);
    02654
    02674 U_STABLE UProperty U_EXPORT2
    02675 u_getPropertyEnum(const char* alias);
    02676
    02724 U_STABLE const char* U_EXPORT2
    02725 u_getPropertyValueName(UProperty property,
    02726                        int32_t value,
    02727                        UPropertyNameChoice nameChoice);
    02728
    02760 U_STABLE int32_t U_EXPORT2
    02761 u_getPropertyValueEnum(UProperty property,
    02762                        const char* alias);
    02763
    02781 U_STABLE UBool U_EXPORT2
    02782 u_isIDStart(UChar32 c);
    02783
    02805 U_STABLE UBool U_EXPORT2
    02806 u_isIDPart(UChar32 c);
    02807
    02828 U_STABLE UBool U_EXPORT2
    02829 u_isIDIgnorable(UChar32 c);
    02830
    02847 U_STABLE UBool U_EXPORT2
    02848 u_isJavaIDStart(UChar32 c);
    02849
    02868 U_STABLE UBool U_EXPORT2
    02869 u_isJavaIDPart(UChar32 c);
    02870
    02893 U_STABLE UChar32 U_EXPORT2
    02894 u_tolower(UChar32 c);
    02895
    02918 U_STABLE UChar32 U_EXPORT2
    02919 u_toupper(UChar32 c);
    02920
    02943 U_STABLE UChar32 U_EXPORT2
    02944 u_totitle(UChar32 c);
    02945
    02947 #define U_FOLD_CASE_DEFAULT 0
    02948
    02965 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
    02966
    02989 U_STABLE UChar32 U_EXPORT2
    02990 u_foldCase(UChar32 c, uint32_t options);
    02991
    03030 U_STABLE int32_t U_EXPORT2
    03031 u_digit(UChar32 ch, int8_t radix);
    03032
    03061 U_STABLE UChar32 U_EXPORT2
    03062 u_forDigit(int32_t digit, int8_t radix);
    03063
    03078 U_STABLE void U_EXPORT2
    03079 u_charAge(UChar32 c, UVersionInfo versionArray);
    03080
    03092 U_STABLE void U_EXPORT2
    03093 u_getUnicodeVersion(UVersionInfo versionArray);
    03094
    03095 #if !UCONFIG_NO_NORMALIZATION
    03096
    03117 U_STABLE int32_t U_EXPORT2
    03118 u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
    03119
    03120 #endif
    03121
    03122
    03123 U_CDECL_END
    03124
    03125 #endif /*_UCHAR*/
    03126 /*eof*/

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines