aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/compilationdatabaseprojectmanager
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2018-10-31 12:38:22 +0100
committerIvan Donchevskii <ivan.donchevskii@qt.io>2018-11-01 10:02:53 +0000
commitcb9df98efb1eaf1849a70ae515b8b2405131ce13 (patch)
tree7796e13ced7493eeee4a90e618cc819e366b1a44 /src/plugins/compilationdatabaseprojectmanager
parent1442a1186d59d7fafa8da4ba3f9d61a51c2506ac (diff)
CompilationDatabase: Fix escaped quotes handling
Change-Id: Iaecd38f921bd719899e478a76d8a8b9d4230a7cc Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'src/plugins/compilationdatabaseprojectmanager')
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
index 433495264e6..106d0926b97 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
@@ -57,12 +57,14 @@ public:
{}
};
-static QStringList splitCommandLine(const QString &line)
+static QStringList splitCommandLine(QString commandLine)
{
QStringList result;
bool insideQuotes = false;
- for (const QString &part : line.split(QRegularExpression("\""))) {
+ // Remove escaped quotes.
+ commandLine.replace("\\\"", "'");
+ for (const QString &part : commandLine.split(QRegularExpression("\""))) {
if (insideQuotes) {
const QString quotedPart = "\"" + part + "\"";
if (result.last().endsWith("="))