diff --git a/kernel/kernel/Terminal/VirtualTTY.cpp b/kernel/kernel/Terminal/VirtualTTY.cpp index 6b2a577e..37799297 100644 --- a/kernel/kernel/Terminal/VirtualTTY.cpp +++ b/kernel/kernel/Terminal/VirtualTTY.cpp @@ -171,12 +171,12 @@ namespace Kernel BAN::Optional 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); } diff --git a/userspace/programs/Terminal/Terminal.cpp b/userspace/programs/Terminal/Terminal.cpp index 31518322..51c17954 100644 --- a/userspace/programs/Terminal/Terminal.cpp +++ b/userspace/programs/Terminal/Terminal.cpp @@ -403,12 +403,12 @@ BAN::Optional Terminal::get_8bit_color() BAN::Optional 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); }