summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-07-03 13:54:17 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-08-26 23:57:08 +0200
commit3eb6378f78d002897a611f348abae090d9612685 (patch)
tree23b7064f16a17246cf9d46555bb05538f7952b8f
parent87fcdcba087f37171511fa58451cbe1ee5673169 (diff)
downloadqttools-3eb6378f78d002897a611f348abae090d9612685.tar.gz
make split_value_list() even less sane again
contrary to what one may expect, it's actually *not* supposed to remove the meta-characters it interprets. luckily, this function is not used much any more ... Change-Id: I2b60f9b173140da78db2b07b596cc2e5f6e6d555 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> (cherry picked from qtbase/783181cfc11e995ad678237ebc0025a2a023c88c)
-rw-r--r--src/linguist/shared/qmakeevaluator.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/linguist/shared/qmakeevaluator.cpp b/src/linguist/shared/qmakeevaluator.cpp
index 18cb6e973..6bd1c58d4 100644
--- a/src/linguist/shared/qmakeevaluator.cpp
+++ b/src/linguist/shared/qmakeevaluator.cpp
@@ -277,6 +277,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) {
@@ -284,7 +286,7 @@ ProStringList QMakeEvaluator::split_value_list(const QString &vals, const ProFil
case '\'':
quote = unicode;
hadWord = true;
- continue;
+ break;
case ' ':
case '\t':
if (!quote) {
@@ -295,22 +297,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);