diff options
| author | Jonathan Gordon <rockbox@jdgordon.info> | 2012-07-05 22:41:10 +1000 |
|---|---|---|
| committer | Jonathan Gordon <rockbox@jdgordon.info> | 2012-07-05 22:41:10 +1000 |
| commit | 4c94b98422b7a0e0ef1eb93eac2f3abd7fdfa9b8 (patch) | |
| tree | 7cec2d1b85368dc10f5de2e3ec276e3a91810953 /lib | |
| parent | c413591e7ee1184efde80283705d3061d90432f8 (diff) | |
| download | rockbox-4c94b98422b7a0e0ef1eb93eac2f3abd7fdfa9b8.zip rockbox-4c94b98422b7a0e0ef1eb93eac2f3abd7fdfa9b8.tar.gz rockbox-4c94b98422b7a0e0ef1eb93eac2f3abd7fdfa9b8.tar.bz2 rockbox-4c94b98422b7a0e0ef1eb93eac2f3abd7fdfa9b8.tar.xz | |
skin_engine: Fix a obscure parser bug
Tag params where a [] group is followed (but not immediatly) by
a * will not parse correctly. e.g [si]iii|s* will attempt to find
an 'i' after the second s instead of looping s's
Change-Id: I3982f726b6539818f8332334b263b673259f98ef
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/skin_parser/skin_parser.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/skin_parser/skin_parser.c b/lib/skin_parser/skin_parser.c index 44a1c03..748ea5d 100644 --- a/lib/skin_parser/skin_parser.c +++ b/lib/skin_parser/skin_parser.c @@ -617,7 +617,7 @@ static int skin_parse_tag(struct skin_element* element, const char** document) /* Checking for comments */ if(*cursor == COMMENTSYM) skip_comment(&cursor); - + if (*tag_args == '[') { /* we need to guess which type of param it is. @@ -782,7 +782,7 @@ static int skin_parse_tag(struct skin_element* element, const char** document) { if (i+1 == num_args) tag_args += 2; - else if (open_square_bracket) + else if (open_square_bracket && *tag_args == ']') { tag_args = open_square_bracket; open_square_bracket = NULL; |