Fix non-ASCII input in non-GUI frames on MS-Windows. (Bug#12055)
authorEli Zaretskii <eliz@gnu.org>
Sat, 28 Jul 2012 16:57:57 +0000 (19:57 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 28 Jul 2012 16:57:57 +0000 (19:57 +0300)
commit01bd1b0df605d644ae31e8f1f81d926a5d8c7099
tree4831ac9d45815c50fe276079dd5edb7cb8e63ef8
parenta5c66610be0d94045c417dde54f8ffadd26977b5
Fix non-ASCII input in non-GUI frames on MS-Windows.  (Bug#12055)

 src/w32inevt.c: Include w32inevt.h.
 (w32_read_console_input): New inline function, calls either
 ReadConsoleInputA or ReadConsoleInputW, depending on the value of
 w32_console_unicode_input.
 (fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
 (w32_kbd_patch_key, key_event): Use the codepage returned by
 GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
 (key_event): use uChar.UnicodeChar only if
 w32_console_unicode_input is non-zero.
 src/w32console.c: Include w32heap.h.
 <w32_console_unicode_input>: New global variable.
 (initialize_w32_display): Set w32_console_unicode_input to 1 on NT
 family of Windows, zero otherwise.
 src/w32inevt.h: Declare w32_console_unicode_input.
 lisp/international/mule-cmds.el (set-locale-environment): In a
 console session on MS-Windows, set up keyboard and terminal
 encoding from the OEM codepage, not the ANSI codepage.
lisp/ChangeLog
lisp/international/mule-cmds.el
src/ChangeLog
src/w32console.c
src/w32inevt.c
src/w32inevt.h