Cleanup fhandler_console::read for readability

- Drop virtual_key_code (only used once)
- Convert macros wch and control_key_state to const vars
  unicode_char and  ctrl_key_state.
- Fix formatting

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2017-01-19 21:58:05 +01:00
parent dd7c87ae87
commit ef00718487
1 changed files with 20 additions and 22 deletions

View File

@ -363,21 +363,22 @@ fhandler_console::read (void *pv, size_t& buflen)
goto err; /* seems to be failure */ goto err; /* seems to be failure */
} }
const WCHAR &unicode_char = input_rec.Event.KeyEvent.uChar.UnicodeChar;
const DWORD &ctrl_key_state = input_rec.Event.KeyEvent.dwControlKeyState;
/* check the event that occurred */ /* check the event that occurred */
switch (input_rec.EventType) switch (input_rec.EventType)
{ {
case KEY_EVENT: case KEY_EVENT:
#define virtual_key_code (input_rec.Event.KeyEvent.wVirtualKeyCode)
#define control_key_state (input_rec.Event.KeyEvent.dwControlKeyState)
con.nModifiers = 0; con.nModifiers = 0;
#ifdef DEBUGGING #ifdef DEBUGGING
/* allow manual switching to/from raw mode via ctrl-alt-scrolllock */ /* allow manual switching to/from raw mode via ctrl-alt-scrolllock */
if (input_rec.Event.KeyEvent.bKeyDown && if (input_rec.Event.KeyEvent.bKeyDown
virtual_key_code == VK_SCROLL && && input_rec.Event.KeyEvent.wVirtualKeyCode == VK_SCROLL
((control_key_state & (LEFT_ALT_PRESSED | LEFT_CTRL_PRESSED)) == (LEFT_ALT_PRESSED | LEFT_CTRL_PRESSED)) && (ctrl_key_state & (LEFT_ALT_PRESSED | LEFT_CTRL_PRESSED))
) == (LEFT_ALT_PRESSED | LEFT_CTRL_PRESSED))
{ {
set_raw_win32_keyboard_mode (!con.raw_win32_keyboard_mode); set_raw_win32_keyboard_mode (!con.raw_win32_keyboard_mode);
continue; continue;
@ -398,8 +399,6 @@ fhandler_console::read (void *pv, size_t& buflen)
break; break;
} }
#define wch (input_rec.Event.KeyEvent.uChar.UnicodeChar)
/* Ignore key up events, except for Alt+Numpad events. */ /* Ignore key up events, except for Alt+Numpad events. */
if (!input_rec.Event.KeyEvent.bKeyDown && if (!input_rec.Event.KeyEvent.bKeyDown &&
!is_alt_numpad_event (&input_rec)) !is_alt_numpad_event (&input_rec))
@ -410,13 +409,13 @@ fhandler_console::read (void *pv, size_t& buflen)
&& is_alt_numpad_key (&input_rec)) && is_alt_numpad_key (&input_rec))
continue; continue;
if (control_key_state & SHIFT_PRESSED) if (ctrl_key_state & SHIFT_PRESSED)
con.nModifiers |= 1; con.nModifiers |= 1;
if (control_key_state & RIGHT_ALT_PRESSED) if (ctrl_key_state & RIGHT_ALT_PRESSED)
con.nModifiers |= 2; con.nModifiers |= 2;
if (control_key_state & CTRL_PRESSED) if (ctrl_key_state & CTRL_PRESSED)
con.nModifiers |= 4; con.nModifiers |= 4;
if (control_key_state & LEFT_ALT_PRESSED) if (ctrl_key_state & LEFT_ALT_PRESSED)
con.nModifiers |= 8; con.nModifiers |= 8;
/* Allow Backspace to emit ^? and escape sequences. */ /* Allow Backspace to emit ^? and escape sequences. */
@ -424,7 +423,7 @@ fhandler_console::read (void *pv, size_t& buflen)
{ {
char c = con.backspace_keycode; char c = con.backspace_keycode;
nread = 0; nread = 0;
if (control_key_state & ALT_PRESSED) if (ctrl_key_state & ALT_PRESSED)
{ {
if (con.metabit) if (con.metabit)
c |= 0x80; c |= 0x80;
@ -437,10 +436,10 @@ fhandler_console::read (void *pv, size_t& buflen)
} }
/* Allow Ctrl-Space to emit ^@ */ /* Allow Ctrl-Space to emit ^@ */
else if (input_rec.Event.KeyEvent.wVirtualKeyCode == VK_SPACE else if (input_rec.Event.KeyEvent.wVirtualKeyCode == VK_SPACE
&& (control_key_state & CTRL_PRESSED) && (ctrl_key_state & CTRL_PRESSED)
&& !(control_key_state & ALT_PRESSED)) && !(ctrl_key_state & ALT_PRESSED))
toadd = ""; toadd = "";
else if (wch == 0 else if (unicode_char == 0
/* arrow/function keys */ /* arrow/function keys */
|| (input_rec.Event.KeyEvent.dwControlKeyState & ENHANCED_KEY)) || (input_rec.Event.KeyEvent.dwControlKeyState & ENHANCED_KEY))
{ {
@ -454,17 +453,17 @@ fhandler_console::read (void *pv, size_t& buflen)
} }
else else
{ {
nread = con.con_to_str (tmp + 1, 59, wch); nread = con.con_to_str (tmp + 1, 59, unicode_char);
/* Determine if the keystroke is modified by META. The tricky /* Determine if the keystroke is modified by META. The tricky
part is to distinguish whether the right Alt key should be part is to distinguish whether the right Alt key should be
recognized as Alt, or as AltGr. */ recognized as Alt, or as AltGr. */
bool meta = bool meta =
/* Alt but not AltGr (= left ctrl + right alt)? */ /* Alt but not AltGr (= left ctrl + right alt)? */
(control_key_state & ALT_PRESSED) != 0 (ctrl_key_state & ALT_PRESSED) != 0
&& ((control_key_state & CTRL_PRESSED) == 0 && ((ctrl_key_state & CTRL_PRESSED) == 0
/* but also allow Alt-AltGr: */ /* but also allow Alt-AltGr: */
|| (control_key_state & ALT_PRESSED) == ALT_PRESSED || (ctrl_key_state & ALT_PRESSED) == ALT_PRESSED
|| (wch <= 0x1f || wch == 0x7f)); || (unicode_char <= 0x1f || unicode_char == 0x7f));
if (!meta) if (!meta)
{ {
/* Determine if the character is in the current multibyte /* Determine if the character is in the current multibyte
@ -492,7 +491,6 @@ fhandler_console::read (void *pv, size_t& buflen)
con.nModifiers &= ~4; con.nModifiers &= ~4;
} }
} }
#undef wch
break; break;
case MOUSE_EVENT: case MOUSE_EVENT: