* grub-core/kern/i386/pc/startup.S (grub_console_getkey): Fix incorrect

handling of special keys.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2010-10-06 19:46:20 +02:00
parent c7980ad945
commit 74baff844e
2 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2010-10-09 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/i386/pc/startup.S (grub_console_getkey): Fix incorrect
handling of special keys.
2010-10-02 Aleš Nesrsta <starous@volny.cz>
* include/grub/scsi.h (grub_make_scsi_id): Fix incorrect usgae of

View File

@ -615,6 +615,7 @@ LOCAL(bypass_table_end):
FUNCTION(grub_console_getkey)
pushl %ebp
pushl %edi
call prot_to_real
.code16
@ -644,15 +645,16 @@ FUNCTION(grub_console_getkey)
jz 1f
andl %edx, %eax
cmp %eax, 0x20
cmpl $0x20, %eax
ja 2f
movl %edx, %eax
leal LOCAL(bypass_table), %esi
leal LOCAL(bypass_table), %edi
movl $((LOCAL(bypass_table_end) - LOCAL(bypass_table)) / 2), %ecx
repne cmpsw
repne scasw
jz 3f
addl $('a' - 1 | GRUB_TERM_CTRL), %eax
andl $0xff, %eax
addl $(('a' - 1) | GRUB_TERM_CTRL), %eax
jmp 2f
3:
andl $0xff, %eax
@ -661,7 +663,8 @@ FUNCTION(grub_console_getkey)
1: movl %edx, %eax
shrl $8, %eax
orl $GRUB_TERM_EXTENDED, %eax
2:
2:
popl %edi
popl %ebp
ret