loader: Fully reset terminal settings, not just colors
Reviewed by: kevans Reviewed by: tsoome Approved by: mav (mentor) MFC after: 1 week Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D21733
This commit is contained in:
parent
cfe7aad9c3
commit
73531a2abd
@ -72,6 +72,12 @@ include /boot/check-password.4th
|
|||||||
|
|
||||||
only forth definitions
|
only forth definitions
|
||||||
|
|
||||||
|
: maybe-resetcons ( -- )
|
||||||
|
loader_color? if
|
||||||
|
ris
|
||||||
|
then
|
||||||
|
;
|
||||||
|
|
||||||
: bootmsg ( -- )
|
: bootmsg ( -- )
|
||||||
loader_color? dup ( -- bool bool )
|
loader_color? dup ( -- bool bool )
|
||||||
if 7 fg 4 bg then
|
if 7 fg 4 bg then
|
||||||
|
@ -14,6 +14,7 @@ try-include /boot/loader.rc.local
|
|||||||
start
|
start
|
||||||
|
|
||||||
maybe-efi-resizecons
|
maybe-efi-resizecons
|
||||||
|
maybe-resetcons
|
||||||
|
|
||||||
\ Tests for password -- executes autoboot first if a password was defined
|
\ Tests for password -- executes autoboot first if a password was defined
|
||||||
check-password
|
check-password
|
||||||
|
@ -39,6 +39,9 @@ marker task-screen.4th
|
|||||||
\ clear screen
|
\ clear screen
|
||||||
: clear ( -- ) ho cld ;
|
: clear ( -- ) ho cld ;
|
||||||
|
|
||||||
|
\ reset to initial state
|
||||||
|
: ris ( -- ) 27 emit [char] c emit ;
|
||||||
|
|
||||||
\ move cursor to x rows, y cols (1-based coords) ( Esc-[%d;%dH )
|
\ move cursor to x rows, y cols (1-based coords) ( Esc-[%d;%dH )
|
||||||
: at-xy ( x y -- ) escc .# [char] ; emit .# [char] H emit ;
|
: at-xy ( x y -- ) escc .# [char] ; emit .# [char] H emit ;
|
||||||
|
|
||||||
|
@ -103,6 +103,7 @@ core.KEY_DELETE = 127
|
|||||||
-- other contexts (outside of Lua) may mean 'octal'
|
-- other contexts (outside of Lua) may mean 'octal'
|
||||||
core.KEYSTR_ESCAPE = "\027"
|
core.KEYSTR_ESCAPE = "\027"
|
||||||
core.KEYSTR_CSI = core.KEYSTR_ESCAPE .. "["
|
core.KEYSTR_CSI = core.KEYSTR_ESCAPE .. "["
|
||||||
|
core.KEYSTR_RESET = core.KEYSTR_ESCAPE .. "c"
|
||||||
|
|
||||||
core.MENU_RETURN = "return"
|
core.MENU_RETURN = "return"
|
||||||
core.MENU_ENTRY = "entry"
|
core.MENU_ENTRY = "entry"
|
||||||
|
@ -38,28 +38,21 @@ local color = require("color")
|
|||||||
local core = require("core")
|
local core = require("core")
|
||||||
local config = require("config")
|
local config = require("config")
|
||||||
local password = require("password")
|
local password = require("password")
|
||||||
-- The menu module will be brought in after config has loaded if we actually
|
|
||||||
-- need it.
|
|
||||||
local menu
|
|
||||||
|
|
||||||
config.load()
|
config.load()
|
||||||
|
|
||||||
-- Our console may have been setup for a different color scheme before we get
|
|
||||||
-- here, so make sure we set the default.
|
|
||||||
if color.isEnabled() then
|
|
||||||
printc(color.default())
|
|
||||||
end
|
|
||||||
try_include("local")
|
|
||||||
if not core.isMenuSkipped() then
|
|
||||||
menu = require("menu")
|
|
||||||
end
|
|
||||||
if core.isUEFIBoot() then
|
if core.isUEFIBoot() then
|
||||||
loader.perform("efi-autoresizecons")
|
loader.perform("efi-autoresizecons")
|
||||||
end
|
end
|
||||||
|
-- Our console may have been setup with different settings before we get
|
||||||
|
-- here, so make sure we reset everything back to default.
|
||||||
|
if color.isEnabled() then
|
||||||
|
printc(core.KEYSTR_RESET)
|
||||||
|
end
|
||||||
|
try_include("local")
|
||||||
password.check()
|
password.check()
|
||||||
-- menu might be disabled
|
if not core.isMenuSkipped() then
|
||||||
if menu ~= nil then
|
require("menu").run()
|
||||||
menu.run()
|
|
||||||
else
|
else
|
||||||
-- Load kernel/modules before we go
|
-- Load kernel/modules before we go
|
||||||
config.loadelf()
|
config.loadelf()
|
||||||
|
Loading…
Reference in New Issue
Block a user