Kernel/Terminal: Fix 24 bit ANSI SGR color parsing
This commit is contained in:
parent
bf41b448d6
commit
8de19aff3c
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -403,12 +403,12 @@ BAN::Optional<uint32_t> Terminal::get_8bit_color()
|
|||
BAN::Optional<uint32_t> Terminal::get_24bit_color()
|
||||
{
|
||||
ASSERT(m_csi_info.fields[1] == 2);
|
||||
if (m_csi_info.fields[2] < 1) return {};
|
||||
if (m_csi_info.fields[3] < 1) return {};
|
||||
if (m_csi_info.fields[4] < 1) return {};
|
||||
const uint8_t r = BAN::Math::min(m_csi_info.fields[2], 256) - 1;
|
||||
const uint8_t g = BAN::Math::min(m_csi_info.fields[3], 256) - 1;
|
||||
const uint8_t b = BAN::Math::min(m_csi_info.fields[4], 256) - 1;
|
||||
if (m_csi_info.fields[2] < 0) return {};
|
||||
if (m_csi_info.fields[3] < 0) return {};
|
||||
if (m_csi_info.fields[4] < 0) return {};
|
||||
const uint8_t r = BAN::Math::min(m_csi_info.fields[2], 255);
|
||||
const uint8_t g = BAN::Math::min(m_csi_info.fields[3], 255);
|
||||
const uint8_t b = BAN::Math::min(m_csi_info.fields[4], 255);
|
||||
return b | (g << 8) | (r << 16) | (0xCC << 24);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue