]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git-gui--askpass: coerce answers to UTF-8 on Windows
authorLuke Bonanomi <lbonanomi@gmail.com>
Thu, 12 Mar 2020 21:31:50 +0000 (21:31 +0000)
committerPratyush Yadav <me@yadavpratyush.com>
Sat, 14 Mar 2020 17:16:40 +0000 (22:46 +0530)
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>
Signed-off-by: Pratyush Yadav <me@yadavpratyush.com>
git-gui--askpass

index 4277f30c4116faf2788243af4ec23f1d077698e8..1c99ee8ca20d43f45bb733ca1f9516aa6c9c9e97 100755 (executable)
@@ -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
 }