]> git.neil.brown.name Git - edlib.git/commitdiff
lang-python: update initialisation.
authorNeilBrown <neil@brown.name>
Mon, 24 Apr 2023 23:44:59 +0000 (09:44 +1000)
committerNeilBrown <neil@brown.name>
Mon, 24 Apr 2023 23:44:59 +0000 (09:44 +1000)
Py_SetProgramName and PySys_SetArgv are deprecated, so use
PyConfig to avoid warnings.
Also enable "isolated" initialisation to see if it is a bad idea or not.

Signed-off-by: NeilBrown <neil@brown.name>
lang-python.c

index 5d30f4e3e9152ee0c7d66ded8c9613d152c31d58..57d1e84087150b03144cb5673163796387cf5d90 100644 (file)
@@ -2924,7 +2924,8 @@ static struct PyModuleDef edlib_mod = {
 void edlib_init(struct pane *ed safe)
 {
        PyObject *m;
-       wchar_t *argv[1]= { NULL };
+       PyConfig config;
+       char *argv[2]= { "edlib", NULL };
 
        if (edlib_module_path)
                module_dir = strdup(edlib_module_path);
@@ -2934,9 +2935,11 @@ void edlib_init(struct pane *ed safe)
        /* This cast is for sparse, which doesn't seem to cope with L".."
         * FIXME
         */
-       Py_SetProgramName((wchar_t*)L"edlib");
-       Py_Initialize();
-       PySys_SetArgv(0, argv);
+       PyConfig_InitPythonConfig(&config);
+       config.isolated = 1;
+       PyConfig_SetBytesArgv(&config, 0, argv);
+       Py_InitializeFromConfig(&config);
+       PyConfig_Clear(&config);
 
        PaneType.tp_new = PyType_GenericNew;
        PaneIterType.tp_new = PyType_GenericNew;