Windows: Don't wildcard expand /? or -?
authorHans Wennborg <hans@hanshq.net>
Thu, 24 Jul 2014 21:09:45 +0000 (21:09 +0000)
committerHans Wennborg <hans@hanshq.net>
Thu, 24 Jul 2014 21:09:45 +0000 (21:09 +0000)
Even if there's a file called c:\a, we want /? to be preserved as
an option, not expanded to a filename.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213894 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/Windows/Process.inc

index 9eeca62d9d66b7a4c8b65137d2a49fbf86a137e4..61749a72727b97dc1c66e000b99447dbe24c62d6 100644 (file)
@@ -213,6 +213,11 @@ WildcardExpand(const wchar_t *Arg, SmallVectorImpl<const char *> &Args,
     return ConvertAndPushArg(Arg, Args, Allocator);
   }
 
+  if (wcscmp(Arg, L"/?") == 0 || wcscmp(Arg, L"-?") == 0) {
+    // Don't wildcard expand /?. Always treat it as an option.
+    return ConvertAndPushArg(Arg, Args, Allocator);
+  }
+
   // Extract any directory part of the argument.
   SmallVector<char, MAX_PATH> Dir;
   if (std::error_code ec = windows::UTF16ToUTF8(Arg, wcslen(Arg), Dir))