py/repl: Fix handling of unmatched brackets and unfinished quotes.
Before this patch: >>> print(') ... ') Traceback (most recent call last): File "<stdin>", line 1 SyntaxError: invalid syntax After this patch: >>> print(') Traceback (most recent call last): File "<stdin>", line 1 SyntaxError: invalid syntax This matches CPython and prevents getting stuck in REPL continuation when a 1-quote is unmatched.
This commit is contained in:
parent
869024dd6e
commit
3e6ab82179
@ -106,8 +106,13 @@ bool mp_repl_continue_with_input(const char *input) {
|
||||
}
|
||||
}
|
||||
|
||||
// continue if unmatched brackets or quotes
|
||||
if (n_paren > 0 || n_brack > 0 || n_brace > 0 || in_quote == Q_3_SINGLE || in_quote == Q_3_DOUBLE) {
|
||||
// continue if unmatched 3-quotes
|
||||
if (in_quote == Q_3_SINGLE || in_quote == Q_3_DOUBLE) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// continue if unmatched brackets, but only if not in a 1-quote
|
||||
if ((n_paren > 0 || n_brack > 0 || n_brace > 0) && in_quote == Q_NONE) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user