From owner-svn-src-all@freebsd.org Mon Feb 18 03:03:59 2019 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5CEE014F0167 for ; Mon, 18 Feb 2019 03:03:59 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EB6EB71130 for ; Mon, 18 Feb 2019 03:03:58 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G3" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id 79C328C66 for ; Mon, 18 Feb 2019 03:03:58 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-lj1-f181.google.com with SMTP id v16so12976926ljg.13 for ; Sun, 17 Feb 2019 19:03:58 -0800 (PST) X-Gm-Message-State: AHQUAuYTd41uqLuY1iyN4lzv5Rdnvy4+nWavlF3OviaYoJt/H3/x+CRa gn5YTUkJhKmxym+78G7dIDZaD/85bulJvUWhdig= X-Received: by 2002:a2e:6801:: with SMTP id c1mt758229lja.81.1550459036909; Sun, 17 Feb 2019 19:03:56 -0800 (PST) MIME-Version: 1.0 References: <201902180259.x1I2xler066207@repo.freebsd.org> In-Reply-To: <201902180259.x1I2xler066207@repo.freebsd.org> From: Kyle Evans Date: Sun, 17 Feb 2019 21:03:45 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r344243 - head/stand/lua Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: EB6EB71130 X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.99)[-0.987,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Feb 2019 03:03:59 -0000 On Sun, Feb 17, 2019 at 9:00 PM Kyle Evans wrote: > > 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 > I noted in testing that this may look kinda funky if you have neither a bootlock password or GELi prompt done by loader(8), but you have a loader password. The autoboot text gets blown away by the subsequent clear screen. I'd be interesting in feedback as to whether this looks odd or how important it is that the autoboot text remains intact, as it's an easy fix to retain it.