Salome HOME
Copyright update 2022
[modules/paravis.git] / test / standalone / simple / Container_init_python.cxx
index d952d2eecdffec107899ffe324ea8bb6a0f939c1..5a549c54ebf67da6bf56e3fac16cb8702d765739 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -50,10 +50,15 @@ void KERNEL_PYTHON::init_python(int argc, char **argv)
   // set stdout to line buffering (aka C++ std::cout)
   setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ);
   char* salome_python=getenv("SALOME_PYTHON");
+  //size_t size_salome_python = sizeof(salome_python) / sizeof(salome_python[0]); // unused
   if(salome_python != 0)
-    Py_SetProgramName(salome_python);
+         Py_SetProgramName(Py_DecodeLocale(salome_python, NULL));
+
   Py_Initialize(); // Initialize the interpreter
-  PySys_SetArgv(argc, argv);
+  wchar_t **w_argv = new wchar_t*[argc];
+  for (int i = 0; i < argc; i++)
+         w_argv[i] = Py_DecodeLocale(argv[i], NULL);
+  PySys_SetArgv(argc, w_argv);
   PyRun_SimpleString("import threading\n");
   PyEval_InitThreads(); // Create (and acquire) the interpreter lock
   PyThreadState *pts = PyGILState_GetThisThreadState();