Skip to content

Commit 3a46e01

Browse files
committed
Material: Use "et" format unit to parse path
1 parent 66fb327 commit 3a46e01

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/Mod/Material/App/MaterialManagerPyImpl.cpp

+7-4
Original file line numberDiff line numberDiff line change
@@ -71,17 +71,20 @@ PyObject* MaterialManagerPy::getMaterial(PyObject* args)
7171

7272
PyObject* MaterialManagerPy::getMaterialByPath(PyObject* args)
7373
{
74-
char* path {};
74+
char* path;
7575
const char* lib = "";
76-
if (!PyArg_ParseTuple(args, "s|s", &path, &lib)) {
76+
if (!PyArg_ParseTuple(args, "et|s", "utf-8", &path, &lib)) {
7777
return nullptr;
7878
}
7979

80+
std::string utf8Path = std::string(path);
81+
PyMem_Free(path);
82+
8083
QString libPath(QString::fromStdString(lib));
8184
if (!libPath.isEmpty()) {
8285
try {
8386
auto material =
84-
getMaterialManagerPtr()->getMaterialByPath(QString::fromStdString(path), libPath);
87+
getMaterialManagerPtr()->getMaterialByPath(QString::fromUtf8(utf8Path.c_str()), libPath);
8588
return new MaterialPy(new Material(*material));
8689
}
8790
catch (const MaterialNotFound&) {
@@ -95,7 +98,7 @@ PyObject* MaterialManagerPy::getMaterialByPath(PyObject* args)
9598
}
9699

97100
try {
98-
auto material = getMaterialManagerPtr()->getMaterialByPath(QString::fromStdString(path));
101+
auto material = getMaterialManagerPtr()->getMaterialByPath(QString::fromUtf8(utf8Path.c_str()));
99102
return new MaterialPy(new Material(*material));
100103
}
101104
catch (const MaterialNotFound&) {

0 commit comments

Comments
 (0)