From 4b499dd3fb49181efbd99f87e45ff923146cba8a Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 13 Feb 2003 22:07:59 +0000 Subject: - Finally fixed the bug in compile() and exec where a string ending with an indented code block but no newline would raise SyntaxError. This would have been a four-line change in parsetok.c... Except codeop.py depends on this behavior, so a compilation flag had to be invented that causes the tokenizer to revert to the old behavior; this required extra changes to 2 .h files, 2 .c files, and 2 .py files. (Fixes SF bug #501622.) --- Python/bltinmodule.c | 4 +++- Python/pythonrun.c | 8 ++------ 2 files changed, 5 insertions(+), 7 deletions(-) (limited to 'Python') diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 338e38d70a..62aa5121f5 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -380,7 +380,9 @@ builtin_compile(PyObject *self, PyObject *args) return NULL; } - if (supplied_flags & ~(PyCF_MASK | PyCF_MASK_OBSOLETE)) { + if (supplied_flags & + ~(PyCF_MASK | PyCF_MASK_OBSOLETE | PyCF_DONT_IMPLY_DEDENT)) + { PyErr_SetString(PyExc_ValueError, "compile(): unrecognised flags"); return NULL; diff --git a/Python/pythonrun.c b/Python/pythonrun.c index fa72fe8813..1faab509ba 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -548,13 +548,9 @@ PyRun_InteractiveOne(FILE *fp, const char *filename) } /* compute parser flags based on compiler flags */ -#if 0 /* future keyword */ #define PARSER_FLAGS(flags) \ - (((flags) && (flags)->cf_flags & CO_GENERATOR_ALLOWED) ? \ - PyPARSE_YIELD_IS_KEYWORD : 0) -#else -#define PARSER_FLAGS(flags) 0 -#endif + (((flags) && (flags)->cf_flags & PyCF_DONT_IMPLY_DEDENT) ? \ + PyPARSE_DONT_IMPLY_DEDENT : 0) int PyRun_InteractiveOneFlags(FILE *fp, const char *filename, PyCompilerFlags *flags) -- cgit v1.2.1