forked from qt-creator/qt-creator
VcsBaseSubmitEditor: Don't use QtcProcess::readDataFromProcess()
There is no big benefit of calling readDataFromProcess() when the last argument is false. Simplify runSubmitMessageCheckScript() and use QtcProcess::exitMessage() for error message reporting. Change-Id: I4ddaf3e72a2b5d49b47a2024da84862d92ab49fc Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -662,38 +662,19 @@ bool VcsBaseSubmitEditor::runSubmitMessageCheckScript(const QString &checkScript
|
|||||||
checkProcess.setWorkingDirectory(d->m_checkScriptWorkingDirectory);
|
checkProcess.setWorkingDirectory(d->m_checkScriptWorkingDirectory);
|
||||||
checkProcess.setCommand({FilePath::fromString(checkScript), {saver.filePath().toString()}});
|
checkProcess.setCommand({FilePath::fromString(checkScript), {saver.filePath().toString()}});
|
||||||
checkProcess.start();
|
checkProcess.start();
|
||||||
if (!checkProcess.waitForStarted()) {
|
const bool succeeded = checkProcess.waitForFinished();
|
||||||
*errorMessage = tr("The check script \"%1\" could not be started: %2").arg(checkScript, checkProcess.errorString());
|
|
||||||
return false;
|
const QString stdOut = checkProcess.stdOut();
|
||||||
}
|
if (!stdOut.isEmpty())
|
||||||
QByteArray stdOutData;
|
VcsOutputWindow::appendSilently(stdOut);
|
||||||
QByteArray stdErrData;
|
const QString stdErr = checkProcess.stdErr();
|
||||||
if (!checkProcess.readDataFromProcess(30, &stdOutData, &stdErrData, false)) {
|
|
||||||
*errorMessage = tr("The check script \"%1\" timed out.").
|
|
||||||
arg(QDir::toNativeSeparators(checkScript));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (checkProcess.exitStatus() != QProcess::NormalExit) {
|
|
||||||
*errorMessage = tr("The check script \"%1\" crashed.").
|
|
||||||
arg(QDir::toNativeSeparators(checkScript));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (!stdOutData.isEmpty())
|
|
||||||
VcsOutputWindow::appendSilently(QString::fromLocal8Bit(stdOutData));
|
|
||||||
const QString stdErr = QString::fromLocal8Bit(stdErrData);
|
|
||||||
if (!stdErr.isEmpty())
|
if (!stdErr.isEmpty())
|
||||||
VcsOutputWindow::appendSilently(stdErr);
|
VcsOutputWindow::appendSilently(stdErr);
|
||||||
const int exitCode = checkProcess.exitCode();
|
|
||||||
if (exitCode != 0) {
|
if (!succeeded)
|
||||||
const QString exMessage = tr("The check script returned exit code %1.").
|
*errorMessage = checkProcess.exitMessage();
|
||||||
arg(exitCode);
|
|
||||||
VcsOutputWindow::appendError(exMessage);
|
return succeeded;
|
||||||
*errorMessage = stdErr;
|
|
||||||
if (errorMessage->isEmpty())
|
|
||||||
*errorMessage = exMessage;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QIcon VcsBaseSubmitEditor::diffIcon()
|
QIcon VcsBaseSubmitEditor::diffIcon()
|
||||||
|
Reference in New Issue
Block a user