loader: Respect loader_color=YES for serial consoles
It's not uncommon these days for the terminals attached to serial consoles to support ANSI escape sequences. However, we assume escape sequences may break some serial consoles and default to not using them when boot_serial or boot_multicons (or if console contains "comconsole" in the forth loader) for broader compatibility. We also have loader_color which can be explicitly set to "NO" to disable the use of ANSI escape sequences. The problem is that loader_color=YES gets ignored when boot_serial=YES or boot_multicons=YES (or when console contains "comconsole" in the forth loader). To fix, the existing default behavior remains unchanged when loader_color is unset, loader_color=NO explicitly disables the use of ANSI escape sequences still, and the change is that loader_color=YES can now be used to explicitly allow ANSI escapes when a serial console is enabled. Submitted by: Ryan Moeller <ryan@ixsystems.com> Reviewed by: tsoome (forth), kevans (lua) MFC after: 1 week Sponsored by: iXsystems, Inc. (Ryan) Differential Revision: https://reviews.freebsd.org/D21732
This commit is contained in:
parent
b1de37fadd
commit
bb7b569d36
@ -27,12 +27,14 @@
|
||||
marker task-color.4th
|
||||
|
||||
\ This function returns FALSE if the `loader_color' environment variable is set
|
||||
\ to NO, no, or 0. Otherwise, TRUE is returned (unless booting serial).
|
||||
\ to NO, no, or 0. It returns TRUE if `loader_color' is set to any other value.
|
||||
\ If `loader_color' is unset, TRUE is returned (unless booting serial).
|
||||
\
|
||||
: loader_color? ( -- N )
|
||||
: loader_color? ( -- t )
|
||||
|
||||
s" loader_color" getenv dup -1 <> if
|
||||
|
||||
\ `loader_color' is set.
|
||||
\ Check if it is explicitly disabled.
|
||||
2dup s" NO" compare-insensitive 0= if
|
||||
2drop
|
||||
FALSE exit
|
||||
@ -42,8 +44,12 @@ marker task-color.4th
|
||||
FALSE exit
|
||||
then
|
||||
drop
|
||||
\ It is enabled.
|
||||
TRUE
|
||||
else
|
||||
\ `loader_color' is unset.
|
||||
\ Default to using color unless serial boot is active.
|
||||
drop
|
||||
boot_serial? 0=
|
||||
then
|
||||
drop
|
||||
|
||||
boot_serial? if FALSE else TRUE then
|
||||
;
|
||||
|
@ -49,9 +49,7 @@ color.DIM = 2
|
||||
function color.isEnabled()
|
||||
local c = loader.getenv("loader_color")
|
||||
if c ~= nil then
|
||||
if c:lower() == "no" or c == "0" then
|
||||
return false
|
||||
end
|
||||
return c:lower() ~= "no" and c ~= "0"
|
||||
end
|
||||
return not core.isSerialBoot()
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user