diff --git a/py/repl.c b/py/repl.c index 962a6f72e7..4406069967 100644 --- a/py/repl.c +++ b/py/repl.c @@ -59,7 +59,7 @@ bool mp_repl_continue_with_input(const char *input) { || str_startswith_word(input, "class") ; - // check for unmatched open bracket or quote + // check for unmatched open bracket, quote or escape quote #define Q_NONE (0) #define Q_1_SINGLE (1) #define Q_1_DOUBLE (2) @@ -85,6 +85,10 @@ bool mp_repl_continue_with_input(const char *input) { } else if (in_quote == Q_NONE || in_quote == Q_1_DOUBLE) { in_quote = Q_1_DOUBLE - in_quote; } + } else if (*i == '\\' && (i[1] == '\'' || i[1] == '"')) { + if (in_quote != Q_NONE) { + i++; + } } else if (in_quote == Q_NONE) { switch (*i) { case '(': n_paren += 1; break;