MinGW: disable CRT command line globbing

MingwRT listens to _CRT_glob to decide if __getmainargs should perform globbing, with the default being that it should. Unfortunately, __getmainargs globbing is sub-par; for instance patterns like "*.c" will only match c-sources in the current directory. Disable __getmainargs' command line wildcard expansion, so these patterns will be left untouched, and handled by Git's superior built-in globbing instead. MSVC defaults to no globbing, so we don't need to do anything in that case. This fixes t5505 and t7810. Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Stepan Kasal <kasal@ucw.cz> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Karsten Blees committed Jan 7, 2011 at 19:52 UTC 5901dc6613fcb5e4a4c49e09992a13a4840edb48
1 file changed +6
compat/mingw.c
+6
@@ -1927,6 +1927,12 @@ int xwcstoutf(char *utf, const wchar_t *wcs, size_t utflen)
1927 return -1;
1928 }
1929
1930 +/*
1931 + * Disable MSVCRT command line wildcard expansion (__getmainargs called from
1932 + * mingw startup code, see init.c in mingw runtime).
1933 + */
1934 +int _CRT_glob = 0;
1935 +
1936 void mingw_startup()
1937 {
1938 /* copy executable name to argv[0] */