Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Feb 2019 02:59:47 +0000 (UTC)
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r344243 - head/stand/lua
Message-ID:  <201902180259.x1I2xler066207@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kevans
Date: Mon Feb 18 02:59:47 2019
New Revision: 344243
URL: https://svnweb.freebsd.org/changeset/base/344243

Log:
  lualoader: only clear the screen before first password prompt
  
  This was previously an unconditional screen clear, regardless of whether or
  not we would be prompting for any passwords. This is pointless, given that
  the screen clear is only there to put our screen into a consistent state
  before we draw the prompts and do cursor manipulation.
  
  This is also the only screen clear besides that to draw the menu.  One can
  now see early pre-loader and loader output with the menu disabled, which may
  be useful for diagnostics.
  
  Reported by:	ian
  MFC after:	3 days

Modified:
  head/stand/lua/password.lua

Modified: head/stand/lua/password.lua
==============================================================================
--- head/stand/lua/password.lua	Mon Feb 18 01:57:47 2019	(r344242)
+++ head/stand/lua/password.lua	Mon Feb 18 02:59:47 2019	(r344243)
@@ -38,6 +38,7 @@ local INCORRECT_PASSWORD = "loader: incorrect password
 -- Asterisks as a password mask
 local show_password_mask = false
 local twiddle_chars = {"/", "-", "\\", "|"}
+local screen_setup = false
 
 -- Module exports
 function password.read(prompt_length)
@@ -80,14 +81,18 @@ function password.read(prompt_length)
 end
 
 function password.check()
-	screen.clear()
-	screen.defcursor()
 	-- pwd is optionally supplied if we want to check it
 	local function doPrompt(prompt, pwd)
 		local attempts = 1
 
 		local function clear_incorrect_text_prompt()
 			printc("\r" .. string.rep(" ", #INCORRECT_PASSWORD))
+		end
+
+		if not screen_setup then
+			screen.clear()
+			screen.defcursor()
+			screen_setup = true
 		end
 
 		while true do



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201902180259.x1I2xler066207>