Fix issue with binding of the interpreter lifecycle functions

* Py_SetProgramName expect a *wchar_t
* Py_SetPythonhome expect a *wchar_t
* Py_Main except decoded arguments as  *wchar_t
* Expose function Py_DecodeLocale

Part of T518-013

Change-Id: I3ad1df239203ecf70e5de7dfe78aed202cd21666
This commit is contained in:
Nicolas Roche
2020-05-22 15:36:08 +00:00
parent d658e6f9f4
commit e259adfecb
10 changed files with 357 additions and 70 deletions

View File

@@ -674,13 +674,22 @@ extern int gnat_argc;
extern char **gnat_argv;
int
ada_py_main ()
__gnatcoll_py_main ()
{
#if PY_MAJOR_VERSION >= 3
return Py_Main (gnat_argc, (wchar_t**) gnat_argv);
#else
return Py_Main (gnat_argc, (char**) gnat_argv);
#endif
wchar_t *w_gnat_argv[gnat_argc];
int result;
for (int i=0; i<gnat_argc; i++) {
w_gnat_argv[i] = Py_DecodeLocale(gnat_argv[i], NULL);
}
result = Py_Main (gnat_argc, w_gnat_argv);
for (int i=0; i<gnat_argc; i++) {
PyMem_RawFree((void *) w_gnat_argv[i]);
}
return result;
}
PyObject*