threads / patch / 46640

patchgit-gui: Prevent double UTF-8 conversion

Subject: [PATCH] git-gui: Prevent double UTF-8 conversion

## tl;dr

2 messages between Aug 21, 2017 and Aug 21, 2017. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Łukasz Stelmach· Aug 21, 2017, 11:53 UTC · lore

With encoding on the file descriptor set to "binary" Tcl (8.6 in my case) does double conversion which breaks e.g. author name in amended commits.

For example "\305\201ukasz" (as written by git cat-file) becomes "\303\205\302\201ukasz".

Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
---
 git-gui/lib/commit.tcl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to git-gui/lib/commit.tcl +1 −1
diff --git a/git-gui/lib/commit.tcl b/git-gui/lib/commit.tcl
index 83620b7cb..bcb6499a0 100644
--- a/git-gui/lib/commit.tcl
+++ b/git-gui/lib/commit.tcl
@@ -26,7 +26,7 @@ You are currently in the middle of a merge that has not been fully completed.  Y
 	set parents [list]
 	if {[catch {
 			set fd [git_read cat-file commit $curHEAD]
-			fconfigure $fd -encoding binary -translation lf
+			fconfigure $fd -encoding utf-8 -translation lf
 			# By default commits are assumed to be in utf-8
 			set enc utf-8
 			while {[gets $fd line] > 0} {
-- 
2.11.0
Stefan Beller· Aug 21, 2017, 18:52 UTC · re: Łukasz Stelmach · lore

Re: [PATCH] git-gui: Prevent double UTF-8 conversion

+cc git gui maintainer
On Mon, Aug 21, 2017 at 4:53 AM, Łukasz Stelmach <l.stelmach@samsung.com> wrote:
Show 27 quoted lines
> With encoding on the file descriptor set to "binary" Tcl (8.6 in my case)
> does double conversion which breaks e.g. author name in amended commits.
>
> For example "\305\201ukasz" (as written by git cat-file) becomes
> "\303\205\302\201ukasz".
>
> Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
> ---
>  git-gui/lib/commit.tcl | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/git-gui/lib/commit.tcl b/git-gui/lib/commit.tcl
> index 83620b7cb..bcb6499a0 100644
> --- a/git-gui/lib/commit.tcl
> +++ b/git-gui/lib/commit.tcl
> @@ -26,7 +26,7 @@ You are currently in the middle of a merge that has not been fully completed.  Y
>         set parents [list]
>         if {[catch {
>                         set fd [git_read cat-file commit $curHEAD]
> -                       fconfigure $fd -encoding binary -translation lf
> +                       fconfigure $fd -encoding utf-8 -translation lf
>                         # By default commits are assumed to be in utf-8
>                         set enc utf-8
>                         while {[gets $fd line] > 0} {
> --
> 2.11.0
>

← back to recent threads