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

uchar.h

Go to the documentation of this file.
00001 /*
00002 **********************************************************************
00003 *   Copyright (C) 1997-2000, 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 /* Unicode version number                                                    */
00029 /*===========================================================================*/
00030 #define U_UNICODE_VERSION "3.0.0"
00031 
00053 #define UCHAR_MIN_VALUE 0
00054 
00060 #define UCHAR_MAX_VALUE 0x10ffff
00061 
00066 enum UCharCategory
00067 {
00069         U_UNASSIGNED              = 0,
00071     U_UPPERCASE_LETTER        = 1,
00073     U_LOWERCASE_LETTER        = 2,
00075     U_TITLECASE_LETTER        = 3,
00077     U_MODIFIER_LETTER         = 4,
00079     U_OTHER_LETTER            = 5,
00081     U_NON_SPACING_MARK        = 6,
00083     U_ENCLOSING_MARK          = 7,
00085     U_COMBINING_SPACING_MARK  = 8,
00087     U_DECIMAL_DIGIT_NUMBER    = 9,
00089     U_LETTER_NUMBER           = 10,
00091     U_OTHER_NUMBER            = 11,
00093     U_SPACE_SEPARATOR         = 12,
00095     U_LINE_SEPARATOR          = 13,
00097     U_PARAGRAPH_SEPARATOR     = 14,
00099     U_CONTROL_CHAR            = 15,
00101     U_FORMAT_CHAR             = 16,
00103     U_PRIVATE_USE_CHAR        = 17,
00105     U_SURROGATE               = 18,
00107     U_DASH_PUNCTUATION        = 19,
00109     U_START_PUNCTUATION       = 20,
00111     U_END_PUNCTUATION         = 21,
00113     U_CONNECTOR_PUNCTUATION   = 22,
00115     U_OTHER_PUNCTUATION       = 23,
00117     U_MATH_SYMBOL             = 24,
00119     U_CURRENCY_SYMBOL         = 25,
00121     U_MODIFIER_SYMBOL         = 26,
00123     U_OTHER_SYMBOL            = 27,
00125     U_INITIAL_PUNCTUATION     = 28,
00127     U_FINAL_PUNCTUATION       = 29,
00129     U_GENERAL_OTHER_TYPES     = 30,
00131     U_CHAR_CATEGORY_COUNT
00132 };
00133 
00134 typedef enum UCharCategory UCharCategory;
00138 enum UCharDirection   { 
00140         U_LEFT_TO_RIGHT               = 0, 
00142     U_RIGHT_TO_LEFT               = 1, 
00144     U_EUROPEAN_NUMBER             = 2,
00146     U_EUROPEAN_NUMBER_SEPARATOR   = 3,
00148     U_EUROPEAN_NUMBER_TERMINATOR  = 4,
00150     U_ARABIC_NUMBER               = 5,
00152     U_COMMON_NUMBER_SEPARATOR     = 6,
00154     U_BLOCK_SEPARATOR             = 7,
00156     U_SEGMENT_SEPARATOR           = 8,
00158     U_WHITE_SPACE_NEUTRAL         = 9, 
00160     U_OTHER_NEUTRAL               = 10, 
00162     U_LEFT_TO_RIGHT_EMBEDDING     = 11,
00164     U_LEFT_TO_RIGHT_OVERRIDE      = 12,
00166     U_RIGHT_TO_LEFT_ARABIC        = 13,
00168     U_RIGHT_TO_LEFT_EMBEDDING     = 14,
00170     U_RIGHT_TO_LEFT_OVERRIDE      = 15,
00172     U_POP_DIRECTIONAL_FORMAT      = 16,
00174     U_DIR_NON_SPACING_MARK        = 17,
00176     U_BOUNDARY_NEUTRAL            = 18,
00178     U_CHAR_DIRECTION_COUNT
00179 };
00180 
00181 typedef enum UCharDirection UCharDirection;
00186 /* Please keep these values in sync with EUnicodeScript */
00192 enum UCharScript {
00193 /* Script names */
00195     U_BASIC_LATIN,
00197     U_LATIN_1_SUPPLEMENT,
00199     U_LATIN_EXTENDED_A,
00201     U_LATIN_EXTENDED_B,
00203     U_IPA_EXTENSIONS,
00205     U_SPACING_MODIFIER_LETTERS,
00207     U_COMBINING_DIACRITICAL_MARKS,
00209     U_GREEK,
00211     U_CYRILLIC,
00213     U_ARMENIAN,
00215     U_HEBREW,
00217     U_ARABIC,
00219     U_SYRIAC,
00221     U_THAANA,
00223     U_DEVANAGARI,
00225     U_BENGALI,
00227     U_GURMUKHI,
00229     U_GUJARATI,
00231     U_ORIYA,
00233     U_TAMIL,
00235     U_TELUGU,
00237     U_KANNADA,
00239     U_MALAYALAM,
00241     U_SINHALA,
00243     U_THAI,
00245     U_LAO,
00247     U_TIBETAN,
00249     U_MYANMAR,
00251     U_GEORGIAN,
00253     U_HANGUL_JAMO,
00255     U_ETHIOPIC,
00257     U_CHEROKEE,
00259     U_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS,
00261     U_OGHAM,
00263     U_RUNIC,
00265     U_KHMER,
00267     U_MONGOLIAN,
00269     U_LATIN_EXTENDED_ADDITIONAL,
00271     U_GREEK_EXTENDED,
00273     U_GENERAL_PUNCTUATION,
00275     U_SUPERSCRIPTS_AND_SUBSCRIPTS,
00277     U_CURRENCY_SYMBOLS,
00279     U_COMBINING_MARKS_FOR_SYMBOLS,
00281     U_LETTERLIKE_SYMBOLS,
00283     U_NUMBER_FORMS,
00285     U_ARROWS,
00287     U_MATHEMATICAL_OPERATORS,
00289     U_MISCELLANEOUS_TECHNICAL,
00291     U_CONTROL_PICTURES,
00293     U_OPTICAL_CHARACTER_RECOGNITION,
00295     U_ENCLOSED_ALPHANUMERICS,
00297     U_BOX_DRAWING,
00299     U_BLOCK_ELEMENTS,
00301     U_GEOMETRIC_SHAPES,
00303     U_MISCELLANEOUS_SYMBOLS,
00305     U_DINGBATS,
00307     U_BRAILLE_PATTERNS,
00309     U_CJK_RADICALS_SUPPLEMENT,
00311     U_KANGXI_RADICALS,
00313     U_IDEOGRAPHIC_DESCRIPTION_CHARACTERS,
00315     U_CJK_SYMBOLS_AND_PUNCTUATION,
00317     U_HIRAGANA,
00319     U_KATAKANA,
00321     U_BOPOMOFO,
00323     U_HANGUL_COMPATIBILITY_JAMO,
00325     U_KANBUN,
00327     U_BOPOMOFO_EXTENDED,
00329     U_ENCLOSED_CJK_LETTERS_AND_MONTHS,
00331     U_CJK_COMPATIBILITY,
00333     U_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A,
00335     U_CJK_UNIFIED_IDEOGRAPHS,
00337     U_YI_SYLLABLES,
00339     U_YI_RADICALS,
00341     U_HANGUL_SYLLABLES,
00343     U_HIGH_SURROGATES,
00345     U_HIGH_PRIVATE_USE_SURROGATES,
00347     U_LOW_SURROGATES,
00349     U_PRIVATE_USE_AREA,
00351     U_CJK_COMPATIBILITY_IDEOGRAPHS,
00353     U_ALPHABETIC_PRESENTATION_FORMS,
00355     U_ARABIC_PRESENTATION_FORMS_A,
00357     U_COMBINING_HALF_MARKS,
00359     U_CJK_COMPATIBILITY_FORMS,
00361     U_SMALL_FORM_VARIANTS,
00363     U_ARABIC_PRESENTATION_FORMS_B,
00365     U_SPECIALS,
00367     U_HALFWIDTH_AND_FULLWIDTH_FORMS,
00369     U_CHAR_SCRIPT_COUNT,
00371     U_NO_SCRIPT=U_CHAR_SCRIPT_COUNT
00372 };
00373 typedef enum UCharScript UCharScript;
00374 
00379 enum UCellWidth
00380 {
00382     U_ZERO_WIDTH              = 0,
00384         U_HALF_WIDTH              = 1,
00386         U_FULL_WIDTH              = 2,
00388         U_NEUTRAL_WIDTH           = 3,
00390         U_CELL_WIDTH_COUNT
00391 };
00392 
00393 typedef enum UCellWidth UCellWidth;
00394 
00404 enum UCharNameChoice {
00405     U_UNICODE_CHAR_NAME,
00406     U_UNICODE_10_CHAR_NAME,
00407     U_CHAR_NAME_CHOICE_COUNT
00408 };
00409 
00410 typedef enum UCharNameChoice UCharNameChoice;
00411 
00428 U_CAPI UBool U_EXPORT2
00429 u_islower(UChar32 c);
00430 
00442 U_CAPI UBool U_EXPORT2
00443 u_isupper(UChar32 c);
00444 
00456 U_CAPI UBool U_EXPORT2
00457 u_istitle(UChar32 c);
00458 
00467 U_CAPI UBool U_EXPORT2
00468 u_isdigit(UChar32 c);
00469 
00478 U_CAPI UBool U_EXPORT2
00479 u_isalnum(UChar32 c);
00480 
00496 U_CAPI UBool U_EXPORT2
00497 u_isdefined(UChar32 c);
00498 
00510 U_CAPI UBool U_EXPORT2
00511 u_isalpha(UChar32 c);
00512 
00520 U_CAPI UBool U_EXPORT2
00521 u_isspace(UChar32 c);
00522 
00551 U_CAPI UBool U_EXPORT2
00552 u_isWhitespace(UChar32 c);
00553 
00563 U_CAPI UBool U_EXPORT2
00564 u_iscntrl(UChar32 c);
00565 
00566 
00577 U_CAPI UBool U_EXPORT2
00578 u_isprint(UChar32 c);
00579 
00591 U_CAPI UBool U_EXPORT2
00592 u_isbase(UChar32 c);
00593 
00603 U_CAPI UCharDirection U_EXPORT2
00604 u_charDirection(UChar32 c);
00605 
00615 U_CAPI UBool U_EXPORT2
00616 u_isMirrored(UChar32 c);
00617 
00633 U_CAPI UChar32 U_EXPORT2
00634 u_charMirror(UChar32 c);
00635 
00687 U_CAPI uint16_t U_EXPORT2
00688 u_charCellWidth(UChar32 c);
00689 
00698 U_CAPI int8_t U_EXPORT2
00699 u_charType(UChar32 c);
00700 
00709 U_CAPI int32_t U_EXPORT2
00710 u_charDigitValue(UChar32 c);
00711 
00718 U_CAPI UCharScript     U_EXPORT2
00719 u_charScript(UChar32    ch);
00720 
00753 U_CAPI UTextOffset U_EXPORT2
00754 u_charName(UChar32 code, UCharNameChoice nameChoice,
00755            char *buffer, UTextOffset bufferLength,
00756            UErrorCode *pErrorCode);
00757 
00774 U_CAPI UChar32 U_EXPORT2
00775 u_charFromName(UCharNameChoice nameChoice,
00776                const char *name,
00777                UErrorCode *pErrorCode);
00778 
00779 U_CDECL_BEGIN
00780 
00797 typedef UBool UEnumCharNamesFn(void *context,
00798                                UChar32 code,
00799                                UCharNameChoice nameChoice,
00800                                const char *name,
00801                                UTextOffset length);
00802 
00803 U_CDECL_END
00804 
00825 U_CAPI void U_EXPORT2
00826 u_enumCharNames(UChar32 start, UChar32 limit,
00827                 UEnumCharNamesFn *fn,
00828                 void *context,
00829                 UCharNameChoice nameChoice,
00830                 UErrorCode *pErrorCode);
00831 
00848 U_CAPI UBool U_EXPORT2
00849 u_isIDStart(UChar32 c);
00874 U_CAPI UBool U_EXPORT2
00875 u_isIDPart(UChar32 c);
00900 U_CAPI UBool U_EXPORT2
00901 u_isIDIgnorable(UChar32 c);
00922 U_CAPI UBool U_EXPORT2
00923 u_isJavaIDStart(UChar32 c);
00953 U_CAPI UBool U_EXPORT2
00954 u_isJavaIDPart(UChar32 c);
00955 
00978 U_CAPI UChar32 U_EXPORT2
00979 u_tolower(UChar32 c);
00980 
00996 U_CAPI UChar32 U_EXPORT2
00997 u_toupper(UChar32 c);
01012 U_CAPI UChar32 U_EXPORT2
01013 u_totitle(UChar32 c);
01014 
01022 U_CAPI void U_EXPORT2
01023 u_getUnicodeVersion(UVersionInfo info);
01024 
01025 #endif /*_UCHAR*/
01026 /*eof*/

Generated at Fri Dec 15 12:12:36 2000 for ICU 1.7 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000