diff --git a/Include/errcode.h b/Include/errcode.h index 985911eea4f..becec80c8ac 100644 --- a/Include/errcode.h +++ b/Include/errcode.h @@ -28,6 +28,7 @@ extern "C" { #define E_DECODE 22 /* Error in decoding into Unicode */ #define E_EOFS 23 /* EOF in triple-quoted string */ #define E_EOLS 24 /* EOL in single-quoted string */ +#define E_LINECONT 25 /* Unexpected characters after a line continuation */ #ifdef __cplusplus } diff --git a/Misc/NEWS b/Misc/NEWS index d0a8118caed..baf344544c9 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,9 @@ What's New in Python 2.5 alpha 1? Core and builtins ----------------- +- Patch #802188: Report characters after line continuation character + ('\') with a specific error message. + - Bug #723201: Raise a TypeError for passing bad objects to 'L' format. - Bug #1124295: the __name__ attribute of file objects was diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index 8fc2c267dea..1884d011e89 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -1413,7 +1413,7 @@ tok_get(register struct tok_state *tok, char **p_start, char **p_end) if (c == '\\') { c = tok_nextc(tok); if (c != '\n') { - tok->done = E_TOKEN; + tok->done = E_LINECONT; tok->cur = tok->inp; return ERRORTOKEN; } diff --git a/Python/pythonrun.c b/Python/pythonrun.c index e9f4765a1e1..6d691655cca 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -1484,6 +1484,9 @@ err_input(perrdetail *err) msg = "unknown decode error"; break; } + case E_LINECONT: + msg = "unexpected character after line continuation character"; + break; default: fprintf(stderr, "error=%d\n", err->error); msg = "unknown parsing error";