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)
This commit is contained in:
Oswald Buddenhagen
2013-07-03 13:54:17 +02:00
parent eff4a5dcee
commit 8b6c53733e

View File

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