Author: kevans
Date: Tue Mar 26 02:33:27 2019
New Revision: 345517
URL: https://svnweb.freebsd.org/changeset/base/345517

Log:
  lualoader: Clear the screen before prompting for password
  
  Assuming that the autoboot sequence was interrupted, we've done enough
  cursor manipulation that the prompt for the password will be sufficiently
  obscured a couple of lines up. Clear the screen and reset the cursor
  position here, too.
  
  MFC after:    1 week

Modified:
  head/stand/lua/password.lua

Modified: head/stand/lua/password.lua
==============================================================================
--- head/stand/lua/password.lua Tue Mar 26 02:21:09 2019        (r345516)
+++ head/stand/lua/password.lua Tue Mar 26 02:33:27 2019        (r345517)
@@ -40,6 +40,12 @@ local show_password_mask = false
 local twiddle_chars = {"/", "-", "\\", "|"}
 local screen_setup = false
 
+local function setup_screen()
+       screen.clear()
+       screen.defcursor()
+       screen_setup = true
+end
+
 -- Module exports
 function password.read(prompt_length)
        local str = ""
@@ -90,9 +96,7 @@ function password.check()
                end
 
                if not screen_setup then
-                       screen.clear()
-                       screen.defcursor()
-                       screen_setup = true
+                       setup_screen()
                end
 
                while true do
@@ -131,6 +135,11 @@ function password.check()
        local pwd = loader.getenv("password")
        if pwd ~= nil then
                core.autoboot()
+               -- The autoboot sequence was interrupted, so we'll need to
+               -- prompt for a password.  Put the screen back into a known
+               -- good state, otherwise we're drawing back a couple lines
+               -- in the middle of other text.
+               setup_screen()
        end
        compare("Loader password:", pwd)
 end
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to