gitk: Display submodule diffs with appropriate encoding
Previously, when submodule commit headings contained non-latin-1
characters, they were displayed incorrectly in gitk, because $line was
not properly decoded, for example:
----------------------------- Documentation/Dokko -----------------------------
Submodule Documentation/Dokko 2ca20c7..0ea204d:
> ÐÑоÑÐ¾ÐºÐ¾Ð»Ñ ÑопÑÑÐ¶ÐµÐ½Ð¸Ñ ÐÐС "ÐоÑÑик-21631" (ÐÐ2 и Сандал)
> hardware: докÑменÑаÑÐ¸Ñ Ð½Ð° InnoDisk SATA 10000
> hardware: докÑменÑаÑÐ¸Ñ Ð½Ð° IEI PCISA-6770E2 v3.0
> hardware: докÑменÑаÑÐ¸Ñ Ð½Ð° Fastwel NIB941
> hardware: докÑменÑаÑÐ¸Ñ Ð½Ð° IEI IPX-9S
> hardware: докÑменÑаÑÐ¸Ñ Ð½Ð° Hirschmann 5TX-EEC
instead of
----------------------------- Documentation/Dokko -----------------------------
Submodule Documentation/Dokko 2ca20c7..0ea204d:
> Протоколы сопряжения ИМС "Мостик-21631" (ЛИ2 и Сандал)
> hardware: документация на InnoDisk SATA 10000
> hardware: документация на IEI PCISA-6770E2 v3.0
> hardware: документация на Fastwel NIB941
> hardware: документация на IEI IPX-9S
> hardware: документация на Hirschmann 5TX-EEC
This fixes it.
Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Signed-off-by: Paul Mackerras <paulus@samba.org>
diff --git a/gitk b/gitk
index de911b6..c1e1119 100755
--- a/gitk
+++ b/gitk
@@ -7689,8 +7689,10 @@
makediffhdr $fname $ids
$ctext insert end "\n$line\n" filesep
} elseif {![string compare -length 3 " >" $line]} {
+ set line [encoding convertfrom $diffencoding $line]
$ctext insert end "$line\n" dresult
} elseif {![string compare -length 3 " <" $line]} {
+ set line [encoding convertfrom $diffencoding $line]
$ctext insert end "$line\n" d0
} elseif {$diffinhdr} {
if {![string compare -length 12 "rename from " $line]} {