summaryrefslogtreecommitdiff
path: root/src/fe-text/gui-readline.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fe-text/gui-readline.c')
-rw-r--r--src/fe-text/gui-readline.c18
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] = '^';