summaryrefslogtreecommitdiffstats
path: root/Python/future.c
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2005-02-04 18:38:43 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2005-02-04 18:38:43 (GMT)
commitc9add9a483166c4c2494ccd7d9402eb3d497aa4f (patch)
tree595340aa649cb34d47b29bfe3e47ec28b22d3ac7 /Python/future.c
parent1f1d252f516968df8310835c388ad7323c513134 (diff)
downloadcpython-c9add9a483166c4c2494ccd7d9402eb3d497aa4f.zip
cpython-c9add9a483166c4c2494ccd7d9402eb3d497aa4f.tar.gz
cpython-c9add9a483166c4c2494ccd7d9402eb3d497aa4f.tar.bz2
Fix bug that allowed future statements virtually anywhere in a module.
If we exit via the break here, we need to set ff_last_lineno or FUTURE_POSSIBLE() will remain true. The bug affected statements containing a variety of expressions, but not all expressions. It has been present since Python 2.2.
Diffstat (limited to 'Python/future.c')
-rw-r--r--Python/future.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/Python/future.c b/Python/future.c
index 20d8dd2..95d6a5c 100644
--- a/Python/future.c
+++ b/Python/future.c
@@ -93,7 +93,6 @@ future_parse(PyFutureFeatures *ff, node *n, const char *filename)
{
int i, r;
loop:
-
switch (TYPE(n)) {
case single_input:
@@ -222,6 +221,7 @@ future_parse(PyFutureFeatures *ff, node *n, const char *filename)
n = CHILD(n, 0);
goto loop;
}
+ ff->ff_last_lineno = n->n_lineno;
break;
case atom:
@@ -258,4 +258,3 @@ PyNode_Future(node *n, const char *filename)
}
return ff;
}
-