From c88d18c310637a138b9f01b54151b1d7c8e3eb16 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Mon, 16 Nov 2015 16:47:46 +0100 Subject: Clang: Print command line arguments quoted Change-Id: I82d664f259040b0024d9e1d4df4235442bc6ac73 Reviewed-by: Marco Bubke --- .../clangbackend/ipcsource/commandlinearguments.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/tools/clangbackend/ipcsource/commandlinearguments.cpp b/src/tools/clangbackend/ipcsource/commandlinearguments.cpp index 41c80430be..5a0aa0e8e9 100644 --- a/src/tools/clangbackend/ipcsource/commandlinearguments.cpp +++ b/src/tools/clangbackend/ipcsource/commandlinearguments.cpp @@ -30,6 +30,8 @@ #include "commandlinearguments.h" +#include + #include namespace ClangBackEnd { @@ -67,13 +69,23 @@ const char *CommandLineArguments::at(int position) const return m_arguments.at(uint(position)); } +static Utf8String maybeQuoted(const char *argumentAsCString) +{ + const auto quotationMark = Utf8StringLiteral("\""); + const auto argument = Utf8String::fromUtf8(argumentAsCString); + + if (argument.contains(quotationMark)) + return argument; + + return quotationMark + argument + quotationMark; +} + void CommandLineArguments::print() const { using namespace std; - cerr << "Arguments to libclang:"; for (const auto &argument : m_arguments) - cerr << ' ' << argument; + cerr << ' ' << maybeQuoted(argument).constData(); cerr << endl; } -- cgit v1.2.1