summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2014-03-18 14:48:32 +0200
committerOrgad Shaneh <orgads@gmail.com>2014-03-18 14:30:09 +0100
commitd72b4851b45ace311f8813fd4854a2a8e36ab8af (patch)
treec56907a10d22beb13ac3968293ec9152f1fe6e47 /src/plugins
parente6d0e6872d7c391772dc9d2bacefa2f4d30e560e (diff)
downloadqt-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.cpp17
-rw-r--r--src/plugins/git/gitclient.h2
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;