diff --git a/kernel/include/kernel/Terminal/TTY.h b/kernel/include/kernel/Terminal/TTY.h index 0747e0e4f4..5886a23c89 100644 --- a/kernel/include/kernel/Terminal/TTY.h +++ b/kernel/include/kernel/Terminal/TTY.h @@ -84,6 +84,9 @@ namespace Kernel uint32_t m_width { 0 }; uint32_t m_height { 0 }; + uint32_t m_saved_row { 0 }; + uint32_t m_saved_column { 0 }; + uint32_t m_row { 0 }; uint32_t m_column { 0 }; Cell* m_buffer { nullptr }; diff --git a/kernel/kernel/Terminal/TTY.cpp b/kernel/kernel/Terminal/TTY.cpp index e99c67bb2a..4fc724cae2 100644 --- a/kernel/kernel/Terminal/TTY.cpp +++ b/kernel/kernel/Terminal/TTY.cpp @@ -473,6 +473,14 @@ namespace Kernel case 'm': handle_ansi_csi_color(); return reset_ansi(); + case 's': + m_saved_row = m_row; + m_saved_column = m_column; + return reset_ansi(); + case 'u': + m_row = m_saved_row; + m_column = m_saved_column; + return reset_ansi(); default: dprintln("Unsupported ANSI CSI character {}", ch); return reset_ansi();