Code

gitk: Display submodule diffs with appropriate encoding
authorKirill Smelkov <kirr@landau.phys.spbu.ru>
Tue, 5 Jan 2010 12:44:54 +0000 (15:44 +0300)
committerPaul Mackerras <paulus@samba.org>
Tue, 12 Jan 2010 11:20:18 +0000 (22:20 +1100)
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:
  > Ð\9fÑ\80оÑ\82околÑ\8b Ñ\81опÑ\80Ñ\8fжениÑ\8f Ð\98Ð\9cС "Ð\9cоÑ\81Ñ\82ик-21631"  (Ð\9bÐ\982 Ð¸ Ð¡Ð°Ð½Ð´Ð°Ð»)
  > hardware: Ð´Ð¾ÐºÑ\83менÑ\82аÑ\86иÑ\8f Ð½Ð° InnoDisk SATA 10000
  > hardware: Ð´Ð¾ÐºÑ\83менÑ\82аÑ\86иÑ\8f Ð½Ð° IEI PCISA-6770E2 v3.0
  > hardware: Ð´Ð¾ÐºÑ\83менÑ\82аÑ\86иÑ\8f Ð½Ð° Fastwel NIB941
  > hardware: Ð´Ð¾ÐºÑ\83менÑ\82аÑ\86иÑ\8f Ð½Ð° IEI IPX-9S
  > hardware: Ð´Ð¾ÐºÑ\83менÑ\82аÑ\86иÑ\8f Ð½Ð° 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>
gitk

diff --git a/gitk b/gitk
index de911b6e6d0fd8d7ff3217382d698d333b168da3..c1e1119dbc1c1e88956fd524fbc36042a9c18984 100755 (executable)
--- a/gitk
+++ b/gitk
@@ -7689,8 +7689,10 @@ proc getblobdiffline {bdf ids} {
            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]} {