diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/blame.tcl | 5 | ||||
-rw-r--r-- | lib/diff.tcl | 9 |
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/blame.tcl b/lib/blame.tcl index 0d635cd3a7..9464a599dc 100644 --- a/lib/blame.tcl +++ b/lib/blame.tcl @@ -399,7 +399,10 @@ method _load {jump} { } else { set fd [git_read cat-file blob "$commit:$path"] } - fconfigure $fd -blocking 0 -translation lf -encoding binary + fconfigure $fd \ + -blocking 0 \ + -translation lf \ + -encoding [tcl_encoding [gitattr $path encoding UTF-8]] fileevent $fd readable [cb _read_file $fd $jump] set current_fd $fd } diff --git a/lib/diff.tcl b/lib/diff.tcl index a30c80a935..b0ecfbcb59 100644 --- a/lib/diff.tcl +++ b/lib/diff.tcl @@ -164,8 +164,11 @@ proc show_other_diff {path w m scroll_pos} { set sz [string length $content] } file { + set enc [gitattr $path encoding UTF-8] set fd [open $path r] - fconfigure $fd -eofchar {} + fconfigure $fd \ + -eofchar {} \ + -encoding [tcl_encoding $enc] set content [read $fd $max_sz] close $fd set sz [file size $path] @@ -279,8 +282,8 @@ proc start_show_diff {scroll_pos {add_opts {}}} { set ::current_diff_inheader 1 fconfigure $fd \ -blocking 0 \ - -encoding binary \ - -translation binary + -encoding [tcl_encoding [gitattr $path encoding UTF-8]] \ + -translation lf fileevent $fd readable [list read_diff $fd $scroll_pos] } |