diff options
author | Benjamin Peterson <benjamin@python.org> | 2010-06-27 22:37:28 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2010-06-27 22:37:28 (GMT) |
commit | 556d8001dfaf5c7d6b45d5d1e6d09ed7a410c8b3 (patch) | |
tree | 6f723b3a2c99ce2362d697fa0ded5167a9d5e3cb /Python | |
parent | d7c3ed54ef8ee248958ab5626465c70b9953f9de (diff) | |
download | cpython-556d8001dfaf5c7d6b45d5d1e6d09ed7a410c8b3.zip cpython-556d8001dfaf5c7d6b45d5d1e6d09ed7a410c8b3.tar.gz cpython-556d8001dfaf5c7d6b45d5d1e6d09ed7a410c8b3.tar.bz2 |
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.
........
Diffstat (limited to 'Python')
-rw-r--r-- | Python/import.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Python/import.c b/Python/import.c index df00802..194e360 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; |