From 20e17a28cf4570ed0c7b8d56c3cb27a760067410 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Wed, 23 Apr 2025 06:33:11 +0300 Subject: [PATCH] Kernel: Fix \b handling Don't clear the character, only move cursor backwards --- kernel/kernel/Terminal/TTY.cpp | 8 ++++++++ kernel/kernel/Terminal/VirtualTTY.cpp | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/kernel/kernel/Terminal/TTY.cpp b/kernel/kernel/Terminal/TTY.cpp index 4a05eb5a..e99b5d78 100644 --- a/kernel/kernel/Terminal/TTY.cpp +++ b/kernel/kernel/Terminal/TTY.cpp @@ -302,6 +302,8 @@ namespace Kernel ASSERT(m_output.bytes > 0); m_output.bytes--; putchar('\b'); + putchar(' '); + putchar('\b'); } // Caret notation else if (last < 32 || last == 127) @@ -309,12 +311,18 @@ namespace Kernel m_output.bytes--; putchar('\b'); putchar('\b'); + putchar(' '); + putchar(' '); + putchar('\b'); + putchar('\b'); } // Ascii else { m_output.bytes--; putchar('\b'); + putchar(' '); + putchar('\b'); } } } diff --git a/kernel/kernel/Terminal/VirtualTTY.cpp b/kernel/kernel/Terminal/VirtualTTY.cpp index b5d94d57..8ebd5f1f 100644 --- a/kernel/kernel/Terminal/VirtualTTY.cpp +++ b/kernel/kernel/Terminal/VirtualTTY.cpp @@ -411,7 +411,7 @@ namespace Kernel break; case BS: if (m_column > 0) - putchar_at(' ', --m_column, m_row); + m_column--; break; case HT: m_column++;