summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qcssparser.cpp
diff options
context:
space:
mode:
authorChristian Ehrlicher <ch.ehrlicher@gmx.de>2018-10-03 09:59:06 +0200
committerLiang Qi <liang.qi@qt.io>2018-10-12 22:01:14 +0000
commitbbe08d6b686456297ad4ab8c0923c3126e02e2b3 (patch)
tree3234407237c06cac2af592bdea362727ca13e4e4 /src/gui/text/qcssparser.cpp
parent473d9a5fc763d114fbfa1c0d2b5f8d03cab6e972 (diff)
QCss: properly parse functions which contains additional spaces
When there were additional spaces between the function definition and the first parameter, the parser failed to parse it when it contained another function (e.g. 'qlineargradient(... rgb() ...)'). The reason for this was that ::until() needs the function at index-1 so it can correctly count the opening parenthesis. Fixes: QTBUG-61795 Change-Id: I992f556e7f8cd45550f83bc90aa8de2b4e905574 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'src/gui/text/qcssparser.cpp')
-rw-r--r--src/gui/text/qcssparser.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp
index 70623939e1..325fd26a31 100644
--- a/src/gui/text/qcssparser.cpp
+++ b/src/gui/text/qcssparser.cpp
@@ -2707,8 +2707,10 @@ bool Parser::parseFunction(QString *name, QString *args)
{
*name = lexem();
name->chop(1);
+ // until(RPAREN) needs FUNCTION token at index-1 to work properly
+ int start = index;
skipSpace();
- const int start = index;
+ std::swap(start, index);
if (!until(RPAREN)) return false;
for (int i = start; i < index - 1; ++i)
args->append(symbols.at(i).lexem());