Shell: Allow non-exhaustive 'case' statements in POSIX

This commit is contained in:
Ali Mohammad Pur 2023-04-19 12:16:23 +03:30 committed by Ali Mohammad Pur
parent ef551a045d
commit 8a042cd9cb
2 changed files with 5 additions and 1 deletions

View file

@ -2363,7 +2363,9 @@ ErrorOr<RefPtr<Value>> MatchExpr::run(RefPtr<Shell> shell)
return move(result).get<RefPtr<Value>>();
}
shell->raise_error(Shell::ShellError::EvaluatedSyntaxError, "Non-exhaustive match rules!", position());
// Non-exhaustive 'case' statements are valid in POSIX.
if (!shell || !shell->posix_mode())
shell->raise_error(Shell::ShellError::EvaluatedSyntaxError, "Non-exhaustive match rules!", position());
return make_ref_counted<AST::ListValue>({});
}

View file

@ -308,6 +308,8 @@ public:
void notify_child_event();
bool posix_mode() const { return m_in_posix_mode; }
struct termios termios;
struct termios default_termios;
bool was_interrupted { false };