Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

uchar.h

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

Generated on Thu Aug 15 14:13:30 2002 for ICU 2.2 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001