Clang: Print command line arguments quoted

Change-Id: I82d664f259040b0024d9e1d4df4235442bc6ac73
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2015-11-16 16:47:46 +01:00
parent 499589096a
commit c88d18c310

View File

@@ -30,6 +30,8 @@
#include "commandlinearguments.h" #include "commandlinearguments.h"
#include <utf8string.h>
#include <iostream> #include <iostream>
namespace ClangBackEnd { namespace ClangBackEnd {
@@ -67,13 +69,23 @@ const char *CommandLineArguments::at(int position) const
return m_arguments.at(uint(position)); 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 void CommandLineArguments::print() const
{ {
using namespace std; using namespace std;
cerr << "Arguments to libclang:"; cerr << "Arguments to libclang:";
for (const auto &argument : m_arguments) for (const auto &argument : m_arguments)
cerr << ' ' << argument; cerr << ' ' << maybeQuoted(argument).constData();
cerr << endl; cerr << endl;
} }