@@ -58,9 +58,29 @@ namespace kiwi
58
58
return within (chr, 0xAC00 , 0xD7A4 );
59
59
}
60
60
61
+ inline bool isHangulOnset (char16_t chr)
62
+ {
63
+ return within (chr, 0x1100 , 0x1100 + 19 );
64
+ }
65
+
61
66
inline bool isHangulCoda (char16_t chr)
62
67
{
63
- return within (chr, 0x11A8 , 0x11A7 + 28 );
68
+ return within (chr, 0x11A8 , 0x11A8 + 27 );
69
+ }
70
+
71
+ inline bool isHangulVowel (char16_t chr)
72
+ {
73
+ return within (chr, 0x314F , 0x3164 );
74
+ }
75
+
76
+ inline char16_t joinOnsetVowel (size_t onset, size_t vowel)
77
+ {
78
+ return 0xAC00 + (char16_t )((onset * 21 + vowel) * 28 );
79
+ }
80
+
81
+ inline int extractVowel (char16_t chr)
82
+ {
83
+ return ((chr - 0xAC00 ) / 28 ) % 21 ;
64
84
}
65
85
66
86
inline bool isOldHangulOnset (char16_t chr)
@@ -88,6 +108,8 @@ namespace kiwi
88
108
return within (chr, 0x3131 , 0x314E ) || within (chr, 0x3165 , 0x3186 );
89
109
}
90
110
111
+ char16_t toCompatibleHangulConsonant (char16_t chr);
112
+
91
113
struct ComparatorIgnoringSpace
92
114
{
93
115
static bool less (const KString& a, const KString& b, const kchar_t space = u' ' );
0 commit comments