From c9add9a483166c4c2494ccd7d9402eb3d497aa4f Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Fri, 4 Feb 2005 18:38:43 +0000 Subject: [PATCH] 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. --- Python/future.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Python/future.c b/Python/future.c index 20d8dd29092..95d6a5c9a32 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; } -