From 73ed5e2e926d52ac26f58069a637e4bd449d8cd2 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Fri, 4 Dec 2015 16:42:12 +1100 Subject: [PATCH] python: make standard globals available to python scripts. Also make 'editor' and 'edlib' available to subsequent function calls Signed-off-by: NeilBrown --- lang-python.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lang-python.c b/lang-python.c index c1c3061b..27e6003c 100644 --- a/lang-python.c +++ b/lang-python.c @@ -70,7 +70,7 @@ DEF_CMD(python_load) { char *fname = ci->str; FILE *fp; - PyObject *globals; + PyObject *globals, *main_mod; struct editor *ed = pane2ed(ci->home); PyObject *Ed; @@ -80,15 +80,18 @@ DEF_CMD(python_load) if (!fp) return -1; + main_mod = PyImport_AddModule("__main__"); + if (main_mod == NULL) + return -1; + globals = PyModule_GetDict(main_mod); + Ed = Pane_Frompane(&ed->root); - globals = PyDict_New(); PyDict_SetItemString(globals, "editor", Ed); PyDict_SetItemString(globals, "pane", Pane_Frompane(ci->home)); PyDict_SetItemString(globals, "edlib", EdlibModule); PyRun_FileExFlags(fp, fname, Py_file_input, globals, globals, 0, NULL); PyErr_Print(); Py_DECREF(Ed); - Py_DECREF(globals); fclose(fp); return 1; } -- 2.39.5