Kernel/Terminal: Fix 24 bit ANSI SGR color parsing

This commit is contained in:
2025-06-05 02:38:07 +03:00
parent bf41b448d6
commit 8de19aff3c
2 changed files with 12 additions and 12 deletions

View File

@@ -171,12 +171,12 @@ namespace Kernel
BAN::Optional<TerminalDriver::Color> VirtualTTY::get_24bit_color()
{
ASSERT(m_ansi_state.nums[1] == 2);
if (m_ansi_state.nums[2] < 1) return {};
if (m_ansi_state.nums[3] < 1) return {};
if (m_ansi_state.nums[4] < 1) return {};
const uint8_t r = BAN::Math::min(m_ansi_state.nums[2], 256) - 1;
const uint8_t g = BAN::Math::min(m_ansi_state.nums[3], 256) - 1;
const uint8_t b = BAN::Math::min(m_ansi_state.nums[4], 256) - 1;
if (m_ansi_state.nums[2] < 0) return {};
if (m_ansi_state.nums[3] < 0) return {};
if (m_ansi_state.nums[4] < 0) return {};
const uint8_t r = BAN::Math::min(m_ansi_state.nums[2], 255);
const uint8_t g = BAN::Math::min(m_ansi_state.nums[3], 255);
const uint8_t b = BAN::Math::min(m_ansi_state.nums[4], 255);
return TerminalDriver::Color(r, g, b);
}