summaryrefslogtreecommitdiff
path: root/src/w32inevt.h
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2012-07-28 19:57:57 +0300
committerEli Zaretskii <eliz@gnu.org>2012-07-28 19:57:57 +0300
commit01bd1b0df605d644ae31e8f1f81d926a5d8c7099 (patch)
tree4831ac9d45815c50fe276079dd5edb7cb8e63ef8 /src/w32inevt.h
parenta5c66610be0d94045c417dde54f8ffadd26977b5 (diff)
downloademacs-01bd1b0df605d644ae31e8f1f81d926a5d8c7099.tar.gz
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.
Diffstat (limited to 'src/w32inevt.h')
-rw-r--r--src/w32inevt.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/w32inevt.h b/src/w32inevt.h
index d228637abfb..5386f2aa96c 100644
--- a/src/w32inevt.h
+++ b/src/w32inevt.h
@@ -19,6 +19,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_W32INEVT_H
#define EMACS_W32INEVT_H
+extern int w32_console_unicode_input;
+
extern int w32_console_read_socket (struct terminal *term, int numchars,
struct input_event *hold_quit);
extern void w32_console_mouse_position (FRAME_PTR *f, int insist,