summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChoe Hwanjin <choe.hwanjin@gmail.com>2016-03-04 20:24:20 +0900
committerChoe Hwanjin <choe.hwanjin@gmail.com>2016-03-05 11:19:05 +0900
commitecc2d7e2cb7e4307312fde2535a911bbf10d1623 (patch)
treeabd7abae8b4546bca2e76f36c5d962661bc8c0a1
parentacf25460c6ec11259ce5044c1005a4d620c9ae4c (diff)
downloadlibhangul-ecc2d7e2cb7e4307312fde2535a911bbf10d1623.tar.gz
tools의 hangul도 hangul ic에 추가된 option 기능을 사용하여 구현
strict order 옵션은 HANGUL_IC_OPTION_AUTO_REORDER을 사용하여 구현하면 된다.
-rw-r--r--tools/hangul.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/tools/hangul.c b/tools/hangul.c
index d2783c3..507af4e 100644
--- a/tools/hangul.c
+++ b/tools/hangul.c
@@ -156,21 +156,6 @@ list_keyboards()
exit(EXIT_SUCCESS);
}
-static bool
-on_hic_transition(HangulInputContext* ic,
- ucschar c, const ucschar* preedit, void * data)
-{
- if (hangul_is_choseong(c)) {
- if (hangul_ic_has_jungseong(ic) || hangul_ic_has_jongseong(ic))
- return false;
- } else if (hangul_is_jungseong(c)) {
- if (hangul_ic_has_jongseong(ic))
- return false;
- }
-
- return true;
-}
-
size_t ucschar_strlen(const ucschar* str)
{
const ucschar* p = str;
@@ -379,7 +364,9 @@ main(int argc, char *argv[])
ic = hangul_ic_new(keyboard);
if (strict_order) {
- hangul_ic_connect_callback(ic, "transition", on_hic_transition, NULL);
+ hangul_ic_set_option(ic, HANGUL_IC_OPTION_AUTO_REORDER, false);
+ } else {
+ hangul_ic_set_option(ic, HANGUL_IC_OPTION_AUTO_REORDER, true);
}
if (input_string != NULL) {