]> granicus.if.org Git - python/commitdiff
This modified version of a patch by Thomas Heller allows __import__
authorMarc-André Lemburg <mal@egenix.com>
Fri, 9 Feb 2001 19:40:15 +0000 (19:40 +0000)
committerMarc-André Lemburg <mal@egenix.com>
Fri, 9 Feb 2001 19:40:15 +0000 (19:40 +0000)
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.

Python/import.c

index 391658e46cb8f43c3e822241372eb3d5a90df838..71af3bd3f2172c9966e92854cdba161582346e24 100644 (file)
@@ -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;
                }