diff options
Diffstat (limited to 'glcdskin')
-rw-r--r-- | glcdskin/function.c | 10 |
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) { |