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 --- c/python.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 c/python.c (limited to 'c/python.c') diff --git a/c/python.c b/c/python.c new file mode 100644 index 00000000..6622ed8a --- /dev/null +++ b/c/python.c @@ -0,0 +1,55 @@ +#include +#include + +#ifdef HAVE_STDLIB_H +# include +#endif + +void python_startup() +{ + PyObject *sys, *sysdict, *syspath, *path1, *path2; + char *home, *homescriptdir; + + Py_Initialize(); + + /* fix up the system path */ + + sys = PyImport_ImportModule((char*)"sys"); /* new */ + sysdict = PyModule_GetDict(sys); /* borrowed */ + syspath = PyDict_GetItemString(sysdict, (char*)"path"); /* borrowed */ + + path1 = PyString_FromString(SCRIPTDIR); /* new */ + PyList_Insert(syspath, 0, path1); + Py_DECREF(path1); + + home = getenv("HOME"); + if (home != NULL) { + homescriptdir = g_strdup_printf("%s/.openbox", home); + path2 = PyString_FromString(homescriptdir); /* new */ + g_free(homescriptdir); + + PyList_Insert(syspath, 0, path2); + Py_DECREF(path2); + } else + g_warning("Failed to read the $HOME environment variable"); + + Py_DECREF(sys); +} + +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