X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSUITApp%2FSUITApp_init_python.cxx;h=3724dd562f3ecacc73f235f0909820712faed73c;hb=refs%2Fheads%2Fngr%2Fpython3_dev_pv5.4;hp=372d3e6ed69c3d038f61e6c2e8e10ed71f7f8b01;hpb=91cc8846bfa36302f7ade6cb8aa380f03e90423e;p=modules%2Fgui.git diff --git a/src/SUITApp/SUITApp_init_python.cxx b/src/SUITApp/SUITApp_init_python.cxx index 372d3e6ed..3724dd562 100644 --- a/src/SUITApp/SUITApp_init_python.cxx +++ b/src/SUITApp/SUITApp_init_python.cxx @@ -17,11 +17,26 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // - +// Author : Roman NIKOLAEV, Open CASCADE S.A.S. (roman.nikolaev@opencascade.com) +// Date : 22/06/2007 +// #include "SUITApp_init_python.hxx" #include -bool SUIT_PYTHON::initialized = false; +#if PY_VERSION_HEX < 0x03050000 +static char* +Py_EncodeLocale(const wchar_t *arg, size_t *size) +{ + return _Py_wchar2char(arg, size); +} +static wchar_t* +Py_DecodeLocale(const char *arg, size_t *size) +{ + return _Py_char2wchar(arg, size); +} +#endif + +bool SUIT_PYTHON::initialized = false; void SUIT_PYTHON::init_python(int argc, char **argv) { @@ -29,9 +44,17 @@ void SUIT_PYTHON::init_python(int argc, char **argv) { return; } - Py_SetProgramName(argv[0]); + + wchar_t **changed_argv = new wchar_t*[argc]; // Setting arguments + for (int i = 0; i < argc; i++) + { + changed_argv[i] = Py_DecodeLocale(argv[i], NULL); + } + + Py_SetProgramName(changed_argv[0]); Py_Initialize(); // Initialize the interpreter - PySys_SetArgv(argc, argv); + + PySys_SetArgv(argc, changed_argv); PyRun_SimpleString("import threading\n"); // VSR (22/09/2016): This is a workaround to prevent invoking qFatal() from PyQt5 // causing application aborting