diff options
-rw-r--r-- | src/keyboard.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index b956e11..d971f8d 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -219,19 +219,21 @@ uint32_t keyboard_handle_interrupt( interrupt_handler_t *handler, uint32_t esp ) scan_code &= ~SCAN_CODE_BREAK_CODE; - keycode_t key_code; - scancode_set_t code_set = SCANCODE_SET_NORMAL; if( scan_code == SCAN_CODE_LEFT_SHIFT || scan_code == SCAN_CODE_RIGHT_SHIFT ) { if( break_code ) { keyboard->shift = false; } else { keyboard->shift = true; - code_set = SCANCODE_SET_SHIFT; } } - key_code = scancode_to_keycode( code_set, scan_code ); + scancode_set_t code_set = SCANCODE_SET_NORMAL; + if( keyboard->shift ) { + code_set = SCANCODE_SET_SHIFT; + } + + keycode_t key_code = scancode_to_keycode( code_set, scan_code ); printf( "KBD SCAN:0x%X S:%d B:%d S:%d T:0x%X '%c' 0x%X\n", scan_code, code_set, break_code, keyboard->shift, |