svn commit: r352349 - in stable: 11/stand/lua 12/stand/lua
Kyle Evans
kevans at FreeBSD.org
Sun Sep 15 02:48:16 UTC 2019
Author: kevans
Date: Sun Sep 15 02:48:15 2019
New Revision: 352349
URL: https://svnweb.freebsd.org/changeset/base/352349
Log:
MFC r352194: lualoader: Revert to ASCII menu frame for serial console
The box drawing characters we use aren't necessarily safe with a serial
console; for instance, in the report by npn@, these were causing his xterm
to send back a sequence that lua picked up as input and halted the boot.
This is less than ideal.
Fallback to ASCII frames for console with 'comconsole' in it. This is a
partial revert r338108 by imp@ -- instead of removing the menu entirely and
disabling color/cursor sequences, just reverting the default frame to ASCII
is enough to not break in this setup.
Modified:
stable/11/stand/lua/core.lua
stable/11/stand/lua/drawer.lua
Directory Properties:
stable/11/ (props changed)
Changes in other areas also in this revision:
Modified:
stable/12/stand/lua/core.lua
stable/12/stand/lua/drawer.lua
Directory Properties:
stable/12/ (props changed)
Modified: stable/11/stand/lua/core.lua
==============================================================================
--- stable/11/stand/lua/core.lua Sun Sep 15 02:46:40 2019 (r352348)
+++ stable/11/stand/lua/core.lua Sun Sep 15 02:48:15 2019 (r352349)
@@ -319,6 +319,16 @@ function core.isZFSBoot()
return false
end
+function core.isSerialConsole()
+ local c = loader.getenv("console")
+ if c ~= nil then
+ if c:find("comconsole") ~= nil then
+ return true
+ end
+ end
+ return false
+end
+
function core.isSerialBoot()
local s = loader.getenv("boot_serial")
if s ~= nil then
Modified: stable/11/stand/lua/drawer.lua
==============================================================================
--- stable/11/stand/lua/drawer.lua Sun Sep 15 02:46:40 2019 (r352348)
+++ stable/11/stand/lua/drawer.lua Sun Sep 15 02:48:15 2019 (r352349)
@@ -144,13 +144,20 @@ local function drawmenu(menudef)
return alias_table
end
+local function defaultframe()
+ if core.isSerialConsole() then
+ return "ascii"
+ end
+ return "double"
+end
+
local function drawbox()
local x = menu_position.x - 3
local y = menu_position.y - 1
local w = frame_size.w
local h = frame_size.h
- local framestyle = loader.getenv("loader_menu_frame") or "double"
+ local framestyle = loader.getenv("loader_menu_frame") or defaultframe()
local framespec = drawer.frame_styles[framestyle]
-- If we don't have a framespec for the current frame style, just don't
-- draw a box.
More information about the svn-src-stable-11
mailing list