From 25e16326df05bd4632e6a265023d7640aa01cebf Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Thu, 4 Oct 2001 14:13:40 +0000 Subject: [PATCH] (XTread_socket): Return a non_ascii_keystroke for unknown keysyms. --- src/ChangeLog | 14 ++++++++++++++ src/xterm.c | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 71d8bd42517..907f1655a99 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,17 @@ +2001-10-04 Gerd Moellmann + + This handles unknown keysyms better than before. For example, + after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment, + Emacs formerly completely ignored F5. With the change, it derives + a key symbol from the name of the X keysym, `ccaron' in this case. + Reported by Martin Buchholz. + + * xterm.c (XTread_socket): Return a non_ascii_keystroke for + unknown keysyms. + + * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know + that EVENT->code isn't a function key, use the keysym's name. + 2001-10-04 Gerd Moellmann FOREACH is a macro that should make it easier to loop over Lisp diff --git a/src/xterm.c b/src/xterm.c index 2487b7afd27..6a3b6ac3a11 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -10526,7 +10526,8 @@ XTread_socket (sd, bufp, numchars, expected) || IsKeypadKey (keysym) /* 0xff80 <= x < 0xffbe */ || IsFunctionKey (keysym) /* 0xffbe <= x < 0xffe1 */ /* Any "vendor-specific" key is ok. */ - || (orig_keysym & (1 << 28))) + || (orig_keysym & (1 << 28)) + || (keysym != NoSymbol && nbytes == 0)) && ! (IsModifierKey (orig_keysym) #ifndef HAVE_X11R5 #ifdef XK_Mode_switch -- 2.39.5