diff --git a/Kernel/TTY/VirtualConsole.cpp b/Kernel/TTY/VirtualConsole.cpp index 2684783ab1..36d027a33c 100644 --- a/Kernel/TTY/VirtualConsole.cpp +++ b/Kernel/TTY/VirtualConsole.cpp @@ -33,7 +33,7 @@ void ConsoleImpl::clear() { m_client.clear(); } -void ConsoleImpl::clear_including_history() +void ConsoleImpl::clear_history() { } diff --git a/Kernel/TTY/VirtualConsole.h b/Kernel/TTY/VirtualConsole.h index 69f6eecf90..6442998bc3 100644 --- a/Kernel/TTY/VirtualConsole.h +++ b/Kernel/TTY/VirtualConsole.h @@ -35,7 +35,7 @@ public: private: virtual void invalidate_cursor() override; virtual void clear() override; - virtual void clear_including_history() override; + virtual void clear_history() override; virtual void scroll_up(u16 region_top, u16 region_bottom, size_t count) override; virtual void scroll_down(u16 region_top, u16 region_bottom, size_t count) override; diff --git a/Userland/Libraries/LibVT/Terminal.cpp b/Userland/Libraries/LibVT/Terminal.cpp index bb64076859..8a965ed7f5 100644 --- a/Userland/Libraries/LibVT/Terminal.cpp +++ b/Userland/Libraries/LibVT/Terminal.cpp @@ -32,17 +32,15 @@ void Terminal::clear() { dbgln_if(TERMINAL_DEBUG, "Clear the entire screen"); for (size_t i = 0; i < rows(); ++i) - active_buffer()[i].clear(m_current_state.attribute); + active_buffer()[i].clear(Attribute()); set_cursor(0, 0); } -void Terminal::clear_including_history() +void Terminal::clear_history() { + dbgln_if(TERMINAL_DEBUG, "Clear history"); m_history.clear(); m_history_start = 0; - - clear(); - m_client.terminal_history_changed(); } #endif @@ -626,8 +624,7 @@ void Terminal::ED(Parameters params) clear(); break; case 3: - // FIXME: [3J should also clear the scrollback buffer. - clear(); + clear_history(); break; default: unimplemented_csi_sequence(params, {}, 'J'); diff --git a/Userland/Libraries/LibVT/Terminal.h b/Userland/Libraries/LibVT/Terminal.h index 5b34a960a2..8a52aa81ce 100644 --- a/Userland/Libraries/LibVT/Terminal.h +++ b/Userland/Libraries/LibVT/Terminal.h @@ -74,12 +74,18 @@ public: void set_cursor(unsigned row, unsigned column, bool skip_debug = false); + void clear_including_history() + { + clear_history(); + clear(); + } + #ifndef KERNEL void clear(); - void clear_including_history(); + void clear_history(); #else virtual void clear() = 0; - virtual void clear_including_history() = 0; + virtual void clear_history() = 0; #endif #ifndef KERNEL