From f19735b7024a4877a765bf532eccaada893bd6b3 Mon Sep 17 00:00:00 2001 From: marioalexis Date: Fri, 26 Jan 2024 18:50:52 -0300 Subject: [PATCH] Material: Use "et" format unit to parse path --- src/Mod/Material/App/MaterialManagerPyImpl.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Mod/Material/App/MaterialManagerPyImpl.cpp b/src/Mod/Material/App/MaterialManagerPyImpl.cpp index 954af4ee27..e6dd15e7ab 100644 --- a/src/Mod/Material/App/MaterialManagerPyImpl.cpp +++ b/src/Mod/Material/App/MaterialManagerPyImpl.cpp @@ -71,17 +71,20 @@ PyObject* MaterialManagerPy::getMaterial(PyObject* args) PyObject* MaterialManagerPy::getMaterialByPath(PyObject* args) { - char* path {}; + char* path; const char* lib = ""; - if (!PyArg_ParseTuple(args, "s|s", &path, &lib)) { + if (!PyArg_ParseTuple(args, "et|s", "utf-8", &path, &lib)) { return nullptr; } + std::string utf8Path = std::string(path); + PyMem_Free(path); + QString libPath(QString::fromStdString(lib)); if (!libPath.isEmpty()) { try { auto material = - getMaterialManagerPtr()->getMaterialByPath(QString::fromStdString(path), libPath); + getMaterialManagerPtr()->getMaterialByPath(QString::fromUtf8(utf8Path.c_str()), libPath); return new MaterialPy(new Material(*material)); } catch (const MaterialNotFound&) { @@ -95,7 +98,7 @@ PyObject* MaterialManagerPy::getMaterialByPath(PyObject* args) } try { - auto material = getMaterialManagerPtr()->getMaterialByPath(QString::fromStdString(path)); + auto material = getMaterialManagerPtr()->getMaterialByPath(QString::fromUtf8(utf8Path.c_str())); return new MaterialPy(new Material(*material)); } catch (const MaterialNotFound&) {