From e568d14b3678e33e0744abc63be14a23a536d133 Mon Sep 17 00:00:00 2001
From: Orgad Shaneh <orgad.shaneh@audiocodes.com>
Date: Sun, 16 Mar 2014 22:52:59 +0200
Subject: [PATCH] Git: Use commit encoding for interactive rebase and commit
 editors
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Task-number: QTCREATORBUG-11115

Change-Id: Ie922d94d66bed2882d3fc2b8b2de1bdc328d4d1c
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
---
 src/plugins/git/giteditor.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/plugins/git/giteditor.cpp b/src/plugins/git/giteditor.cpp
index 5b4b05e7f1e..833e6f577ff 100644
--- a/src/plugins/git/giteditor.cpp
+++ b/src/plugins/git/giteditor.cpp
@@ -46,6 +46,7 @@
 #include <QRegExp>
 #include <QSet>
 #include <QTemporaryFile>
+#include <QTextCodec>
 #include <QDir>
 
 #include <QTextCursor>
@@ -325,14 +326,16 @@ void GitEditor::addDiffActions(QMenu *menu, const VcsBase::DiffChunk &chunk)
 
 bool GitEditor::open(QString *errorString, const QString &fileName, const QString &realFileName)
 {
-    bool res = VcsBaseEditorWidget::open(errorString, fileName, realFileName);
     Core::Id editorId = editor()->id();
     if (editorId == Git::Constants::GIT_COMMIT_TEXT_EDITOR_ID
             || editorId == Git::Constants::GIT_REBASE_EDITOR_ID) {
         QFileInfo fi(fileName);
-        setSource(fi.absolutePath());
+        const QString gitPath = fi.absolutePath();
+        setSource(gitPath);
+        const QString commitEncoding = GitPlugin::instance()->gitClient()->commitEncoding(gitPath);
+        baseTextDocument()->setCodec(QTextCodec::codecForName(commitEncoding.toLocal8Bit()));
     }
-    return res;
+    return VcsBaseEditorWidget::open(errorString, fileName, realFileName);
 }
 
 QString GitEditor::decorateVersion(const QString &revision) const
-- 
GitLab