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
This commit is contained in:
parent
79483833d0
commit
c206dd4d81
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=345517
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user