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:
AnotherTest 2020-05-13 14:24:11 +04:30 committed by Andreas Kling
parent 98d25324fd
commit 6cd4d136a0

View file

@ -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;