summaryrefslogtreecommitdiff
path: root/glcdskin
diff options
context:
space:
mode:
Diffstat (limited to 'glcdskin')
-rw-r--r--glcdskin/function.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/glcdskin/function.c b/glcdskin/function.c
index 0fe39b3..03b1b32 100644
--- a/glcdskin/function.c
+++ b/glcdskin/function.c
@@ -137,9 +137,17 @@ bool cSkinFunction::Parse(const std::string & Text)
}
else
{
+ bool inToken = false;
+
// expression
for (; *ptr; ++ptr)
{
+
+ if (*ptr == '{')
+ inToken = true;
+ else if (inToken && *ptr == '}')
+ inToken = false;
+
if (*ptr == '(')
{
if (inExpr++ == 0)
@@ -163,7 +171,7 @@ bool cSkinFunction::Parse(const std::string & Text)
last = ptr + 1;
}
}
- else if (*ptr == ',' || *ptr == ')')
+ else if ( ( (!inToken) && (*ptr == ',') ) || *ptr == ')')
{
if (inExpr == 0)
{