From cfeabc458099304d3b98a4764222e22780f765e0 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Thu, 5 Jun 2025 20:43:57 +0300 Subject: [PATCH] Kernel/Terminal: Fix ANSI SGR 8 bit color parsing --- kernel/kernel/Terminal/VirtualTTY.cpp | 4 ++-- userspace/programs/Terminal/Terminal.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/kernel/Terminal/VirtualTTY.cpp b/kernel/kernel/Terminal/VirtualTTY.cpp index fcfba236..647a67cb 100644 --- a/kernel/kernel/Terminal/VirtualTTY.cpp +++ b/kernel/kernel/Terminal/VirtualTTY.cpp @@ -149,10 +149,10 @@ namespace Kernel BAN::Optional 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]; diff --git a/userspace/programs/Terminal/Terminal.cpp b/userspace/programs/Terminal/Terminal.cpp index a9030938..9f14d35c 100644 --- a/userspace/programs/Terminal/Terminal.cpp +++ b/userspace/programs/Terminal/Terminal.cpp @@ -383,10 +383,10 @@ void Terminal::handle_sgr(int32_t value) BAN::Optional 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)