CppCheck: Fix getting output from QtcProcess

Change-Id: Ic11d1f31afe7412ec606bdbd751deb4088d5cd3f
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Stenger
2021-06-03 14:57:51 +02:00
parent 068873c9d5
commit 2192415483
3 changed files with 16 additions and 22 deletions

View File

@@ -745,11 +745,6 @@ bool QtcProcess::canReadLine() const
return d->m_process->canReadLine();
}
bool QtcProcess::atEnd() const
{
return d->m_process->atEnd();
}
QString QtcProcess::locateBinary(const QString &binary)
{
const QByteArray path = qgetenv("PATH");

View File

@@ -173,7 +173,6 @@ public:
void close();
void setReadChannel(QProcess::ProcessChannel channel);
bool canReadLine() const;
bool atEnd() const;
QIODevice *ioDevice(); // FIXME: Remove.

View File

@@ -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()