aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cppcheck
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2021-06-03 14:57:51 +0200
committerChristian Stenger <christian.stenger@qt.io>2021-06-03 13:38:44 +0000
commit2192415483e2f2f538781858259d20d417463889 (patch)
treed7db5012093b9379f13e305d59501f29d533447d /src/plugins/cppcheck
parent068873c9d55bde45ac4973ffde1e3d8b975e6aff (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.cpp32
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()