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.
Reported by: npn
Triaged and recommended by: tsoome
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
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.