aboutsummaryrefslogtreecommitdiff
path: root/lib/diff.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/diff.tcl')
-rw-r--r--lib/diff.tcl9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/diff.tcl b/lib/diff.tcl
index a30c80a93..b0ecfbcb5 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]
}