Kernel/Terminal: Fix ANSI SGR 8 bit color parsing
This commit is contained in:
parent
49f203d61d
commit
cfeabc4580
|
@ -149,10 +149,10 @@ namespace Kernel
|
||||||
BAN::Optional<TerminalDriver::Color> VirtualTTY::get_8bit_color()
|
BAN::Optional<TerminalDriver::Color> VirtualTTY::get_8bit_color()
|
||||||
{
|
{
|
||||||
ASSERT(m_ansi_state.nums[1] == 5);
|
ASSERT(m_ansi_state.nums[1] == 5);
|
||||||
if (m_ansi_state.nums[2] < 1)
|
if (m_ansi_state.nums[2] < 0)
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
const uint8_t code = BAN::Math::min(m_ansi_state.nums[2], 256) - 1;
|
const uint8_t code = BAN::Math::min(m_ansi_state.nums[2], 255);
|
||||||
if (code < 16)
|
if (code < 16)
|
||||||
return m_palette[code];
|
return m_palette[code];
|
||||||
|
|
||||||
|
|
|
@ -383,10 +383,10 @@ void Terminal::handle_sgr(int32_t value)
|
||||||
BAN::Optional<uint32_t> Terminal::get_8bit_color()
|
BAN::Optional<uint32_t> Terminal::get_8bit_color()
|
||||||
{
|
{
|
||||||
ASSERT(m_csi_info.fields[1] == 5);
|
ASSERT(m_csi_info.fields[1] == 5);
|
||||||
if (m_csi_info.fields[2] < 1)
|
if (m_csi_info.fields[2] < 0)
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
const uint8_t code = BAN::Math::min(m_csi_info.fields[2], 256) - 1;
|
const uint8_t code = BAN::Math::min(m_csi_info.fields[2], 255);
|
||||||
if (code < 8)
|
if (code < 8)
|
||||||
return s_colors_dark[code];
|
return s_colors_dark[code];
|
||||||
if (code < 16)
|
if (code < 16)
|
||||||
|
|
Loading…
Reference in New Issue