From 79e8f885365d47eb968cca5873a36c6d46532e1f Mon Sep 17 00:00:00 2001
From: Yuchen Deng <loaden@gmail.com>
Date: Mon, 29 Oct 2012 11:29:13 +0800
Subject: [PATCH] Git: Fix log encoding

We should using "i18n.logOutputEncoding" as we can.
In default, it should be 'utf-8'.

Change-Id: Ic5af2869e5fd5273a712f28e8e59149a4c2ef2b7
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
---
 src/plugins/git/gitclient.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index b5546cb993f..8f2cb5706e7 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -843,7 +843,14 @@ bool GitClient::synchronousLog(const QString &workingDirectory, const QStringLis
     allArguments.append(arguments);
     const bool rc = fullySynchronousGit(workingDirectory, allArguments, &outputText, &errorText);
     if (rc) {
-        *output = commandOutputFromLocal8Bit(outputText);
+        QString encodingName = readConfigValue(workingDirectory, QLatin1String("i18n.logOutputEncoding"));
+        if (encodingName.isEmpty())
+            encodingName = QLatin1String("utf-8");
+        QTextCodec *codec = QTextCodec::codecForName(encodingName.toLocal8Bit());
+        if (codec)
+            *output = codec->toUnicode(outputText);
+        else
+            *output = commandOutputFromLocal8Bit(outputText);
     } else {
         const QString errorMessage = tr("Cannot obtain log of \"%1\": %2").
                                      arg(QDir::toNativeSeparators(workingDirectory),
-- 
GitLab