]> granicus.if.org Git - clang/commitdiff
[clang-format] Wildcard expansion on Windows.
authorAlexander Kornienko <alexfh@google.com>
Mon, 26 Mar 2018 13:54:17 +0000 (13:54 +0000)
committerAlexander Kornienko <alexfh@google.com>
Mon, 26 Mar 2018 13:54:17 +0000 (13:54 +0000)
Summary:
Add support for wildcard expansion in command line arguments on Windows.
See https://docs.microsoft.com/en-us/cpp/c-language/expanding-wildcard-arguments

Fixes https://bugs.llvm.org/show_bug.cgi?id=17217

Reviewers: klimek, djasper, rnk

Reviewed By: rnk

Subscribers: rnk, smeenai, zturner, alexfh, mgorny, cfe-commits

Differential Revision: https://reviews.llvm.org/D44778

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

tools/clang-format/ClangFormat.cpp

index 2718a72f43c57f6b97b323dde91c1e302fe4bb43..2909cddf3776b04523188600f9c33a3800ca0177 100644 (file)
@@ -22,6 +22,7 @@
 #include "clang/Rewrite/Core/Rewriter.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/FileSystem.h"
+#include "llvm/Support/Process.h"
 #include "llvm/Support/Signals.h"
 
 using namespace llvm;
@@ -339,11 +340,19 @@ static void PrintVersion(raw_ostream &OS) {
 int main(int argc, const char **argv) {
   llvm::sys::PrintStackTraceOnErrorSignal(argv[0]);
 
+  SmallVector<const char *, 256> Args;
+  llvm::SpecificBumpPtrAllocator<char> ArgAllocator;
+  std::error_code EC = llvm::sys::Process::GetArgumentVector(
+      Args, llvm::makeArrayRef(argv, argc), ArgAllocator);
+  if (EC) {
+    llvm::errs() << "error: couldn't get arguments: " << EC.message() << '\n';
+  }
+
   cl::HideUnrelatedOptions(ClangFormatCategory);
 
   cl::SetVersionPrinter(PrintVersion);
   cl::ParseCommandLineOptions(
-      argc, argv,
+      Args.size(), &Args[0],
       "A tool to format C/C++/Java/JavaScript/Objective-C/Protobuf code.\n\n"
       "If no arguments are specified, it formats the code from standard input\n"
       "and writes the result to the standard output.\n"