diff options
author | Christian Stenger <christian.stenger@qt.io> | 2021-06-03 14:57:51 +0200 |
---|---|---|
committer | Christian Stenger <christian.stenger@qt.io> | 2021-06-03 13:38:44 +0000 |
commit | 2192415483e2f2f538781858259d20d417463889 (patch) | |
tree | d7db5012093b9379f13e305d59501f29d533447d /src/plugins/cppcheck | |
parent | 068873c9d55bde45ac4973ffde1e3d8b975e6aff (diff) |
CppCheck: Fix getting output from QtcProcess
Change-Id: Ic11d1f31afe7412ec606bdbd751deb4088d5cd3f
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/cppcheck')
-rw-r--r-- | src/plugins/cppcheck/cppcheckrunner.cpp | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/plugins/cppcheck/cppcheckrunner.cpp b/src/plugins/cppcheck/cppcheckrunner.cpp index 51ecc0bd71..458cccd3b8 100644 --- a/src/plugins/cppcheck/cppcheckrunner.cpp +++ b/src/plugins/cppcheck/cppcheckrunner.cpp @@ -163,14 +163,14 @@ void CppcheckRunner::readOutput() if (!m_isRunning) // workaround for QTBUG-30929 handleStarted(); - m_process->setReadChannel(QProcess::StandardOutput); - - while (!m_process->atEnd() && m_process->canReadLine()) { - QString line = QString::fromUtf8(m_process->readLine()); - if (line.endsWith('\n')) - line.chop(1); - m_tool.parseOutputLine(line); - } + const QByteArray output = m_process->readAllStandardOutput(); + int start = 0; + int end; + do { + end = output.indexOf('\n', start); + m_tool.parseOutputLine(QString::fromUtf8(output.mid(start, end - start))); + start = end + 1; + } while (end >= 0); } void CppcheckRunner::readError() @@ -178,14 +178,14 @@ void CppcheckRunner::readError() if (!m_isRunning) // workaround for QTBUG-30929 handleStarted(); - m_process->setReadChannel(QProcess::StandardError); - - while (!m_process->atEnd() && m_process->canReadLine()) { - QString line = QString::fromUtf8(m_process->readLine()); - if (line.endsWith('\n')) - line.chop(1); - m_tool.parseErrorLine(line); - } + const QByteArray output = m_process->readAllStandardError(); + int start = 0; + int end; + do { + end = output.indexOf('\n', start); + m_tool.parseErrorLine(QString::fromUtf8(output.mid(start, end - start))); + start = end + 1; + } while (end >= 0); } void CppcheckRunner::handleStarted() |