forked from pool/syslinux
0620ccce49
%patchN syntax. - Normalize all patches to apply as -p1 + Rebased remove-note-gnu-section.patch + Rebased sysmacros.patch - Rename all *.diff files to *.patch, aligning one a common suffix: + syslinux-4.04-align.diff -> syslinux-4.04-align.patch + syslinux-4.04-cache_fix.diff -> syslinux-4.04-cache_fix.patch + syslinux-4.04-cwd.diff -> syslinux-4.04-cwd.patch + syslinux-4.04-gcc10.diff -> syslinux-4.04-gcc10.patch + syslinux-4.04-gcc47.diff -> syslinux-4.04-gcc47.patch + syslinux-4.04-geometry.diff -> syslinux-4.04-geometry.patch + syslinux-4.04-iso9660.diff -> syslinux-4.04-iso9660.patch + syslinux-4.04-isohybrid_efi.diff -> syslinux-4.04-isohybrid_efi.patch + syslinux-4.04-isohybrid_efi_optional.diff -> syslinux-4.04-isohybrid_efi_optional.patch + syslinux-4.04-isohybrid_mbr.diff -> syslinux-4.04-isohybrid_mbr.patch + syslinux-4.04-libext2fs.diff -> syslinux-4.04-libext2fs.patch + syslinux-4.04-localboot.diff -> syslinux-4.04-localboot.patch + syslinux-4.04-lzo.diff -> syslinux-4.04-lzo.patch + syslinux-4.04-mboot_bootif.diff -> syslinux-4.04-mboot_bootif.patch + syslinux-4.04-md5pass.diff -> syslinux-4.04-md5pass.patch + syslinux-4.04-miniacc.diff -> syslinux-4.04-miniacc.patch + syslinux-4.04-mtime.diff -> syslinux-4.04-mtime.patch + syslinux-4.04-noinitrd.diff -> syslinux-4.04-noinitrd.patch + syslinux-4.04-nostrip.diff -> syslinux-4.04-nostrip.patch + syslinux-4.04-pie.diff -> syslinux-4.04-pie.patch + syslinux-4.04-python3.diff -> syslinux-4.04-python3.patch + syslinux-4.04-timeout.diff -> syslinux-4.04-timeout.patch OBS-URL: https://build.opensuse.org/package/show/system:install:head/syslinux?expand=0&rev=109
62 lines
1.4 KiB
Diff
62 lines
1.4 KiB
Diff
Index: syslinux-4.04/core/ui.inc
|
|
===================================================================
|
|
--- syslinux-4.04.orig/core/ui.inc
|
|
+++ syslinux-4.04/core/ui.inc
|
|
@@ -529,30 +529,36 @@ kernel_corrupt: mov si,err_notkernel
|
|
; which can be adjusted by the caller based on the corresponding
|
|
; master variables; on return they're updated.
|
|
;
|
|
-; This cheats. If we say "no timeout" we actually get a timeout of
|
|
-; 7.5 years.
|
|
-;
|
|
getchar_timeout:
|
|
call vgashowcursor
|
|
call reset_idle
|
|
|
|
.loop:
|
|
- push word [__jiffies]
|
|
+ push dword [__jiffies]
|
|
call pollchar
|
|
jnz .got_char
|
|
call do_idle
|
|
- pop ax
|
|
- cmp ax,[__jiffies] ; Has the timer advanced?
|
|
+ pop eax
|
|
+ sub eax,[__jiffies] ; Has the timer advanced?
|
|
je .loop
|
|
|
|
- dec dword [ThisKbdTo]
|
|
- jz .timeout
|
|
- dec dword [ThisTotalTo]
|
|
- jnz .loop
|
|
+ ; more than one tick may have passed, keep the diff in eax
|
|
+ neg eax
|
|
+
|
|
+ cmp dword [ThisKbdTo],0
|
|
+ jz .chk_total
|
|
+ sub [ThisKbdTo],eax
|
|
+ jbe .timeout
|
|
+
|
|
+.chk_total:
|
|
+ cmp dword [ThisTotalTo],0
|
|
+ jz .loop
|
|
+ sub [ThisTotalTo],eax
|
|
+ ja .loop
|
|
|
|
.timeout:
|
|
; Timeout!!!!
|
|
- pop cx ; Discard return address
|
|
+ pop ecx ; Discard return address
|
|
call vgahidecursor
|
|
mov si,Ontimeout ; Copy ontimeout command
|
|
mov di,command_line
|
|
@@ -561,7 +567,7 @@ getchar_timeout:
|
|
jmp command_done
|
|
|
|
.got_char:
|
|
- pop cx ; Discard
|
|
+ pop ecx ; Discard
|
|
call getchar
|
|
call vgahidecursor
|
|
ret
|