forked from qt-creator/qt-creator
Utils: Use FilePath::processCodec as default when starting processes
Can still be overridden for special cases. Change-Id: Ic540974812a8c965603bafd1f1fde4c383f3481d Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
@@ -723,8 +723,8 @@ public:
|
|||||||
qint64 m_applicationMainThreadId = 0;
|
qint64 m_applicationMainThreadId = 0;
|
||||||
ProcessResultData m_resultData;
|
ProcessResultData m_resultData;
|
||||||
|
|
||||||
QTextCodec *m_stdOutCodec = QTextCodec::codecForLocale();
|
QTextCodec *m_stdOutCodec = nullptr;
|
||||||
QTextCodec *m_stdErrCodec = QTextCodec::codecForLocale();
|
QTextCodec *m_stdErrCodec = nullptr;
|
||||||
|
|
||||||
ProcessResult m_result = ProcessResult::StartFailed;
|
ProcessResult m_result = ProcessResult::StartFailed;
|
||||||
ChannelBuffer m_stdOut;
|
ChannelBuffer m_stdOut;
|
||||||
@@ -983,10 +983,16 @@ void ProcessPrivate::sendControlSignal(ControlSignal controlSignal)
|
|||||||
|
|
||||||
void ProcessPrivate::clearForRun()
|
void ProcessPrivate::clearForRun()
|
||||||
{
|
{
|
||||||
|
if (!m_stdOutCodec)
|
||||||
|
m_stdOutCodec = m_setup.m_commandLine.executable().processStdOutCodec();
|
||||||
m_stdOut.clearForRun();
|
m_stdOut.clearForRun();
|
||||||
m_stdOut.codec = m_stdOutCodec;
|
m_stdOut.codec = m_stdOutCodec;
|
||||||
|
|
||||||
|
if (!m_stdErrCodec)
|
||||||
|
m_stdErrCodec = m_setup.m_commandLine.executable().processStdErrCodec();
|
||||||
m_stdErr.clearForRun();
|
m_stdErr.clearForRun();
|
||||||
m_stdErr.codec = m_stdErrCodec;
|
m_stdErr.codec = m_stdErrCodec;
|
||||||
|
|
||||||
m_result = ProcessResult::StartFailed;
|
m_result = ProcessResult::StartFailed;
|
||||||
m_startTimestamp = {};
|
m_startTimestamp = {};
|
||||||
m_doneTimestamp = {};
|
m_doneTimestamp = {};
|
||||||
@@ -1622,12 +1628,14 @@ QByteArray Process::rawStdErr() const
|
|||||||
QString Process::stdOut() const
|
QString Process::stdOut() const
|
||||||
{
|
{
|
||||||
QTC_CHECK(d->m_stdOut.keepRawData);
|
QTC_CHECK(d->m_stdOut.keepRawData);
|
||||||
|
QTC_ASSERT(d->m_stdOutCodec, return {}); // Process was not started
|
||||||
return d->m_stdOutCodec->toUnicode(d->m_stdOut.rawData);
|
return d->m_stdOutCodec->toUnicode(d->m_stdOut.rawData);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString Process::stdErr() const
|
QString Process::stdErr() const
|
||||||
{
|
{
|
||||||
QTC_CHECK(d->m_stdErr.keepRawData);
|
QTC_CHECK(d->m_stdErr.keepRawData);
|
||||||
|
QTC_ASSERT(d->m_stdErrCodec, return {}); // Process was not started
|
||||||
return d->m_stdErrCodec->toUnicode(d->m_stdErr.rawData);
|
return d->m_stdErrCodec->toUnicode(d->m_stdErr.rawData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user