Mercurial > pidgin
diff finch/libgnt/gntmain.c @ 21216:b9d6cd4d9024
Convert the inputs to UTF8 first before doing anything. Thanks a lot to Ionic` on #pidgin for testing.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Wed, 03 Oct 2007 14:14:31 +0000 |
parents | 3c415481a943 |
children | e119edfc0fb0 9187d331aebe |
line wrap: on
line diff
--- a/finch/libgnt/gntmain.c Wed Oct 03 07:19:31 2007 +0000 +++ b/finch/libgnt/gntmain.c Wed Oct 03 14:14:31 2007 +0000 @@ -223,6 +223,7 @@ char keys[256]; int rd; char *k; + char *cvrt = NULL; if (wm->mode == GNT_KP_MODE_WAIT_ON_CHILD) return FALSE; @@ -243,15 +244,16 @@ raise(SIGABRT); } - gnt_wm_set_event_stack(wm, TRUE); rd += HOLDING_ESCAPE; - keys[rd] = 0; - if (mouse_enabled && detect_mouse_action(keys)) - goto end; - if (HOLDING_ESCAPE) keys[0] = '\033'; - k = keys; + keys[rd] = 0; + gnt_wm_set_event_stack(wm, TRUE); + + cvrt = g_locale_to_utf8(keys, rd, (gsize*)&rd, NULL, NULL); + k = cvrt ? cvrt : keys; + if (mouse_enabled && detect_mouse_action(k)) + goto end; #if 0 /* I am not sure what's happening here. If this actually does something, @@ -290,6 +292,7 @@ } end: gnt_wm_set_event_stack(wm, FALSE); + g_free(cvrt); return TRUE; }