summaryrefslogtreecommitdiff
path: root/git-gui
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <junkio@cox.net>2007-05-07 14:47:14 -0700
committerLibravatar Junio C Hamano <junkio@cox.net>2007-05-07 14:47:14 -0700
commit070739fd351702ea9bb4f65595728ae25a488075 (patch)
tree2d88730508f27e5b948ad1cf18a9c532b4c32efb /git-gui
parentMerge branch 'maint' (diff)
parentMerge branch 'maint' (diff)
downloadtgif-070739fd351702ea9bb4f65595728ae25a488075.tar.xz
Merge branch 'master' of git://repo.or.cz/git-gui
* 'master' of git://repo.or.cz/git-gui: git-gui: Correctly handle UTF-8 encoded commit messages
Diffstat (limited to 'git-gui')
-rwxr-xr-xgit-gui/git-gui.sh46
1 files changed, 26 insertions, 20 deletions
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index 677c5393fd..0ad2815d10 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -1067,8 +1067,8 @@ You are currently in the middle of a merge that has not been fully completed. Y
set enc [string tolower [string range $line 9 end]]
}
}
- fconfigure $fd -encoding $enc
- set msg [string trim [read $fd]]
+ set msg [encoding convertfrom $enc [read $fd]]
+ set msg [string trim $msg]
close $fd
} err]} {
error_popup "Error loading commit data for amend:\n\n$err"
@@ -1291,8 +1291,8 @@ A rescan will be automatically started now.
if {[catch {set enc $repo_config(i18n.commitencoding)}]} {
set enc utf-8
}
- fconfigure $msg_wt -encoding $enc -translation binary
- puts -nonewline $msg_wt $msg
+ fconfigure $msg_wt -encoding binary -translation binary
+ puts -nonewline $msg_wt [encoding convertto $enc $msg]
close $msg_wt
# -- Create the commit.
@@ -3663,6 +3663,20 @@ proc blame_showcommit {w w_cmit w_line w_file lno} {
incr i
}
+ set author_name {}
+ set author_email {}
+ set author_time {}
+ catch {set author_name $blame_data($w,$cmit,author)}
+ catch {set author_email $blame_data($w,$cmit,author-mail)}
+ catch {set author_time [clock format $blame_data($w,$cmit,author-time)]}
+
+ set committer_name {}
+ set committer_email {}
+ set committer_time {}
+ catch {set committer_name $blame_data($w,$cmit,committer)}
+ catch {set committer_email $blame_data($w,$cmit,committer-mail)}
+ catch {set committer_time [clock format $blame_data($w,$cmit,committer-time)]}
+
if {[catch {set msg $blame_data($w,$cmit,message)}]} {
set msg {}
catch {
@@ -3676,27 +3690,19 @@ proc blame_showcommit {w w_cmit w_line w_file lno} {
set enc [string tolower [string range $line 9 end]]
}
}
- fconfigure $fd -encoding $enc
- set msg [string trim [read $fd]]
+ set msg [encoding convertfrom $enc [read $fd]]
+ set msg [string trim $msg]
close $fd
+
+ set author_name [encoding convertfrom $enc $author_name]
+ set committer_name [encoding convertfrom $enc $committer_name]
+
+ set blame_data($w,$cmit,author) $author_name
+ set blame_data($w,$cmit,committer) $committer_name
}
set blame_data($w,$cmit,message) $msg
}
- set author_name {}
- set author_email {}
- set author_time {}
- catch {set author_name $blame_data($w,$cmit,author)}
- catch {set author_email $blame_data($w,$cmit,author-mail)}
- catch {set author_time [clock format $blame_data($w,$cmit,author-time)]}
-
- set committer_name {}
- set committer_email {}
- set committer_time {}
- catch {set committer_name $blame_data($w,$cmit,committer)}
- catch {set committer_email $blame_data($w,$cmit,committer-mail)}
- catch {set committer_time [clock format $blame_data($w,$cmit,committer-time)]}
-
$w_cmit insert end "commit $cmit\n"
$w_cmit insert end "Author: $author_name $author_email $author_time\n"
$w_cmit insert end "Committer: $committer_name $committer_email $committer_time\n"