mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-23 01:41:59 -05:00
Shell: Break out of continuation when ^C is pressed
This fixes the little issue with Shell not allowing cancellation of commands once they were in continuation mode ``` $ ls ' $ # No matter what we do here, we cannot escape 'ls' ```
This commit is contained in:
parent
98d25324fd
commit
6cd4d136a0
1 changed files with 17 additions and 0 deletions
|
@ -1540,8 +1540,25 @@ int main(int argc, char** argv)
|
|||
|
||||
StringBuilder complete_line_builder;
|
||||
|
||||
bool should_break_current_command { false };
|
||||
|
||||
editor.on_interrupt_handled = [&] {
|
||||
if (s_should_continue != ExitCodeOrContinuationRequest::ContinuationRequest::Nothing) {
|
||||
should_break_current_command = true;
|
||||
editor.finish();
|
||||
}
|
||||
};
|
||||
|
||||
for (;;) {
|
||||
auto line = editor.get_line(prompt());
|
||||
|
||||
if (should_break_current_command) {
|
||||
complete_line_builder.clear();
|
||||
s_should_continue = ExitCodeOrContinuationRequest::ContinuationRequest::Nothing;
|
||||
should_break_current_command = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (line.is_empty())
|
||||
continue;
|
||||
|
||||
|
|
Loading…
Reference in a new issue