Support multi-line input in the python shell

This commit is contained in:
baldurk
2017-11-20 15:11:50 +00:00
parent 31b7662db1
commit 657c343ac8
6 changed files with 48 additions and 10 deletions
@@ -485,7 +485,7 @@ QString PythonContext::versionString()
return QFormatStr("%1.%2.%3").arg(PY_MAJOR_VERSION).arg(PY_MINOR_VERSION).arg(PY_MICRO_VERSION);
}
void PythonContext::executeString(const QString &filename, const QString &source, bool interactive)
void PythonContext::executeString(const QString &filename, const QString &source)
{
if(!initialised())
{
@@ -501,8 +501,9 @@ void PythonContext::executeString(const QString &filename, const QString &source
PyGILState_STATE gil = PyGILState_Ensure();
PyObject *compiled = Py_CompileString(source.toUtf8().data(), filename.toUtf8().data(),
interactive ? Py_single_input : Py_file_input);
PyObject *compiled =
Py_CompileString(source.toUtf8().data(), filename.toUtf8().data(),
source.count(QLatin1Char('\n')) == 0 ? Py_single_input : Py_file_input);
PyObject *ret = NULL;
@@ -555,9 +556,9 @@ void PythonContext::executeString(const QString &filename, const QString &source
emit exception(typeStr, valueStr, finalLine, frames);
}
void PythonContext::executeString(const QString &source, bool interactive)
void PythonContext::executeString(const QString &source)
{
executeString(lit("<interactive.py>"), source, interactive);
executeString(lit("<interactive.py>"), source);
}
void PythonContext::executeFile(const QString &filename)