forked from qt-creator/qt-creator
Utils: Add a QString-based write to QtcProcess
Centralize some boiler plate and warn about best-guessed cases. Keep the QByteArray based access as writeRaw() Fixes: QTCREATORBUG-27445 Change-Id: I948d80fba78b36cf85cc73664175ab05eb7707d4 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -1207,11 +1207,27 @@ QByteArray QtcProcess::readAllStandardError()
|
||||
return buf;
|
||||
}
|
||||
|
||||
qint64 QtcProcess::write(const QByteArray &input)
|
||||
qint64 QtcProcess::write(const QString &input)
|
||||
{
|
||||
QTC_ASSERT(processMode() == ProcessMode::Writer, return -1);
|
||||
QTC_ASSERT(d->m_process, return -1);
|
||||
QTC_ASSERT(state() == QProcess::Running, return -1);
|
||||
|
||||
// Non-windows is assumed to be UTF-8
|
||||
if (commandLine().executable().osType() != OsTypeWindows)
|
||||
return writeRaw(input.toUtf8());
|
||||
|
||||
if (HostOsInfo::hostOs() == OsTypeWindows)
|
||||
return writeRaw(input.toLocal8Bit());
|
||||
|
||||
// "remote" Windows target on non-Windows host is unlikely,
|
||||
// but the true encoding is not accessible. Use UTF8 as best guess.
|
||||
QTC_CHECK(false);
|
||||
return writeRaw(input.toUtf8());
|
||||
}
|
||||
|
||||
qint64 QtcProcess::writeRaw(const QByteArray &input)
|
||||
{
|
||||
return d->m_process->write(input);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user