Git: Fix instant blame text encoding

Fixes: QTCREATORBUG-28728
Change-Id: I875488badc84b664eaa1223b37657dcb417157de
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Andre Hartmann
2023-01-30 11:46:32 +01:00
committed by André Hartmann
parent b05ec7dc3c
commit 61fab0b736
3 changed files with 6 additions and 3 deletions

View File

@@ -1581,9 +1581,10 @@ void GitPluginPrivate::instantBlame()
const CommitInfo info = parseBlameOutput(output.split('\n'), filePath, m_author);
m_blameMark.reset(new BlameMark(filePath, line, info));
};
QTextCodec *codec = GitClient::instance()->encoding(workingDirectory, "i18n.commitEncoding");
GitClient::instance()->vcsExecWithHandler(workingDirectory,
{"blame", "-p", "-L", lineString, "--", filePath.toString()},
this, commandHandler, RunFlags::NoOutput);
this, commandHandler, RunFlags::NoOutput, codec);
}
void GitPluginPrivate::stopInstantBlame()

View File

@@ -157,10 +157,11 @@ void VcsBaseClientImpl::vcsExecWithHandler(const FilePath &workingDirectory,
const QStringList &arguments,
const QObject *context,
const CommandHandler &handler,
RunFlags additionalFlags) const
RunFlags additionalFlags, QTextCodec *codec) const
{
VcsCommand *command = createCommand(workingDirectory);
command->addFlags(additionalFlags);
command->setCodec(codec);
command->addJob({vcsBinary(), arguments}, vcsTimeoutS());
if (handler) {
const QObject *actualContext = context ? context : this;

View File

@@ -83,7 +83,8 @@ public:
const QStringList &arguments,
const QObject *context,
const CommandHandler &handler,
RunFlags additionalFlags = RunFlags::None) const;
RunFlags additionalFlags = RunFlags::None,
QTextCodec *codec = nullptr) const;
void vcsExec(const Utils::FilePath &workingDirectory,
const QStringList &arguments,
RunFlags additionalFlags = RunFlags::None) const;