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
00569 U_CAPI UBool U_EXPORT2
00570 u_iscntrl(UChar32 c);
00571
00572
00583 U_CAPI UBool U_EXPORT2
00584 u_isprint(UChar32 c);
00585
00597 U_CAPI UBool U_EXPORT2
00598 u_isbase(UChar32 c);
00599
00609 U_CAPI UCharDirection U_EXPORT2
00610 u_charDirection(UChar32 c);
00611
00621 U_CAPI UBool U_EXPORT2
00622 u_isMirrored(UChar32 c);
00623
00639 U_CAPI UChar32 U_EXPORT2
00640 u_charMirror(UChar32 c);
00641
00693 U_CAPI uint16_t U_EXPORT2
00694 u_charCellWidth(UChar32 c);
00695
00704 U_CAPI int8_t U_EXPORT2
00705 u_charType(UChar32 c);
00706
00714 U_CAPI uint8_t U_EXPORT2
00715 u_getCombiningClass(UChar32 c);
00716
00725 U_CAPI int32_t U_EXPORT2
00726 u_charDigitValue(UChar32 c);
00727
00734 U_CAPI UCharScript U_EXPORT2
00735 u_charScript(UChar32 ch);
00736
00769 U_CAPI UTextOffset U_EXPORT2
00770 u_charName(UChar32 code, UCharNameChoice nameChoice,
00771 char *buffer, UTextOffset bufferLength,
00772 UErrorCode *pErrorCode);
00773
00790 U_CAPI UChar32 U_EXPORT2
00791 u_charFromName(UCharNameChoice nameChoice,
00792 const char *name,
00793 UErrorCode *pErrorCode);
00794
00795 U_CDECL_BEGIN
00796
00813 typedef UBool UEnumCharNamesFn(void *context,
00814 UChar32 code,
00815 UCharNameChoice nameChoice,
00816 const char *name,
00817 UTextOffset length);
00818
00819 U_CDECL_END
00820
00841 U_CAPI void U_EXPORT2
00842 u_enumCharNames(UChar32 start, UChar32 limit,
00843 UEnumCharNamesFn *fn,
00844 void *context,
00845 UCharNameChoice nameChoice,
00846 UErrorCode *pErrorCode);
00847
00864 U_CAPI UBool U_EXPORT2
00865 u_isIDStart(UChar32 c);
00890 U_CAPI UBool U_EXPORT2
00891 u_isIDPart(UChar32 c);
00916 U_CAPI UBool U_EXPORT2
00917 u_isIDIgnorable(UChar32 c);
00938 U_CAPI UBool U_EXPORT2
00939 u_isJavaIDStart(UChar32 c);
00969 U_CAPI UBool U_EXPORT2
00970 u_isJavaIDPart(UChar32 c);
00971
00994 U_CAPI UChar32 U_EXPORT2
00995 u_tolower(UChar32 c);
00996
01012 U_CAPI UChar32 U_EXPORT2
01013 u_toupper(UChar32 c);
01028 U_CAPI UChar32 U_EXPORT2
01029 u_totitle(UChar32 c);
01030
01032 #define U_FOLD_CASE_DEFAULT 0
01033
01034 #define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
01035
01049 U_CAPI UChar32 U_EXPORT2
01050 u_foldCase(UChar32 c, uint32_t options);
01051
01059 U_CAPI void U_EXPORT2
01060 u_getUnicodeVersion(UVersionInfo info);
01061
01062 #endif
01063