diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp index 20196eb0237ff40c49dc976335c97b5653708f25..1a95cafdec9d4e44a9f1dd4f75d4fff5f1000720 100644 --- a/src/shared/proparser/qmakeevaluator.cpp +++ b/src/shared/proparser/qmakeevaluator.cpp @@ -265,6 +265,8 @@ ProStringList QMakeEvaluator::split_value_list(const QString &vals, const ProFil ushort unicode = vals_data[x].unicode(); if (unicode == quote) { quote = 0; + hadWord = true; + build += QChar(unicode); continue; } switch (unicode) { @@ -272,7 +274,7 @@ ProStringList QMakeEvaluator::split_value_list(const QString &vals, const ProFil case '\'': quote = unicode; hadWord = true; - continue; + break; case ' ': case '\t': if (!quote) { @@ -283,22 +285,23 @@ ProStringList QMakeEvaluator::split_value_list(const QString &vals, const ProFil } continue; } - build += QChar(unicode); break; case '\\': if (x + 1 != vals_len) { ushort next = vals_data[++x].unicode(); - if (next == '\'' || next == '"' || next == '\\') + if (next == '\'' || next == '"' || next == '\\') { + build += QChar(unicode); unicode = next; - else + } else { --x; + } } // fallthrough default: hadWord = true; - build += QChar(unicode); break; } + build += QChar(unicode); } if (hadWord) ret << ProString(build).setSource(source);