diff options
Diffstat (limited to 'src/fe-text/gui-readline.c')
-rw-r--r-- | src/fe-text/gui-readline.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/fe-text/gui-readline.c b/src/fe-text/gui-readline.c index 66867ffb..784d2bfc 100644 --- a/src/fe-text/gui-readline.c +++ b/src/fe-text/gui-readline.c @@ -50,6 +50,10 @@ static KEYBOARD_REC *keyboard; static ENTRY_REDIRECT_REC *redir; static int escape_next_key; +static int big5high = FALSE; +static unichar prekey = '\0'; + + static int readtag; static time_t idle_time; @@ -148,6 +152,20 @@ static void sig_gui_key_pressed(gpointer keyp) idle_time = time(NULL); + if (big5high || is_big5_hi(key)) { + if (big5high) { + big5high = FALSE; + str[0] = prekey; + str[1] = key; + str[2] = '\0'; + gui_entry_insert_text(active_entry, str); + } else { + big5high = TRUE; + prekey = key; + } + return; + } + if (key < 32) { /* control key */ str[0] = '^'; |