summaryrefslogtreecommitdiff
path: root/compat
diff options
context:
space:
mode:
authorKarsten Blees <blees@dcon.de>2011-01-07 18:52:20 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-06-16 17:56:47 (GMT)
commit5901dc6613fcb5e4a4c49e09992a13a4840edb48 (patch)
treee75e3ed8088ede20908bdaf0c6be25c219e680d4 /compat
parent58aa3d2a69ded1f48a1c9c63176384d02925c9d6 (diff)
downloadgit-5901dc6613fcb5e4a4c49e09992a13a4840edb48.zip
git-5901dc6613fcb5e4a4c49e09992a13a4840edb48.tar.gz
git-5901dc6613fcb5e4a4c49e09992a13a4840edb48.tar.bz2
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>
Diffstat (limited to 'compat')
-rw-r--r--compat/mingw.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/compat/mingw.c b/compat/mingw.c
index 6849815..1140a13 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -1927,6 +1927,12 @@ int xwcstoutf(char *utf, const wchar_t *wcs, size_t utflen)
return -1;
}
+/*
+ * Disable MSVCRT command line wildcard expansion (__getmainargs called from
+ * mingw startup code, see init.c in mingw runtime).
+ */
+int _CRT_glob = 0;
+
void mingw_startup()
{
/* copy executable name to argv[0] */