diff options
author | Junio C Hamano <junkio@cox.net> | 2007-05-07 14:47:14 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-05-07 14:47:14 -0700 |
commit | 070739fd351702ea9bb4f65595728ae25a488075 (patch) | |
tree | 2d88730508f27e5b948ad1cf18a9c532b4c32efb /git-gui/git-gui.sh | |
parent | 679c7c56ed9f73db5892fe17ef9b67b84b0ca242 (diff) | |
parent | 3f28f63f5a87c566ac471e04791daf3da20c67da (diff) | |
download | git-070739fd351702ea9bb4f65595728ae25a488075.tar.gz git-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/git-gui.sh')
-rwxr-xr-x | git-gui/git-gui.sh | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh index 677c5393f..0ad2815d1 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" |