Utils: Move SynchronousProcess::normalizeNewlines to QtcProcess

Change-Id: I5ba8ba1061b04b032aafd08382d34ccb62272829
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2021-04-30 17:21:43 +02:00
parent 196b7b0f24
commit dec9169efe
8 changed files with 23 additions and 24 deletions

View File

@@ -29,7 +29,7 @@
#include "ansiescapecodehandler.h"
#include "fileinprojectfinder.h"
#include "qtcassert.h"
#include "synchronousprocess.h"
#include "qtcprocess.h"
#include "theme/theme.h"
#include <QDir>
@@ -631,7 +631,7 @@ void OutputFormatter::appendMessage(const QString &text, OutputFormat format)
d->prependCarriageReturn = false;
out.prepend('\r');
}
out = SynchronousProcess::normalizeNewlines(out);
out = QtcProcess::normalizeNewlines(out);
if (out.endsWith('\r')) {
d->prependCarriageReturn = true;
out.chop(1);

View File

@@ -1627,6 +1627,17 @@ bool QtcProcess::ArgIterator::next()
}
}
QString QtcProcess::normalizeNewlines(const QString &text)
{
QString res = text;
const auto newEnd = std::unique(res.begin(), res.end(), [](const QChar &c1, const QChar &c2) {
return c1 == '\r' && c2 == '\r'; // QTCREATORBUG-24556
});
res.chop(std::distance(newEnd, res.end()));
res.replace("\r\n", "\n");
return res;
}
void QtcProcess::ArgIterator::deleteArg()
{
if (!m_prev)

View File

@@ -155,6 +155,8 @@ public:
bool readDataFromProcess(int timeoutS, QByteArray *stdOut, QByteArray *stdErr,
bool showTimeOutMessageBox);
static QString normalizeNewlines(const QString &text);
private:
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
void setupChildProcess() override;

View File

@@ -186,12 +186,12 @@ QString SynchronousProcessResponse::allOutput() const
QString SynchronousProcessResponse::stdOut() const
{
return SynchronousProcess::normalizeNewlines(codec->toUnicode(rawStdOut));
return QtcProcess::normalizeNewlines(codec->toUnicode(rawStdOut));
}
QString SynchronousProcessResponse::stdErr() const
{
return SynchronousProcess::normalizeNewlines(codec->toUnicode(rawStdErr));
return QtcProcess::normalizeNewlines(codec->toUnicode(rawStdErr));
}
QTCREATOR_UTILS_EXPORT QDebug operator<<(QDebug str, const SynchronousProcessResponse& r)
@@ -257,7 +257,7 @@ QString ChannelBuffer::linesRead()
return QString();
// Get completed lines and remove them from the incompleteLinesBuffer:
const QString lines = SynchronousProcess::normalizeNewlines(incompleteLineBuffer.left(lastLineIndex + 1));
const QString lines = QtcProcess::normalizeNewlines(incompleteLineBuffer.left(lastLineIndex + 1));
incompleteLineBuffer = incompleteLineBuffer.mid(lastLineIndex + 1);
return lines;
@@ -789,17 +789,6 @@ QString SynchronousProcess::locateBinary(const QString &path, const QString &bin
return QString();
}
QString SynchronousProcess::normalizeNewlines(const QString &text)
{
QString res = text;
const auto newEnd = std::unique(res.begin(), res.end(), [](const QChar &c1, const QChar &c2) {
return c1 == '\r' && c2 == '\r'; // QTCREATORBUG-24556
});
res.chop(std::distance(newEnd, res.end()));
res.replace("\r\n", "\n");
return res;
}
QString SynchronousProcess::locateBinary(const QString &binary)
{
const QByteArray path = qgetenv("PATH");

View File

@@ -153,8 +153,6 @@ public:
static QString locateBinary(const QString &binary);
static QString locateBinary(const QString &path, const QString &binary);
static QString normalizeNewlines(const QString &text);
signals:
void stdOutBuffered(const QString &lines, bool firstTime);
void stdErrBuffered(const QString &lines, bool firstTime);

View File

@@ -155,7 +155,7 @@ void ClangToolRunner::onProcessFinished(int exitCode, QProcess::ExitStatus exitS
{
if (exitStatus == QProcess::NormalExit) {
if (exitCode == 0) {
qCDebug(LOG).noquote() << "Output:\n" << Utils::SynchronousProcess::normalizeNewlines(
qCDebug(LOG).noquote() << "Output:\n" << QtcProcess::normalizeNewlines(
QString::fromLocal8Bit(m_processOutput));
emit finishedWithSuccess(m_fileToAnalyze);
} else {
@@ -187,7 +187,7 @@ QString ClangToolRunner::commandlineAndOutput() const
"Output:\n%3")
.arg(m_commandLine.toUserOutput(),
QString::number(m_process->error()),
Utils::SynchronousProcess::normalizeNewlines(QString::fromLocal8Bit(m_processOutput)));
QtcProcess::normalizeNewlines(QString::fromLocal8Bit(m_processOutput)));
}
} // namespace Internal

View File

@@ -35,8 +35,6 @@
#include <utils/stringutils.h>
#include <QDir>
namespace CMakeProjectManager {
namespace Internal {
@@ -44,7 +42,7 @@ using namespace ProjectExplorer;
static QString lineSplit(const QString &rest, const QByteArray &array, std::function<void(const QString &)> f)
{
QString tmp = rest + Utils::SynchronousProcess::normalizeNewlines(QString::fromLocal8Bit(array));
QString tmp = rest + Utils::QtcProcess::normalizeNewlines(QString::fromLocal8Bit(array));
int start = 0;
int end = tmp.indexOf(QLatin1Char('\n'), start);
while (end >= 0) {

View File

@@ -35,6 +35,7 @@
#include <coreplugin/idocument.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
#include <utils/synchronousprocess.h>
#include <vcsbase/vcsbaseeditor.h>
#include <vcsbase/vcsoutputwindow.h>
@@ -127,7 +128,7 @@ QProcessEnvironment VcsBaseClientImpl::processEnvironment() const
QString VcsBaseClientImpl::commandOutputFromLocal8Bit(const QByteArray &a)
{
return SynchronousProcess::normalizeNewlines(QString::fromLocal8Bit(a));
return QtcProcess::normalizeNewlines(QString::fromLocal8Bit(a));
}
QStringList VcsBaseClientImpl::commandOutputLinesFromLocal8Bit(const QByteArray &a)