Author: kevans
Date: Wed Feb 21 17:33:01 2018
New Revision: 329734
URL: https://svnweb.freebsd.org/changeset/base/329734

Log:
  lualoader: Don't execute menu.autoboot() for every opened menu
  
  Attempt to autoboot when we open the default menu, and only when we open the
  default menu. This alleviates the need for checking menu.already_autoboot,
  because we're not trying to autoboot every time we open a submenu.
  
  I note that escaping to loader prompt and going back to the menu (by running
  require('menu').run() at the loader prompt) will happily work and not
  re-initiate the autoboot sequence since "Escape to loader prompt" disables
  the autoboot_delay.

Modified:
  head/stand/lua/menu.lua

Modified: head/stand/lua/menu.lua
==============================================================================
--- head/stand/lua/menu.lua     Wed Feb 21 16:57:03 2018        (r329733)
+++ head/stand/lua/menu.lua     Wed Feb 21 17:33:01 2018        (r329734)
@@ -361,8 +361,10 @@ function menu.run(m)
        local alias_table = drawer.drawscreen(m)
 
        -- Might return nil, that's ok
-       local autoboot_key = menu.autoboot()
-
+       local autoboot_key;
+       if m == menu.default then
+               autoboot_key = menu.autoboot()
+       end
        cont = true
        while cont do
                local key = autoboot_key or io.getchar()
@@ -430,11 +432,6 @@ function menu.skip()
 end
 
 function menu.autoboot()
-       if menu.already_autoboot then
-               return nil
-       end
-       menu.already_autoboot = true
-
        local ab = loader.getenv("autoboot_delay")
        if ab ~= nil and ab:lower() == "no" then
                return nil
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to