Main Page | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

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.1.1"
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 
00098 enum UProperty {
00101     UCHAR_ALPHABETIC,
00103     UCHAR_BINARY_START=UCHAR_ALPHABETIC,
00105     UCHAR_ASCII_HEX_DIGIT,
00109     UCHAR_BIDI_CONTROL,
00114     UCHAR_BIDI_MIRRORED,
00116     UCHAR_DASH,
00120     UCHAR_DEFAULT_IGNORABLE_CODE_POINT,
00123     UCHAR_DEPRECATED,
00126     UCHAR_DIACRITIC,
00130     UCHAR_EXTENDER,
00134     UCHAR_FULL_COMPOSITION_EXCLUSION,
00138     UCHAR_GRAPHEME_BASE,
00142     UCHAR_GRAPHEME_EXTEND,
00145     UCHAR_GRAPHEME_LINK,
00148     UCHAR_HEX_DIGIT,
00151     UCHAR_HYPHEN,
00155     UCHAR_ID_CONTINUE,
00159     UCHAR_ID_START,
00162     UCHAR_IDEOGRAPHIC,
00166     UCHAR_IDS_BINARY_OPERATOR,
00170     UCHAR_IDS_TRINARY_OPERATOR,
00173     UCHAR_JOIN_CONTROL,
00177     UCHAR_LOGICAL_ORDER_EXCEPTION,
00180     UCHAR_LOWERCASE,
00182     UCHAR_MATH,
00186     UCHAR_NONCHARACTER_CODE_POINT,
00188     UCHAR_QUOTATION_MARK,
00192     UCHAR_RADICAL,
00197     UCHAR_SOFT_DOTTED,
00201     UCHAR_TERMINAL_PUNCTUATION,
00205     UCHAR_UNIFIED_IDEOGRAPH,
00208     UCHAR_UPPERCASE,
00212     UCHAR_WHITE_SPACE,
00216     UCHAR_XID_CONTINUE,
00219     UCHAR_XID_START,
00221     UCHAR_BINARY_LIMIT
00222 };
00223 
00225 typedef enum UProperty UProperty;
00226 
00232 enum UCharCategory
00233 {
00235     U_UNASSIGNED              = 0,
00237     U_GENERAL_OTHER_TYPES     = 0,
00239     U_UPPERCASE_LETTER        = 1,
00241     U_LOWERCASE_LETTER        = 2,
00243     U_TITLECASE_LETTER        = 3,
00245     U_MODIFIER_LETTER         = 4,
00247     U_OTHER_LETTER            = 5,
00249     U_NON_SPACING_MARK        = 6,
00251     U_ENCLOSING_MARK          = 7,
00253     U_COMBINING_SPACING_MARK  = 8,
00255     U_DECIMAL_DIGIT_NUMBER    = 9,
00257     U_LETTER_NUMBER           = 10,
00259     U_OTHER_NUMBER            = 11,
00261     U_SPACE_SEPARATOR         = 12,
00263     U_LINE_SEPARATOR          = 13,
00265     U_PARAGRAPH_SEPARATOR     = 14,
00267     U_CONTROL_CHAR            = 15,
00269     U_FORMAT_CHAR             = 16,
00271     U_PRIVATE_USE_CHAR        = 17,
00273     U_SURROGATE               = 18,
00275     U_DASH_PUNCTUATION        = 19,
00277     U_START_PUNCTUATION       = 20,
00279     U_END_PUNCTUATION         = 21,
00281     U_CONNECTOR_PUNCTUATION   = 22,
00283     U_OTHER_PUNCTUATION       = 23,
00285     U_MATH_SYMBOL             = 24,
00287     U_CURRENCY_SYMBOL         = 25,
00289     U_MODIFIER_SYMBOL         = 26,
00291     U_OTHER_SYMBOL            = 27,
00293     U_INITIAL_PUNCTUATION     = 28,
00295     U_FINAL_PUNCTUATION       = 29,
00297     U_CHAR_CATEGORY_COUNT
00298 };
00299 
00300 typedef enum UCharCategory UCharCategory;
00301 
00316 #define U_GC_CN_MASK    U_MASK(U_GENERAL_OTHER_TYPES)
00317 
00318 #define U_GC_LU_MASK    U_MASK(U_UPPERCASE_LETTER)
00319 #define U_GC_LL_MASK    U_MASK(U_LOWERCASE_LETTER)
00320 #define U_GC_LT_MASK    U_MASK(U_TITLECASE_LETTER)
00321 #define U_GC_LM_MASK    U_MASK(U_MODIFIER_LETTER)
00322 #define U_GC_LO_MASK    U_MASK(U_OTHER_LETTER)
00323 
00324 #define U_GC_MN_MASK    U_MASK(U_NON_SPACING_MARK)
00325 #define U_GC_ME_MASK    U_MASK(U_ENCLOSING_MARK)
00326 #define U_GC_MC_MASK    U_MASK(U_COMBINING_SPACING_MARK)
00327 
00328 #define U_GC_ND_MASK    U_MASK(U_DECIMAL_DIGIT_NUMBER)
00329 #define U_GC_NL_MASK    U_MASK(U_LETTER_NUMBER)
00330 #define U_GC_NO_MASK    U_MASK(U_OTHER_NUMBER)
00331 
00332 #define U_GC_ZS_MASK    U_MASK(U_SPACE_SEPARATOR)
00333 #define U_GC_ZL_MASK    U_MASK(U_LINE_SEPARATOR)
00334 #define U_GC_ZP_MASK    U_MASK(U_PARAGRAPH_SEPARATOR)
00335 
00336 #define U_GC_CC_MASK    U_MASK(U_CONTROL_CHAR)
00337 #define U_GC_CF_MASK    U_MASK(U_FORMAT_CHAR)
00338 #define U_GC_CO_MASK    U_MASK(U_PRIVATE_USE_CHAR)
00339 #define U_GC_CS_MASK    U_MASK(U_SURROGATE)
00340 
00341 #define U_GC_PD_MASK    U_MASK(U_DASH_PUNCTUATION)
00342 #define U_GC_PS_MASK    U_MASK(U_START_PUNCTUATION)
00343 #define U_GC_PE_MASK    U_MASK(U_END_PUNCTUATION)
00344 #define U_GC_PC_MASK    U_MASK(U_CONNECTOR_PUNCTUATION)
00345 #define U_GC_PO_MASK    U_MASK(U_OTHER_PUNCTUATION)
00346 
00347 #define U_GC_SM_MASK    U_MASK(U_MATH_SYMBOL)
00348 #define U_GC_SC_MASK    U_MASK(U_CURRENCY_SYMBOL)
00349 #define U_GC_SK_MASK    U_MASK(U_MODIFIER_SYMBOL)
00350 #define U_GC_SO_MASK    U_MASK(U_OTHER_SYMBOL)
00351 
00352 #define U_GC_PI_MASK    U_MASK(U_INITIAL_PUNCTUATION)
00353 #define U_GC_PF_MASK    U_MASK(U_FINAL_PUNCTUATION)
00354 
00355 
00356 #define U_GC_L_MASK \
00357             (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
00358 
00359 #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
00360 
00361 #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
00362 
00363 #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
00364 
00365 #define U_GC_C_MASK \
00366             (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
00367 
00368 #define U_GC_P_MASK \
00369             (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
00370              U_GC_PI_MASK|U_GC_PF_MASK)
00371 
00372 #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
00373 
00378 enum UCharDirection   { 
00380     U_LEFT_TO_RIGHT               = 0, 
00382     U_RIGHT_TO_LEFT               = 1, 
00384     U_EUROPEAN_NUMBER             = 2,
00386     U_EUROPEAN_NUMBER_SEPARATOR   = 3,
00388     U_EUROPEAN_NUMBER_TERMINATOR  = 4,
00390     U_ARABIC_NUMBER               = 5,
00392     U_COMMON_NUMBER_SEPARATOR     = 6,
00394     U_BLOCK_SEPARATOR             = 7,
00396     U_SEGMENT_SEPARATOR           = 8,
00398     U_WHITE_SPACE_NEUTRAL         = 9, 
00400     U_OTHER_NEUTRAL               = 10, 
00402     U_LEFT_TO_RIGHT_EMBEDDING     = 11,
00404     U_LEFT_TO_RIGHT_OVERRIDE      = 12,
00406     U_RIGHT_TO_LEFT_ARABIC        = 13,
00408     U_RIGHT_TO_LEFT_EMBEDDING     = 14,
00410     U_RIGHT_TO_LEFT_OVERRIDE      = 15,
00412     U_POP_DIRECTIONAL_FORMAT      = 16,
00414     U_DIR_NON_SPACING_MARK        = 17,
00416     U_BOUNDARY_NEUTRAL            = 18,
00418     U_CHAR_DIRECTION_COUNT
00419 };
00420 
00421 typedef enum UCharDirection UCharDirection;
00422 
00428 enum UBlockCode {
00430     UBLOCK_BASIC_LATIN = 1,
00432     U_BASIC_LATIN = 1,
00433 
00435     UBLOCK_LATIN_1_SUPPLEMENT=2,
00437     U_LATIN_1_SUPPLEMENT=2,
00438 
00440     UBLOCK_LATIN_EXTENDED_A =3,
00442     U_LATIN_EXTENDED_A=3,
00443 
00445     UBLOCK_LATIN_EXTENDED_B =4,
00447     U_LATIN_EXTENDED_B=4,
00448 
00450     UBLOCK_IPA_EXTENSIONS =5,
00452     U_IPA_EXTENSIONS=5,
00453     
00455     UBLOCK_SPACING_MODIFIER_LETTERS =6,
00457     U_SPACING_MODIFIER_LETTERS=6,
00458 
00460     UBLOCK_COMBINING_DIACRITICAL_MARKS =7,
00462     U_COMBINING_DIACRITICAL_MARKS=7,
00463     
00465     UBLOCK_GREEK =8,
00467     U_GREEK=8,
00468 
00470     UBLOCK_CYRILLIC =9,
00472     U_CYRILLIC=9,
00473 
00475     UBLOCK_ARMENIAN =10,
00477     U_ARMENIAN=10,
00478 
00480     UBLOCK_HEBREW =11,
00482     U_HEBREW=11,
00483 
00485     UBLOCK_ARABIC =12,
00487     U_ARABIC=12,
00488 
00490     UBLOCK_SYRIAC =13,
00492     U_SYRIAC=13,
00493 
00495     UBLOCK_THAANA =14,
00497     U_THAANA=14,
00498 
00500     UBLOCK_DEVANAGARI =15,
00502     U_DEVANAGARI=15,
00503 
00505     UBLOCK_BENGALI =16,
00507     U_BENGALI=16,
00508 
00510     UBLOCK_GURMUKHI =17,
00512     U_GURMUKHI=17,
00513 
00515     UBLOCK_GUJARATI =18,
00517     U_GUJARATI=18,
00518 
00520     UBLOCK_ORIYA =19,
00522     U_ORIYA=19,
00523 
00525     UBLOCK_TAMIL =20,
00527     U_TAMIL=20,
00528 
00530     UBLOCK_TELUGU =21,
00532     U_TELUGU=21,
00533 
00535     UBLOCK_KANNADA =22,
00537     U_KANNADA=22,
00538 
00540     UBLOCK_MALAYALAM =23,
00542     U_MALAYALAM=23,
00543 
00545     UBLOCK_SINHALA =24,
00547     U_SINHALA=24,
00548 
00550     UBLOCK_THAI =25,
00552     U_THAI=25,
00553 
00555     UBLOCK_LAO =26,
00557     U_LAO=26,
00558 
00560     UBLOCK_TIBETAN =27,
00562     U_TIBETAN=27,
00563 
00565     UBLOCK_MYANMAR =28,
00567     U_MYANMAR=28,
00568 
00570     UBLOCK_GEORGIAN =29,
00572     U_GEORGIAN=29,
00573 
00575     UBLOCK_HANGUL_JAMO =30,
00577     U_HANGUL_JAMO=30,
00578 
00580     UBLOCK_ETHIOPIC =31,
00582     U_ETHIOPIC=31,
00583 
00585     UBLOCK_CHEROKEE =32,
00587     U_CHEROKEE=32,
00588 
00590     UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33,
00592     U_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS=33,
00593 
00595     UBLOCK_OGHAM =34,
00597     U_OGHAM=34,
00598 
00600     UBLOCK_RUNIC =35,
00602     U_RUNIC=35,
00603 
00605     UBLOCK_KHMER =36,
00607     U_KHMER=36,
00608 
00610     UBLOCK_MONGOLIAN =37,
00612     U_MONGOLIAN=37,
00613 
00615     UBLOCK_LATIN_EXTENDED_ADDITIONAL =38,
00617     U_LATIN_EXTENDED_ADDITIONAL=38,
00618 
00620     UBLOCK_GREEK_EXTENDED =39,
00622     U_GREEK_EXTENDED=39,
00623 
00625     UBLOCK_GENERAL_PUNCTUATION =40,
00627     U_GENERAL_PUNCTUATION=40,
00628 
00630     UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41,
00632     U_SUPERSCRIPTS_AND_SUBSCRIPTS=41,
00633     
00635     UBLOCK_CURRENCY_SYMBOLS =42,
00637     U_CURRENCY_SYMBOLS=42,
00638     
00640     UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43,
00642     U_COMBINING_MARKS_FOR_SYMBOLS=43,
00643     
00645     UBLOCK_LETTERLIKE_SYMBOLS =44,
00647     U_LETTERLIKE_SYMBOLS=44,
00648     
00650     UBLOCK_NUMBER_FORMS =45,
00652     U_NUMBER_FORMS=45,
00653 
00655     UBLOCK_ARROWS =46,
00657     U_ARROWS=46,
00658 
00660     UBLOCK_MATHEMATICAL_OPERATORS =47,
00662     U_MATHEMATICAL_OPERATORS=47,
00663 
00665     UBLOCK_MISCELLANEOUS_TECHNICAL =48,
00667     U_MISCELLANEOUS_TECHNICAL=48,
00668 
00670     UBLOCK_CONTROL_PICTURES =49,
00672     U_CONTROL_PICTURES=49,
00673 
00675     UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50,
00677     U_OPTICAL_CHARACTER_RECOGNITION=50,
00678 
00680     UBLOCK_ENCLOSED_ALPHANUMERICS =51,
00682     U_ENCLOSED_ALPHANUMERICS=51,
00683 
00685     UBLOCK_BOX_DRAWING =52,
00687     U_BOX_DRAWING=52,
00688 
00690     UBLOCK_BLOCK_ELEMENTS =53,
00692     U_BLOCK_ELEMENTS=53,
00693 
00695     UBLOCK_GEOMETRIC_SHAPES =54,
00697     U_GEOMETRIC_SHAPES=54,
00698 
00700     UBLOCK_MISCELLANEOUS_SYMBOLS =55,
00702     U_MISCELLANEOUS_SYMBOLS=55,
00703 
00705     UBLOCK_DINGBATS =56,
00707     U_DINGBATS=56,
00708 
00710     UBLOCK_BRAILLE_PATTERNS =57,
00712     U_BRAILLE_PATTERNS=57,
00713 
00715     UBLOCK_CJK_RADICALS_SUPPLEMENT =58,
00717     U_CJK_RADICALS_SUPPLEMENT=58,
00718 
00720     UBLOCK_KANGXI_RADICALS =59,
00722     U_KANGXI_RADICALS=59,
00723 
00725     UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60,
00727     U_IDEOGRAPHIC_DESCRIPTION_CHARACTERS=60,
00728 
00730     UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61,
00732     U_CJK_SYMBOLS_AND_PUNCTUATION=61,
00733 
00735     UBLOCK_HIRAGANA =62,
00737     U_HIRAGANA=62,
00738 
00740     UBLOCK_KATAKANA =63,
00742     U_KATAKANA=63,
00743 
00745     UBLOCK_BOPOMOFO =64,
00747     U_BOPOMOFO=64,
00748 
00750     UBLOCK_HANGUL_COMPATIBILITY_JAMO =65,
00752     U_HANGUL_COMPATIBILITY_JAMO=65,
00753 
00755     UBLOCK_KANBUN =66,
00757     U_KANBUN=66,
00758 
00760     UBLOCK_BOPOMOFO_EXTENDED =67,
00762     U_BOPOMOFO_EXTENDED=67,
00763 
00765     UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68,
00767     U_ENCLOSED_CJK_LETTERS_AND_MONTHS=68,
00768 
00770     UBLOCK_CJK_COMPATIBILITY =69,
00772     U_CJK_COMPATIBILITY=69,
00773 
00775     UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70,
00777     U_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A=70,
00778 
00780     UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71,
00782     U_CJK_UNIFIED_IDEOGRAPHS=71,
00783 
00785     UBLOCK_YI_SYLLABLES =72,
00787     U_YI_SYLLABLES=72,
00788 
00790     UBLOCK_YI_RADICALS =73,
00792     U_YI_RADICALS=73,
00793 
00795     UBLOCK_HANGUL_SYLLABLES =74,
00797     U_HANGUL_SYLLABLES=74,
00798 
00800     UBLOCK_HIGH_SURROGATES =75,
00802     U_HIGH_SURROGATES=75,
00803 
00805     UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76,
00807     U_HIGH_PRIVATE_USE_SURROGATES=76,
00808 
00810     UBLOCK_LOW_SURROGATES =77,
00812     U_LOW_SURROGATES=77,
00813 
00815     UBLOCK_PRIVATE_USE = 78,
00817     UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE,
00819     U_PRIVATE_USE_AREA=78,
00820 
00822     UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79,
00824     U_CJK_COMPATIBILITY_IDEOGRAPHS=79,
00825 
00827     UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80,
00829     U_ALPHABETIC_PRESENTATION_FORMS=80,
00830 
00832     UBLOCK_ARABIC_PRESENTATION_FORMS_A =81,
00834     U_ARABIC_PRESENTATION_FORMS_A=81,
00835 
00837     UBLOCK_COMBINING_HALF_MARKS =82,
00839     U_COMBINING_HALF_MARKS=82,
00840 
00842     UBLOCK_CJK_COMPATIBILITY_FORMS =83,
00844     U_CJK_COMPATIBILITY_FORMS=83,
00845 
00847     UBLOCK_SMALL_FORM_VARIANTS =84,
00849     U_SMALL_FORM_VARIANTS=84,
00850 
00852     UBLOCK_ARABIC_PRESENTATION_FORMS_B =85,
00854     U_ARABIC_PRESENTATION_FORMS_B=85,
00855 
00857     UBLOCK_SPECIALS =86,
00859     U_SPECIALS=86,
00860 
00862     UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87,
00864     U_HALFWIDTH_AND_FULLWIDTH_FORMS=87,
00865     
00867     UBLOCK_OLD_ITALIC = 88  ,
00869     UBLOCK_GOTHIC = 89 ,
00871     UBLOCK_DESERET = 90 ,
00873     UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 ,
00875     UBLOCK_MUSICAL_SYMBOLS = 92 ,
00877     UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93  ,
00879     UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B  = 94 ,
00881     UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 ,
00883     UBLOCK_TAGS = 96 ,
00885     UBLOCK_COUNT=97,
00887     U_SCRIPT_COUNT=UBLOCK_COUNT,
00888 
00890     UBLOCK_INVALID_CODE=-1,
00891 
00893     U_CHAR_SCRIPT_COUNT =UBLOCK_COUNT,
00895     U_NO_SCRIPT = UBLOCK_COUNT
00896 };
00897 
00899 typedef enum UBlockCode UBlockCode;
00900 
00905 enum UCellWidth
00906 {
00908     U_ZERO_WIDTH              = 0,
00910     U_HALF_WIDTH              = 1,
00912     U_FULL_WIDTH              = 2,
00914     U_NEUTRAL_WIDTH           = 3,
00916     U_CELL_WIDTH_COUNT
00917 };
00918 
00920 typedef enum UCellWidth UCellWidth;
00921 
00933 enum UCharNameChoice {
00934     U_UNICODE_CHAR_NAME,
00935     U_UNICODE_10_CHAR_NAME,
00936     U_EXTENDED_CHAR_NAME,
00937     U_CHAR_NAME_CHOICE_COUNT
00938 };
00939 
00941 typedef enum UCharNameChoice UCharNameChoice;
00942 
00972 U_CAPI UBool U_EXPORT2
00973 u_hasBinaryProperty(UChar32 c, UProperty which);
00974 
00985 U_CAPI UBool U_EXPORT2
00986 u_isUAlphabetic(UChar32 c);
00987 
00998 U_CAPI UBool U_EXPORT2
00999 u_isULowercase(UChar32 c);
01000 
01011 U_CAPI UBool U_EXPORT2
01012 u_isUUppercase(UChar32 c);
01013 
01025 U_CAPI UBool U_EXPORT2
01026 u_isUWhiteSpace(UChar32 c);
01027 
01028 /*
01029  * ### TODO Document all properties more precisely, how they are based (or not) on UCD files.
01030  * Especially u_isdigit, u_isspace, u_isWhitespace.
01031  */
01032 
01045 U_CAPI UBool U_EXPORT2
01046 u_islower(UChar32 c);
01047 
01059 U_CAPI UBool U_EXPORT2
01060 u_isupper(UChar32 c);
01061 
01073 U_CAPI UBool U_EXPORT2
01074 u_istitle(UChar32 c);
01075 
01083 U_CAPI UBool U_EXPORT2
01084 u_isdigit(UChar32 c);
01085 
01094 U_CAPI UBool U_EXPORT2
01095 u_isalnum(UChar32 c);
01096 
01112 U_CAPI UBool U_EXPORT2
01113 u_isdefined(UChar32 c);
01114 
01126 U_CAPI UBool U_EXPORT2
01127 u_isalpha(UChar32 c);
01128 
01136 U_CAPI UBool U_EXPORT2
01137 u_isspace(UChar32 c);
01138 
01167 U_CAPI UBool U_EXPORT2
01168 u_isWhitespace(UChar32 c);
01169 
01185 U_CAPI UBool U_EXPORT2
01186 u_iscntrl(UChar32 c);
01187 
01188 
01199 U_CAPI UBool U_EXPORT2
01200 u_isprint(UChar32 c);
01201 
01213 U_CAPI UBool U_EXPORT2
01214 u_isbase(UChar32 c);
01215 
01225 U_CAPI UCharDirection U_EXPORT2
01226 u_charDirection(UChar32 c);
01227 
01238 U_CAPI UBool U_EXPORT2
01239 u_isMirrored(UChar32 c);
01240 
01257 U_CAPI UChar32 U_EXPORT2
01258 u_charMirror(UChar32 c);
01259 
01311 U_CAPI uint16_t U_EXPORT2
01312 u_charCellWidth(UChar32 c);
01313 
01324 U_CAPI int8_t U_EXPORT2
01325 u_charType(UChar32 c);
01326 
01337 #define U_GET_GC_MASK(c) U_MASK(u_charType(c))
01338 
01356 typedef UBool U_CALLCONV
01357 UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
01358 
01378 U_CAPI void U_EXPORT2
01379 u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
01380 
01388 U_CAPI uint8_t U_EXPORT2
01389 u_getCombiningClass(UChar32 c);
01390 
01399 U_CAPI int32_t U_EXPORT2
01400 u_charDigitValue(UChar32 c);
01401 
01408 U_CAPI UBlockCode U_EXPORT2
01409 ublock_getCode(UChar32    ch);
01410 
01443 U_CAPI int32_t U_EXPORT2
01444 u_charName(UChar32 code, UCharNameChoice nameChoice,
01445            char *buffer, int32_t bufferLength,
01446            UErrorCode *pErrorCode);
01447 
01467 U_CAPI UChar32 U_EXPORT2
01468 u_charFromName(UCharNameChoice nameChoice,
01469                const char *name,
01470                UErrorCode *pErrorCode);
01471 
01488 typedef UBool UEnumCharNamesFn(void *context,
01489                                UChar32 code,
01490                                UCharNameChoice nameChoice,
01491                                const char *name,
01492                                int32_t length);
01493 
01514 U_CAPI void U_EXPORT2
01515 u_enumCharNames(UChar32 start, UChar32 limit,
01516                 UEnumCharNamesFn *fn,
01517                 void *context,
01518                 UCharNameChoice nameChoice,
01519                 UErrorCode *pErrorCode);
01520 
01537 U_CAPI UBool U_EXPORT2
01538 u_isIDStart(UChar32 c);
01539 
01564 U_CAPI UBool U_EXPORT2
01565 u_isIDPart(UChar32 c);
01566 
01591 U_CAPI UBool U_EXPORT2
01592 u_isIDIgnorable(UChar32 c);
01593 
01614 U_CAPI UBool U_EXPORT2
01615 u_isJavaIDStart(UChar32 c);
01616 
01645 U_CAPI UBool U_EXPORT2
01646 u_isJavaIDPart(UChar32 c);
01647 
01670 U_CAPI UChar32 U_EXPORT2
01671 u_tolower(UChar32 c);
01672 
01688 U_CAPI UChar32 U_EXPORT2
01689 u_toupper(UChar32 c);
01690 
01705 U_CAPI UChar32 U_EXPORT2
01706 u_totitle(UChar32 c);
01707 
01709 #define U_FOLD_CASE_DEFAULT 0
01710 
01711 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
01712 
01726 U_CAPI UChar32 U_EXPORT2
01727 u_foldCase(UChar32 c, uint32_t options);
01728 
01764 U_CAPI int32_t U_EXPORT2
01765 u_digit(UChar32 ch, int8_t radix);
01766 
01793 U_CAPI UChar32 U_EXPORT2
01794 u_forDigit(int32_t digit, int8_t radix);
01795 
01810 U_CAPI void U_EXPORT2
01811 u_charAge(UChar32 c, UVersionInfo versionArray);
01812 
01820 U_CAPI void U_EXPORT2
01821 u_getUnicodeVersion(UVersionInfo info);
01822 
01823 
01827 #define u_charScript ublock_getCode
01828 
01829 typedef UBlockCode UCharScript;
01830 
01831 U_CDECL_END
01832 
01833 #endif /*_UCHAR*/
01834 /*eof*/

Generated on Sun May 22 23:05:50 2005 for ICU 2.1 by  doxygen 1.4.2