HangulICFilter의 argument 순서를 바꿈
authorChoe Hwanjin <choe.hwanjin@gmail.com>
Sat, 20 Jan 2007 05:50:53 +0000 (14:50 +0900)
committerChoe Hwanjin <choe.hwanjin@gmail.com>
Sat, 20 Jan 2007 05:50:53 +0000 (14:50 +0900)
 * bool (*HangulICFilter)(HangulInputContext* hic,
  ucschar c,
  const ucschar* preedit,
  void* data);
   - hic: 이 ic의 포인터
   - c: 새로 입력된 글자
   - preedit:  c가 입력됐을 경우 만들어질 preedit string
   - data: filter를 등록할때 지정한 user data pointer

git-svn-id: http://kldp.net/svn/hangul/libhangul/trunk@116 8f00fcd2-89fc-0310-932e-b01be5b65e01

hangul/hangul.h
hangul/hangulinputcontext.c

index 13094ff..f1ac558 100644 (file)
@@ -66,7 +66,8 @@ typedef struct _HangulKeyboard        HangulKeyboard;
 typedef struct _HangulCombination     HangulCombination;
 typedef struct _HangulBuffer          HangulBuffer;
 typedef struct _HangulInputContext    HangulInputContext;
-typedef bool (*HangulICFilter) (ucschar*, ucschar, ucschar, ucschar, void*);
+typedef bool   (*HangulICFilter)     (HangulInputContext*,
+                                     ucschar, const ucschar*, void*);
 
 enum {
     HANGUL_OUTPUT_SYLLABLE,
index adf4599..b69deb4 100644 (file)
@@ -459,41 +459,41 @@ hangul_buffer_backspace(HangulBuffer *buffer)
 }
 
 static inline bool
-hangul_ic_push(HangulInputContext *hic, ucschar ch)
+hangul_ic_push(HangulInputContext *hic, ucschar c)
 {
     ucschar buf[64] = { 0, };
     if (hic->filter != NULL) {
        ucschar cho, jung, jong;
-       if (hangul_is_choseong(ch)) {
-           cho  = ch;
+       if (hangul_is_choseong(c)) {
+           cho  = c;
            jung = hic->buffer.jungseong;
            jong = hic->buffer.jongseong;
-       } else if (hangul_is_jungseong(ch)) {
+       } else if (hangul_is_jungseong(c)) {
            cho  = hic->buffer.choseong;
-           jung = ch;
+           jung = c;
            jong = hic->buffer.jongseong;
-       } else if (hangul_is_jongseong(ch)) {
+       } else if (hangul_is_jongseong(c)) {
            cho  = hic->buffer.choseong;
            jung = hic->buffer.jungseong;
-           jong = ch;
+           jong = c;
        } else {
            hangul_ic_flush_internal(hic);
            return false;
        }
 
        hangul_jaso_to_string(cho, jung, jong, buf, N_ELEMENTS(buf));
-       if (!hic->filter(buf, cho, jung, jong, hic->filter_data)) {
+       if (!hic->filter(hic, c, buf, hic->filter_data)) {
            hangul_ic_flush_internal(hic);
            return false;
        }
     } else {
-       if (!hangul_is_jaso(ch)) {
+       if (!hangul_is_jaso(c)) {
            hangul_ic_flush_internal(hic);
            return false;
        }
     }
 
-    hangul_buffer_push(&hic->buffer, ch);
+    hangul_buffer_push(&hic->buffer, c);
     return true;
 }