Mercurial > emacs
changeset 3355:e0c2e8a2ef75
(XTread_socket, case KeyPress) [HPUX]: Test IsModifiedKey.
Include systty.h; don't mess with FIONREAD.
Don't include termio.h dorectly.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 31 May 1993 18:33:08 +0000 |
parents | 0b71a5329961 |
children | 09759a9653c5 |
files | src/xterm.c |
diffstat | 1 files changed, 9 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xterm.c Mon May 31 18:22:48 1993 +0000 +++ b/src/xterm.c Mon May 31 18:33:08 1993 +0000 @@ -58,24 +58,11 @@ #include <strings.h> #else /* ! defined (BSD) */ #ifndef VMS -#include <sys/termio.h> #include <string.h> #endif #endif /* ! defined (BSD) */ -/* Allow m- file to inhibit use of FIONREAD. */ -#ifdef BROKEN_FIONREAD -#undef FIONREAD -#endif /* ! defined (BROKEN_FIONREAD) */ - -/* We are unable to use interrupts if FIONREAD is not available, - so flush SIGIO so we won't try. */ -#ifndef FIONREAD -#ifdef SIGIO -#undef SIGIO -#endif /* ! defined (SIGIO) */ -#endif /* FIONREAD */ - +#include "systty.h" #include "systime.h" #include <fcntl.h> @@ -2855,7 +2842,7 @@ if (f != 0) { - KeySym keysym; + KeySym keysym, orig_keysym; char copy_buffer[80]; int modifiers; @@ -2875,6 +2862,7 @@ /* Strip off the vendor-specific keysym bit, and take a shot at recognizing the codes. HP servers have extra keysyms that fit into the MiscFunctionKey category. */ + orig_keysym = keysym; keysym &= ~(1<<28); if (numchars > 1) @@ -2882,11 +2870,14 @@ if ((keysym >= XK_BackSpace && keysym <= XK_Escape) || keysym == XK_Delete || IsCursorKey (keysym) /* 0xff50 <= x < 0xff60 */ - || IsMiscFunctionKey (keysym) /* 0xff60 <= x < 0xff80 */ + || IsMiscFunctionKey (keysym) /* 0xff60 <= x < 0xff7e */ #ifdef HPUX /* This recognizes the "extended function keys". - It seems there's no cleaner way. */ - || ((unsigned) (keysym) >= XK_Select + It seems there's no cleaner way. + Test IsModifierKey to avoid handling mode_switch + incorrectly. */ + || (!IsModifierKey (orig_keysym) + && (unsigned) (keysym) >= XK_Select && (unsigned)(keysym) < XK_KP_Space) #endif || IsKeypadKey (keysym) /* 0xff80 <= x < 0xffbe */