From: Marc-André Lemburg Date: Fri, 9 Feb 2001 19:40:15 +0000 (+0000) Subject: This modified version of a patch by Thomas Heller allows __import__ X-Git-Tag: v2.1b1~433 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3c61c3525f4cf23acae95c5229abd10fe0998d28;p=thirdparty%2FPython%2Fcpython.git This modified version of a patch by Thomas Heller allows __import__ hooks to take over the Python import machinery at a very early stage in the Python startup phase. If there are still places in the Python interpreter which need to bypass the __import__ hook, these places must now use PyImport_ImportModuleEx() instead. So far no other places than in the import mechanism itself have been identified. --- diff --git a/Python/import.c b/Python/import.c index 391658e46cb8..71af3bd3f217 100644 --- a/Python/import.c +++ b/Python/import.c @@ -1458,13 +1458,13 @@ PyImport_ImportFrozenModule(char *name) PyObject * PyImport_ImportModule(char *name) { - static PyObject *fromlist = NULL; - if (fromlist == NULL && strchr(name, '.') != NULL) { - fromlist = Py_BuildValue("(s)", "*"); - if (fromlist == NULL) - return NULL; - } - return PyImport_ImportModuleEx(name, NULL, NULL, fromlist); + PyObject *pname; + PyObject *result; + + pname = PyString_FromString(name); + result = PyImport_Import(pname); + Py_DECREF(pname); + return result; } /* Forward declarations for helper routines */ @@ -1906,7 +1906,8 @@ PyImport_Import(PyObject *module_name) if (standard_builtins == NULL) { standard_builtins = - PyImport_ImportModule("__builtin__"); + PyImport_ImportModuleEx("__builtin__", + NULL, NULL, NULL); if (standard_builtins == NULL) return NULL; }