--- qemacs-0.3.1/tty.c 2003-04-22 00:01:42.000000000 +0200 +++ qemacs-0.3.1-tty_utf8/tty.c 2004-03-14 17:38:58.000000000 +0100 @@ -53,7 +53,6 @@ /* input handling */ enum InputState input_state; int input_param; - int utf8_state; int utf8_index; unsigned char buf[10]; } TTYState; @@ -211,15 +210,20 @@ /* charset handling */ if (s->charset == &charset_utf8) { - if (ts->utf8_state == 0) { + + /* Make sure utf8 input works correctly 20040314 */ + + ts->utf8_index++; + + if (utf8_length[ts->buf[0]] == ts->utf8_index) {; const char *p; p = ts->buf; ch = utf8_decode(&p); - } else { - ts->utf8_state = utf8_length[ts->buf[0]] - 1; - ts->utf8_index = 0; - return; - } + ts->utf8_index = 0; + } + else { + return; + } } else { ch = ts->buf[0]; }