summaryrefslogtreecommitdiff
path: root/src/w32fns.c
diff options
context:
space:
mode:
authorIlya Zakharevich <ilya@math.berkeley.edu>2015-08-17 20:15:30 +0300
committerEli Zaretskii <eliz@gnu.org>2015-08-17 20:15:30 +0300
commitc1f34a993c4ae0f13d5dfc3f1da885e510e931e6 (patch)
treeceb9524a7050416519ab01a90e714898b9a62dd1 /src/w32fns.c
parent94cf37c8de3bc14cdadfe84dc8c405a477adbe3e (diff)
downloademacs-c1f34a993c4ae0f13d5dfc3f1da885e510e931e6.tar.gz
Minor change in variable initialization on MS-Windows
* src/w32fns.c <after_dead_key>: Initialize to -1. (deliver_wm_chars): If after_deadkey is zero, don't set after_dead non-zero.
Diffstat (limited to 'src/w32fns.c')
-rw-r--r--src/w32fns.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/w32fns.c b/src/w32fns.c
index 4b29e64bd58..2cb99c90057 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -2941,7 +2941,11 @@ get_wm_chars (HWND aWnd, int *buf, int buflen, int ignore_ctrl, int ctrl,
environments!) should have different values. Moreover, switching to a
non-Emacs window with the same language environment, and using (dead)keys
there would change the value stored in the kernel, but not this value. */
-static int after_deadkey = 0;
+/* A layout may emit deadkey=0. It looks like this would reset the state
+ of the kernel's finite automaton (equivalent to emiting 0-length string,
+ which is otherwise impossible in the dead-key map of a layout).
+ Be ready to treat the case when this delivers WM_(SYS)DEADCHAR. */
+static int after_deadkey = -1;
int
deliver_wm_chars (int do_translate, HWND hwnd, UINT msg, UINT wParam,
@@ -2951,7 +2955,7 @@ deliver_wm_chars (int do_translate, HWND hwnd, UINT msg, UINT wParam,
points to a keypress.
(However, the "old style" TranslateMessage() would deliver at most 16 of
them.) Be on a safe side, and prepare to treat many more. */
- int ctrl_cnt, buf[1024], count, is_dead, after_dead = (after_deadkey != -1);
+ int ctrl_cnt, buf[1024], count, is_dead, after_dead = (after_deadkey > 0);
/* Since the keypress processing logic of Windows has a lot of state, it
is important to call TranslateMessage() for every keyup/keydown, AND