Re: [PATCH v2] git-gui--askpass: coerce answers to UTF-8 on Windows
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 13, 2020, 00:11 UTC
- Message-ID
- <xmqq7dzpdsfy.fsf@gitster.c.googlers.com>
- In-Reply-To
- <pull.578.v2.git.1584048710895.gitgitgadget@gmail.com>
"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 23 quoted lines
> From: Luke Bonanomi <lbonanomi@gmail.com> > > This addresses the issue where Git for Windows asks the user for a > password, no credential helper is available, and then Git fails to pick > up non-ASCII characters from the Git GUI helper. > > This can be verified e.g. via > > echo host=http://abc.com | > git -c credential.helper= credential fill > > and then pasting some umlauts. > > The underlying reason is that Git for Windows tries to communicate using > the UTF-8 encoding no matter what the actual current code page is. So > let's indulge Git for Windows and do use that encoding. > > This fixes https://github.com/git-for-windows/git/issues/2215 > > Signed-off-by: Luke Bonanomi <lbonanomi@gmail.com> > Helped-by: Junio C Hamano <gitster@pobox.com> > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> > ---
Heh, that is over-crediting me. I didn't do anything other than just scan the code once.
Show 57 quoted lines
> Fix git-gui--askpass on Windows
>
> Windows has this odd thing where there is an active code page (somewhat
> like LC_CTYPE) and there is no real UTF-8 code page. So we need to help
> git-gui--askpass along a bit to be of use when asking for credentials.
>
> Changes since v1:
>
> * Fixed indentation
>
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-578%2Fdscho%2Fgit-gui--askpass-utf-8-v2
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-578/dscho/git-gui--askpass-utf-8-v2
> Pull-Request: https://github.com/gitgitgadget/git/pull/578
>
> Range-diff vs v1:
>
> 1: 3beec773772 ! 1: 7891941486d git-gui--askpass: coerce answers to UTF-8 on Windows
> @@ -20,6 +20,7 @@
> This fixes https://github.com/git-for-windows/git/issues/2215
>
> Signed-off-by: Luke Bonanomi <lbonanomi@gmail.com>
> + Helped-by: Junio C Hamano <gitster@pobox.com>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
>
> diff --git a/git-gui--askpass b/git-gui--askpass
> @@ -30,7 +31,7 @@
> }
>
> + # On Windows, force the encoding to UTF-8: it is what `git.exe` expects
> -+ if {$::tcl_platform(platform) eq {windows}} {
> ++ if {$::tcl_platform(platform) eq {windows}} {
> + set ::answer [encoding convertto utf-8 $::answer]
> + }
> +
>
>
> git-gui--askpass | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/git-gui--askpass b/git-gui--askpass
> index 4277f30c411..1c99ee8ca20 100755
> --- a/git-gui--askpass
> +++ b/git-gui--askpass
> @@ -56,6 +56,11 @@ proc finish {} {
> }
> }
>
> + # On Windows, force the encoding to UTF-8: it is what `git.exe` expects
> + if {$::tcl_platform(platform) eq {windows}} {
> + set ::answer [encoding convertto utf-8 $::answer]
> + }
> +
> puts $::answer
> set ::rc 0
> }
>
> base-commit: 63a58457e094c9c9bbf562b872009d32f1f88133