# HG changeset patch # User Richard M. Stallman # Date 738873188 0 # Node ID e0c2e8a2ef751050fc78597fc9809baefca02cb0 # Parent 0b71a5329961b9d6964a50cab304db8782dcfaf4 (XTread_socket, case KeyPress) [HPUX]: Test IsModifiedKey. Include systty.h; don't mess with FIONREAD. Don't include termio.h dorectly. diff -r 0b71a5329961 -r e0c2e8a2ef75 src/xterm.c --- 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 #else /* ! defined (BSD) */ #ifndef VMS -#include #include #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 @@ -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 */