00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef UCHAR_H
00024 #define UCHAR_H
00025
00026 #include "unicode/utypes.h"
00027
00028
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
00192 enum UCharScript {
00193
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
01026