From 556d8001dfaf5c7d6b45d5d1e6d09ed7a410c8b3 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Sun, 27 Jun 2010 22:37:28 +0000 Subject: Merged revisions 81380 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r81380 | brett.cannon | 2010-05-20 13:37:55 -0500 (Thu, 20 May 2010) | 8 lines Turned out that if you used explicit relative import syntax (e.g. from .os import sep) and it failed, import would still try the implicit relative import semantics of an absolute import (from os import sep). That's not right, so when level is negative, only do explicit relative import semantics. Fixes issue #7902. Thanks to Meador Inge for the patch. ........ --- Python/import.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Python/import.c') diff --git a/Python/import.c b/Python/import.c index df00802d1a..194e360562 100644 --- a/Python/import.c +++ b/Python/import.c @@ -2385,7 +2385,8 @@ import_module_level(char *name, PyObject *globals, PyObject *locals, if (parent == NULL) return NULL; - head = load_next(parent, Py_None, &name, buf, &buflen); + head = load_next(parent, level < 0 ? Py_None : parent, &name, buf, + &buflen); if (head == NULL) return NULL; -- cgit v1.2.1