summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog2
-rw-r--r--src/xterm.c8
2 files changed, 6 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index a2cb8c490a6..b28c1d9ac05 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,7 @@
2008-01-17 Jason Rumney <jasonr@gnu.org>
+ * xterm.c (handle_one_xevent): Revert to counting chars not bytes.
+
* w32term.c (w32_read_socket) <WM_CHAR>: Decode characters outside
the unicode range available in MULE by locale-coding-system.
Improve dbcs lead byte detection. Set event timestamp and modifiers
diff --git a/src/xterm.c b/src/xterm.c
index 7f948815860..96638c2ee5f 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -6488,9 +6488,7 @@ handle_one_xevent (dpyinfo, eventp, finish, hold_quit)
kbd_buffer_store_event_hold (&inev.ie, hold_quit);
}
- /* Previous code updated count by nchars rather than nbytes,
- but that seems bogus to me. ++kfs */
- count += nbytes;
+ count += nchars;
inev.ie.kind = NO_EVENT; /* Already stored above. */
@@ -6989,7 +6987,9 @@ x_dispatch_event (event, display)
We return as soon as there are no more events to be read.
We return the number of characters stored into the buffer,
- thus pretending to be `read'.
+ thus pretending to be `read' (except the characters we store
+ in the keyboard buffer can be multibyte, so are not necessarily
+ C chars).
EXPECTED is nonzero if the caller knows input is available. */