diff --git a/Libraries/LibVT/Terminal.cpp b/Libraries/LibVT/Terminal.cpp index 44f53e08a9..8926b6e85d 100644 --- a/Libraries/LibVT/Terminal.cpp +++ b/Libraries/LibVT/Terminal.cpp @@ -773,6 +773,18 @@ void Terminal::NEL() newline(); } +void Terminal::IND() +{ + // IND - Index (move down) + escape$B({}); +} + +void Terminal::RI() +{ + // RI - Reverse Index (move up) + escape$A({}); +} + void Terminal::on_char(u8 ch) { #ifdef TERMINAL_DEBUG @@ -789,11 +801,20 @@ void Terminal::on_char(u8 ch) m_escape_state = ExpectXtermParameter1; } else if (ch == '#') { m_escape_state = ExpectHashtagDigit; + } else if (ch == 'D') { + IND(); + m_escape_state = Normal; + return; + } else if (ch == 'M') { + RI(); + m_escape_state = Normal; + return; } else if (ch == 'E') { NEL(); m_escape_state = Normal; return; } else { + dbg() << "Unexpected character in GotEscape '" << (char)ch << "'"; m_escape_state = Normal; } return; diff --git a/Libraries/LibVT/Terminal.h b/Libraries/LibVT/Terminal.h index 37a44e78f4..b481052f7c 100644 --- a/Libraries/LibVT/Terminal.h +++ b/Libraries/LibVT/Terminal.h @@ -173,6 +173,8 @@ private: void escape$c(const ParamVector&); void escape$f(const ParamVector&); void NEL(); + void IND(); + void RI(); TerminalClient& m_client;