diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index ff068d46fd7..b73d1d3129f 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -2506,12 +2506,12 @@ FileName GitClient::gitExecutable(bool *ok, QString *errorMessage) const QTextCodec *GitClient::encoding(const QString &workingDirectory, const QByteArray &configVar) const { - QByteArray codecName = readConfigBytes(workingDirectory, QLatin1String(configVar)).trimmed(); + QString codecName = readConfigValue(workingDirectory, QLatin1String(configVar)).trimmed(); // Set default commit encoding to 'UTF-8', when it's not set, // to solve displaying error of commit log with non-latin characters. if (codecName.isEmpty()) - codecName = "UTF-8"; - return QTextCodec::codecForName(codecName); + return QTextCodec::codecForName("UTF-8"); + return QTextCodec::codecForName(codecName.toUtf8()); } // returns first line from log and removes it @@ -3263,21 +3263,6 @@ bool GitClient::synchronousStashList(const QString &workingDirectory, return true; } -QByteArray GitClient::readConfigBytes(const QString &workingDirectory, const QString &configVar) const -{ - QStringList arguments; - arguments << QLatin1String("config") << configVar; - - QByteArray outputText; - QByteArray errorText; - if (!fullySynchronousGit(workingDirectory, arguments, &outputText, &errorText, - VcsBasePlugin::SuppressCommandLogging)) - return QByteArray(); - if (HostOsInfo::isWindowsHost()) - outputText.replace("\r\n", "\n"); - return outputText; -} - // Read a single-line config value, return trimmed QString GitClient::readConfigValue(const QString &workingDirectory, const QString &configVar) const { @@ -3286,8 +3271,18 @@ QString GitClient::readConfigValue(const QString &workingDirectory, const QStrin static QTextCodec *codec = HostOsInfo::isWindowsHost() ? QTextCodec::codecForName("UTF-8") : QTextCodec::codecForLocale(); - const QByteArray value = readConfigBytes(workingDirectory, configVar).trimmed(); - return SynchronousProcess::normalizeNewlines(codec->toUnicode(value)); + QStringList arguments; + arguments << QLatin1String("config") << configVar; + + QByteArray outputText; + QByteArray errorText; + if (!fullySynchronousGit(workingDirectory, arguments, &outputText, &errorText, + VcsBasePlugin::SuppressCommandLogging)) + return QString(); + if (HostOsInfo::isWindowsHost()) + outputText.replace("\r\n", "\n"); + + return SynchronousProcess::normalizeNewlines(codec->toUnicode(outputText)); } bool GitClient::cloneRepository(const QString &directory,const QByteArray &url) diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 870e2e25903..a41a424cc6c 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -359,7 +359,6 @@ private slots: private: void stage(const QString &patch, bool revert); - QByteArray readConfigBytes(const QString &workingDirectory, const QString &configVar) const; QTextCodec *getSourceCodec(const QString &file) const; VcsBase::VcsBaseEditorWidget *findExistingVCSEditor(const char *registerDynamicProperty, const QString &dynamicPropertyValue) const;