Kernel/Terminal: Fix ANSI SGR 8 bit color parsing

This commit is contained in:
Bananymous 2025-06-05 20:43:57 +03:00
parent 49f203d61d
commit cfeabc4580
2 changed files with 4 additions and 4 deletions

View File

@ -149,10 +149,10 @@ namespace Kernel
BAN::Optional<TerminalDriver::Color> VirtualTTY::get_8bit_color()
{
ASSERT(m_ansi_state.nums[1] == 5);
if (m_ansi_state.nums[2] < 1)
if (m_ansi_state.nums[2] < 0)
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)
return m_palette[code];

View File

@ -383,10 +383,10 @@ void Terminal::handle_sgr(int32_t value)
BAN::Optional<uint32_t> Terminal::get_8bit_color()
{
ASSERT(m_csi_info.fields[1] == 5);
if (m_csi_info.fields[2] < 1)
if (m_csi_info.fields[2] < 0)
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)
return s_colors_dark[code];
if (code < 16)