summaryrefslogtreecommitdiff
blob: 6ca528074975e0f1488e1250d7523cb913ac0fe2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
--- 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 <damm@opensource.se> */
+
+      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];
     }