Skip to content

Commit 32cf535

Browse files
dschoGit for Windows Build Agent
authored andcommitted
mingw: ensure valid CTYPE
A change between versions 2.4.1 and 2.6.0 of the MSYS2 runtime modified how Cygwin's runtime (and hence Git for Windows' MSYS2 runtime derivative) handles locales: d16a56306d (Consolidate wctomb/mbtowc calls for POSIX-1.2008, 2016-07-20). An unintended side-effect is that "cold-calling" into the POSIX emulation will start with a locale based on the current code page, something that Git for Windows is very ill-prepared for, as it expects to be able to pass a command-line containing non-ASCII characters to the shell without having those characters munged. One symptom of this behavior: when `git clone` or `git fetch` shell out to call `git-upload-pack` with a path that contains non-ASCII characters, the shell tried to interpret the entire command-line (including command-line parameters) as executable path, which obviously must fail. This fixes #1036 Signed-off-by: Johannes Schindelin <[email protected]>
1 parent e7bb30d commit 32cf535

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

compat/mingw.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2954,6 +2954,9 @@ static void setup_windows_environment(void)
29542954
*/
29552955
if (!(tmp = getenv("MSYS")) || !strstr(tmp, "winsymlinks:nativestrict"))
29562956
has_symlinks = 0;
2957+
2958+
if (!getenv("LC_ALL") && !getenv("LC_CTYPE") && !getenv("LANG"))
2959+
setenv("LC_CTYPE", "C", 1);
29572960
}
29582961

29592962
int handle_long_path(wchar_t *path, int len, int max_path, int expand)

0 commit comments

Comments
 (0)