* grub-core/kern/i386/pc/startup.S (grub_console_getkey): Fix incorrect
handling of special keys.
This commit is contained in:
parent
c7980ad945
commit
74baff844e
2 changed files with 13 additions and 5 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
@ -662,6 +664,7 @@ FUNCTION(grub_console_getkey)
|
|||
shrl $8, %eax
|
||||
orl $GRUB_TERM_EXTENDED, %eax
|
||||
2:
|
||||
popl %edi
|
||||
popl %ebp
|
||||
ret
|
||||
|
||||
|
|
Loading…
Reference in a new issue