mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-22 23:32:39 +00:00
Properly handle extended_pending
This commit is contained in:
1 parent
59004db595
commit
6e05e7f0f8
1 file changed
+10
-2
+10
-2
@@ -122,13 +122,21 @@ grub_keyboard_getkey (void)
|
||||
if (! KEYBOARD_ISREADY (grub_inb (KEYBOARD_REG_STATUS)))
|
||||
return -1;
|
||||
key = grub_inb (KEYBOARD_REG_DATA);
|
||||
if (key == 0xe0)
|
||||
{
|
||||
extended_pending = 1;
|
||||
return -1;
|
||||
}
|
||||
/* FIXME */ grub_keyboard_isr (key);
|
||||
ret = KEYBOARD_SCANCODE (key);
|
||||
if (ret == SHIFT_L || ret == SHIFT_R || ret == ALT || ret == CTRL)
|
||||
return -1;
|
||||
{
|
||||
extended_pending = 0;
|
||||
return -1;
|
||||
}
|
||||
if (extended_pending)
|
||||
ret |= 0x80;
|
||||
extended_pending = (key == 0xe0);
|
||||
extended_pending = 0;
|
||||
if (! KEYBOARD_ISMAKE (key))
|
||||
return -1;
|
||||
return ret;
|
||||
|
||||
Reference in new issue
Block a user