summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2003-02-13 22:07:59 (GMT)
committerGuido van Rossum <guido@python.org>2003-02-13 22:07:59 (GMT)
commit4b499dd3fb49181efbd99f87e45ff923146cba8a (patch)
tree2e70f5af9af45cf05d7cfa7eb8306b6dde1d001c /Python
parent5aa3da649554f155dd0c82bfdcc92b1577c6935d (diff)
downloadcpython-4b499dd3fb49181efbd99f87e45ff923146cba8a.zip
cpython-4b499dd3fb49181efbd99f87e45ff923146cba8a.tar.gz
cpython-4b499dd3fb49181efbd99f87e45ff923146cba8a.tar.bz2
- 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.)
Diffstat (limited to 'Python')
-rw-r--r--Python/bltinmodule.c4
-rw-r--r--Python/pythonrun.c8
2 files changed, 5 insertions, 7 deletions
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 338e38d..62aa512 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 fa72fe8..1faab50 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)