Skip to content

Commit

Permalink
Gui: fix Gui.addCommand() in Python3
Browse files Browse the repository at this point in the history
  • Loading branch information
realthunder committed Dec 9, 2019
1 parent 13fd54a commit 8516c6f
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/Gui/ApplicationPy.cpp
Expand Up @@ -1144,12 +1144,20 @@ PyObject* Application::sAddCommand(PyObject * /*self*/, PyObject *args)
return 0;
}
Py::Callable inspect(mod.getAttr("stack"));
Py::Tuple args;
Py::List list(inspect.apply(args));
args = list.getItem(0);
Py::List list(inspect.apply());

std::string file;
// usually this is the file name of the calling script
std::string file = args.getItem(1).as_string();
#if (PY_MAJOR_VERSION > 3 || (PY_MAJOR_VERSION==3 && PY_MINOR_VERSION>=5))
Py::Object info = list.getItem(0);
PyObject *pyfile = PyStructSequence_GET_ITEM(*info,1);
if(!pyfile)
throw Py::Exception();
file = Py::Object(pyfile).as_string();
#else
Py::Tuple info = list.getItem(0);
file = info.getItem(1).as_string();
#endif
Base::FileInfo fi(file);
// convert backslashes to slashes
file = fi.filePath();
Expand Down

0 comments on commit 8516c6f

Please sign in to comment.