1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 08:47:34 +00:00

LibVT: Support IND and RI (cursor down/up basically)

This commit is contained in:
Andreas Kling 2020-01-25 20:17:50 +01:00
parent 0d191aae13
commit dca92af431
2 changed files with 23 additions and 0 deletions

View file

@ -773,6 +773,18 @@ void Terminal::NEL()
newline(); 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) void Terminal::on_char(u8 ch)
{ {
#ifdef TERMINAL_DEBUG #ifdef TERMINAL_DEBUG
@ -789,11 +801,20 @@ void Terminal::on_char(u8 ch)
m_escape_state = ExpectXtermParameter1; m_escape_state = ExpectXtermParameter1;
} else if (ch == '#') { } else if (ch == '#') {
m_escape_state = ExpectHashtagDigit; 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') { } else if (ch == 'E') {
NEL(); NEL();
m_escape_state = Normal; m_escape_state = Normal;
return; return;
} else { } else {
dbg() << "Unexpected character in GotEscape '" << (char)ch << "'";
m_escape_state = Normal; m_escape_state = Normal;
} }
return; return;

View file

@ -173,6 +173,8 @@ private:
void escape$c(const ParamVector&); void escape$c(const ParamVector&);
void escape$f(const ParamVector&); void escape$f(const ParamVector&);
void NEL(); void NEL();
void IND();
void RI();
TerminalClient& m_client; TerminalClient& m_client;