mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
Python: Don't complain if hooks.py does not exist.
Nor if -no-home prevents it from being found. This patch is from bug 880, comment 5, attachment 305. http://bugzilla.elinks.cz/show_bug.cgi?id=880#c5
This commit is contained in:
parent
37c9bf3f75
commit
f7be8f7dfc
@ -121,6 +121,41 @@ end:
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Determine whether or not a user-supplied hooks module exists. */
|
||||||
|
|
||||||
|
static int
|
||||||
|
hooks_module_exists(void)
|
||||||
|
{
|
||||||
|
PyObject *imp_module = NULL, *result = NULL;
|
||||||
|
int found_hooks = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Use the find_module() function in Python's imp module to look for
|
||||||
|
* the hooks module in Python's search path. An ImportError exception
|
||||||
|
* indicates that no such module was found; any other exception will
|
||||||
|
* be reported as an error.
|
||||||
|
*/
|
||||||
|
imp_module = PyImport_ImportModule("imp");
|
||||||
|
if (!imp_module) goto python_error;
|
||||||
|
|
||||||
|
result = PyObject_CallMethod(imp_module, "find_module", "s", "hooks");
|
||||||
|
if (result) {
|
||||||
|
found_hooks = 1;
|
||||||
|
goto end;
|
||||||
|
} else if (PyErr_ExceptionMatches(PyExc_ImportError)) {
|
||||||
|
PyErr_Clear();
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
python_error:
|
||||||
|
alert_python_error();
|
||||||
|
|
||||||
|
end:
|
||||||
|
Py_XDECREF(imp_module);
|
||||||
|
Py_XDECREF(result);
|
||||||
|
return found_hooks;
|
||||||
|
}
|
||||||
|
|
||||||
/* Module-level documentation for the Python interpreter's elinks module. */
|
/* Module-level documentation for the Python interpreter's elinks module. */
|
||||||
|
|
||||||
static char module_doc[] =
|
static char module_doc[] =
|
||||||
@ -169,6 +204,8 @@ init_python(struct module *module)
|
|||||||
|
|
||||||
Py_Initialize();
|
Py_Initialize();
|
||||||
|
|
||||||
|
if (!hooks_module_exists()) return;
|
||||||
|
|
||||||
elinks_module = Py_InitModule3("elinks", NULL, module_doc);
|
elinks_module = Py_InitModule3("elinks", NULL, module_doc);
|
||||||
if (!elinks_module) goto python_error;
|
if (!elinks_module) goto python_error;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user