From bfb272b9e09394f7594b88018d17d95eea3e18d0 Mon Sep 17 00:00:00 2001 From: Alex March Date: Thu, 17 Sep 2015 18:02:53 +0100 Subject: [PATCH] py/repl: Treat escaped quotes correctly in REPL continuation. Escaped quotes are now recognised correctly in REPL when used inside normal quotes. Fixes: #1419 --- py/repl.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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;