svn commit: r339200 - head/stand/lua

Kyle Evans kevans at FreeBSD.org
Fri Oct 5 17:07:11 UTC 2018


Author: kevans
Date: Fri Oct  5 17:07:10 2018
New Revision: 339200
URL: https://svnweb.freebsd.org/changeset/base/339200

Log:
  lualoader: Don't draw loader menu with autoboot_delay=-1
  
  This was mostly a cosmetic issue. autoboot_delay=-1 is documented to bypass
  the loader menu and immediately execute the boot command, but lualoader
  would draw the menu and immediately execute the boot command. No interaction
  was possible with the menu.
  
  The fix lifts autoboot_delay processing out of menu.autoboot, which now
  takes a delay and does nothing if no delay is specified. This lines up with
  my expectations of menu.autoboot's usage from a third party, which may
  want more control over the process than the default behavior.
  
  PR:		231610
  Approved by:	re (gjb)

Modified:
  head/stand/lua/menu.lua

Modified: head/stand/lua/menu.lua
==============================================================================
--- head/stand/lua/menu.lua	Fri Oct  5 16:52:21 2018	(r339199)
+++ head/stand/lua/menu.lua	Fri Oct  5 17:07:10 2018	(r339200)
@@ -401,9 +401,23 @@ function menu.process(menudef, keypress)
 end
 
 function menu.run()
+	local delay = loader.getenv("autoboot_delay")
+
+	if delay ~= nil and delay:lower() == "no" then
+		delay = nil
+	else
+		delay = tonumber(delay) or 10
+	end
+
+	if delay == -1 then
+		core.boot()
+		return
+	end
+
 	menu.draw(menu.default)
-	local autoboot_key = menu.autoboot()
 
+	local autoboot_key = menu.autoboot(delay)
+
 	menu.process(menu.default, autoboot_key)
 	drawn_menu = nil
 
@@ -411,19 +425,15 @@ function menu.run()
 	print("Exiting menu!")
 end
 
-function menu.autoboot()
-	local ab = loader.getenv("autoboot_delay")
-	if ab ~= nil and ab:lower() == "no" then
+function menu.autoboot(delay)
+	-- If we've specified a nil delay, we can do nothing but assume that
+	-- we aren't supposed to be autobooting.
+	if delay == nil then
 		return nil
-	elseif tonumber(ab) == -1 then
-		core.boot()
 	end
-	ab = tonumber(ab) or 10
-
 	local x = loader.getenv("loader_menu_timeout_x") or 4
 	local y = loader.getenv("loader_menu_timeout_y") or 23
-
-	local endtime = loader.time() + ab
+	local endtime = loader.time() + delay
 	local time
 	local last
 	repeat


More information about the svn-src-head mailing list