4inline ::i32 unicode_len(const ::ansi_character * pszChar);
5inline ::i32 unicode_len(const ::wd16_character * pszChar) {
return utf16_is_1st_surrogate(*pszChar) ? 2 : 1; }
6inline ::i32 unicode_len(const ::wd32_character * pszChar) {
return 1; }
9inline ::i32 ansichar_unicode_len(::wd32_character i);
10inline ::i32 wd16char_unicode_len(::wd32_character i) {
return utf32_is_surrogated(i) ? 2 : 1; }
11inline ::i32 wd32char_unicode_len(::wd32_character i) {
return 1; }
14inline ::i32 char_unicode_len(const ::ansi_character *, ::wd32_character i) {
return ansichar_unicode_len(i); }
15inline ::i32 char_unicode_len(const ::wd16_character *, ::wd32_character i) {
return wd16char_unicode_len(i); }
16inline ::i32 char_unicode_len(const ::wd32_character *, ::wd32_character i) {
return wd32char_unicode_len(i); }
22inline bool unicode_is_whitespace(::i32 i);
23inline bool unicode_is_space_char(::i32 i);
24inline ::i32 unicode_to_lower_case(::i32 i);
25inline ::i32 unicode_to_upper_case(::i32 i);
26inline ::i32 unicode_to_title_case(::i32 i);
27inline ::i32 unicode_to_numeric_value(::i32 i, ::f32 * f);
30inline bool unicode_is_lower_case(::i32 iUniIndex);
31inline bool unicode_is_upper_case(::i32 iUniIndex);
32inline bool unicode_is_title_case(::i32 iUniIndex);
33inline bool unicode_is_letter(::i32 iUniIndex);
34inline bool unicode_is_letter_or_digit(::i32 iUniIndex);
35inline bool unicode_is_digit(::i32 iUniIndex);
36inline bool unicode_is_number(::i32 iUniIndex);
37inline bool unicode_is_assigned(::i32 iUniIndex);
38inline bool unicode_is_space_char(::i32 iUniIndex);
43bool unicode_is_number(const ::scoped_string & scopedstrUtf8Char);
46inline ECharCategory unicode_get_category(::i32 i);
47inline ::i32 unicode_get_combining_class(::i32 i);
48inline bool unicode_is_mirrored(::i32 i);
50string unicode_get_category_name(const ::scoped_string & scopedstrUtf8Char);
51ECharCategory unicode_get_category(const ::scoped_string & scopedstrUtf8Char);
53::i32 unicode_get_combining_class(const ::scoped_string & scopedstrUtf8Char);
54bool unicode_is_mirrored(const ::scoped_string & scopedstrUtf8Char);
56::i32 unicode_size_of_tables();
59inline bool unicode_is_kanji(::i64 i) {
return i >= 0x4E00 && i <= 0x9FBF; }
60inline bool unicode_is_hiragana(::i64 i) {
return i >= 0x3040 && i <= 0x309F; }
61inline bool unicode_is_katakana(::i64 i) {
return i >= 0x30A0 && i <= 0x30FF; }
62inline bool unicode_is_japanese(::i64 i) {
return unicode_is_kanji(i) || unicode_is_hiragana(i) || unicode_is_katakana(i); }
63inline bool unicode_is_kanji(const ::scoped_string & scopedstrUtf8) {
return unicode_is_kanji(unicode_index(scopedstrUtf8)); }
64inline bool unicode_is_hiragana(const ::scoped_string & scopedstrUtf8) {
return unicode_is_hiragana(unicode_index(scopedstrUtf8)); }
65inline bool unicode_is_katakana(const ::scoped_string & scopedstrUtf8) {
return unicode_is_katakana(unicode_index(scopedstrUtf8)); }
66inline bool unicode_is_japanese(const ::scoped_string & scopedstrUtf8) {
return unicode_is_japanese(unicode_index(scopedstrUtf8)); }
68void * unicode_char_bidi_names_non_usage_warning();
70::i32 unicode_ref_tables();
71const_char_pointer unicode_get_category_name(::i32 i);