From f8a47de5ec444c452093371e3db16857eb39a490 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sun, 16 Mar 2003 21:11:39 +0000 Subject: merge the C branch into HEAD --- openbox/python.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 openbox/python.c (limited to 'openbox/python.c') diff --git a/openbox/python.c b/openbox/python.c new file mode 100644 index 00000000..52f19f3f --- /dev/null +++ b/openbox/python.c @@ -0,0 +1,60 @@ +#include +#include + +static PyMethodDef ObMethods[] = { + { NULL, NULL, 0, NULL } +}; + +static PyMethodDef InputMethods[] = { + { NULL, NULL, 0, NULL } +}; + +void python_startup() +{ + PyObject *sys, *sysdict, *syspath, *path1, *path2; + char *homescriptdir; + + Py_Initialize(); + + /* fix up the system path */ + + sys = PyImport_ImportModule("sys"); /* new */ + sysdict = PyModule_GetDict(sys); /* borrowed */ + syspath = PyDict_GetItemString(sysdict, "path"); /* borrowed */ + + path1 = PyString_FromString(SCRIPTDIR); /* new */ + PyList_Insert(syspath, 0, path1); + Py_DECREF(path1); + + homescriptdir = g_build_filename(g_get_home_dir(), ".openbox", NULL); + path2 = PyString_FromString(homescriptdir); /* new */ + PyList_Insert(syspath, 0, path2); + Py_DECREF(path2); + g_free(homescriptdir); + + Py_DECREF(sys); + + /* create the 'ob' module */ + Py_InitModule("ob", ObMethods); + + /* create the 'input' module */ + Py_InitModule("input", InputMethods); +} + +void python_shutdown() +{ + Py_Finalize(); +} + +gboolean python_import(char *module) +{ + PyObject *mod; + + mod = PyImport_ImportModule(module); /* new */ + if (mod == NULL) { + PyErr_Print(); + return FALSE; + } + Py_DECREF(mod); + return TRUE; +} -- cgit v1.2.3