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 U_CDECL_BEGIN
00029
00030
00031
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
01030
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
01834