summaryrefslogtreecommitdiff
path: root/Python/import.c
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2010-05-20 18:41:08 +0000
committerBrett Cannon <bcannon@gmail.com>2010-05-20 18:41:08 +0000
commit7d006260a55944cef2a7ea9ba40be4de36c394f7 (patch)
treed941f505b15fb88aad49974c82b4923b0b945a30 /Python/import.c
parent51f93d99aa4b6a04eb273c22b8c78eccf5bf2e3e (diff)
downloadcpython-git-7d006260a55944cef2a7ea9ba40be4de36c394f7.tar.gz
Merged revisions 81380 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r81380 | brett.cannon | 2010-05-20 11:37:55 -0700 (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. ........
Diffstat (limited to 'Python/import.c')
-rw-r--r--Python/import.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Python/import.c b/Python/import.c
index da660cff7a..07f572000f 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -2130,7 +2130,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;