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:
Jarek Kobus
2022-07-05 17:24:26 +02:00
parent c04f3a94ea
commit 3ec577ff17

View File

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