SHA256
1
0
forked from pool/syslinux
syslinux/syslinux-4.04-timeout.patch
Steffen Winterfeldt 0620ccce49 - Use %autosetup macro: allows us to eliminate usage of deprecated
%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
2024-06-21 12:26:32 +00:00

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