diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2014-03-18 14:48:32 +0200 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2014-03-18 14:30:09 +0100 |
commit | d72b4851b45ace311f8813fd4854a2a8e36ab8af (patch) | |
tree | c56907a10d22beb13ac3968293ec9152f1fe6e47 /src/plugins | |
parent | e6d0e6872d7c391772dc9d2bacefa2f4d30e560e (diff) | |
download | qt-creator-d72b4851b45ace311f8813fd4854a2a8e36ab8af.tar.gz |
Git: Avoid QByteArray -> QString -> QByteArray conversions for encoding
Change-Id: Ib2eb3000a08021336c9071d35d499371c9b88976
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/git/gitclient.cpp | 17 | ||||
-rw-r--r-- | src/plugins/git/gitclient.h | 2 |
2 files changed, 10 insertions, 9 deletions
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 50f50e6dd1..76d2edd144 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -2401,7 +2401,9 @@ SubmoduleDataMap GitClient::submoduleList(const QString &workingDirectory) if (cachedSubmoduleData.contains(workingDirectory)) return cachedSubmoduleData.value(workingDirectory); - QStringList allConfigs = readConfig(workingDirectory, QLatin1String("-l")).split(QLatin1Char('\n')); + QStringList allConfigs = + commandOutputFromLocal8Bit(readConfig(workingDirectory, QLatin1String("-l"))) + .split(QLatin1Char('\n')); const QString submoduleLineStart = QLatin1String("submodule."); foreach (const QString &configLine, allConfigs) { if (!configLine.startsWith(submoduleLineStart)) @@ -3017,8 +3019,7 @@ QString GitClient::gitBinaryPath(bool *ok, QString *errorMessage) const QTextCodec *GitClient::encoding(const QString &workingDirectory, const QByteArray &configVar) const { - QByteArray codecName = readConfigValue(workingDirectory, QLatin1String(configVar)) - .toLocal8Bit(); + QByteArray codecName = readConfig(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()) @@ -3742,7 +3743,7 @@ bool GitClient::synchronousStashList(const QString &workingDirectory, return true; } -QString GitClient::readConfig(const QString &workingDirectory, const QString &configVar) const +QByteArray GitClient::readConfig(const QString &workingDirectory, const QString &configVar) const { QStringList arguments; arguments << QLatin1String("config") << configVar; @@ -3751,16 +3752,16 @@ QString GitClient::readConfig(const QString &workingDirectory, const QString &co QByteArray errorText; if (!fullySynchronousGit(workingDirectory, arguments, &outputText, &errorText, VcsBasePlugin::SuppressCommandLogging)) - return QString(); + return QByteArray(); if (Utils::HostOsInfo::isWindowsHost()) - return Utils::SynchronousProcess::normalizeNewlines(QString::fromUtf8(outputText)); - return commandOutputFromLocal8Bit(outputText); + 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 { - return readConfig(workingDirectory, configVar).remove(QLatin1Char('\n')); + return commandOutputFromLocal8Bit(readConfig(workingDirectory, configVar).trimmed()); } bool GitClient::cloneRepository(const QString &directory,const QByteArray &url) diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 78d59aaaa9..b5dd5fd474 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -281,7 +281,7 @@ public: const QString &messge, QString *name, QString *errorMessage = 0); - QString readConfig(const QString &workingDirectory, const QString &configVar) const; + QByteArray readConfig(const QString &workingDirectory, const QString &configVar) const; QString readConfigValue(const QString &workingDirectory, const QString &configVar) const; |