Basic ^C interrupt implementation.

For testing, I made cat put itself into a new process group.
This should eventually be done by sh between fork() and exec().
This commit is contained in:
Andreas Kling 2018-11-02 14:06:48 +01:00
commit 10b666f69a
Notes: sideshowbarker 2024-07-19 18:34:25 +09:00
11 changed files with 94 additions and 38 deletions

View file

@ -384,9 +384,15 @@ void VirtualConsole::on_char(byte ch, bool shouldEmit)
set_cursor(m_cursor_row, m_cursor_column);
}
void VirtualConsole::onKeyPress(byte ch)
void VirtualConsole::onKeyPress(Keyboard::Key key)
{
emit(ch);
if (key.ctrl() && key.character == 'C') {
interrupt();
return;
}
if (key.ctrl())
emit('^');
emit(key.character);
}
void VirtualConsole::onConsoleReceive(byte ch)