summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dunstan2022-04-25 19:02:13 +0000
committerAndrew Dunstan2022-04-25 19:47:55 +0000
commitb787c554c264cbed4de4eff2bb170a5224f0cfa5 (patch)
tree624a19cce0137f6bafceee4815bc7cef92b36b1f
parentdec8ad367e46180f826d5b6dc820fbecba1b71d2 (diff)
Inhibit mingw CRT's auto-globbing of command line arguments
For some reason by default the mingw C Runtime takes it upon itself to expand program arguments that look like shell globbing characters. That has caused much scratching of heads and mis-attribution of the causes of some TAP test failures, so stop doing that. This removes an inconsistency with Windows binaries built with MSVC, which have no such behaviour. Per suggestion from Noah Misch. Backpatch to all live branches. Discussion: https://postgr.es/m/[email protected]
-rw-r--r--src/common/exec.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/common/exec.c b/src/common/exec.c
index 95ef13c322..289b1f26b8 100644
--- a/src/common/exec.c
+++ b/src/common/exec.c
@@ -33,6 +33,11 @@
#endif
#endif
+/* Inhibit mingw CRT's auto-globbing of command line arguments */
+#if defined(WIN32) && !defined(_MSC_VER)
+extern int _CRT_glob = 0; /* 0 turns off globbing; 1 turns it on */
+#endif
+
/*
* Hacky solution to allow expressing both frontend and backend error reports
* in one macro call. First argument of log_error is an errcode() call of