From 999990c23470bfa1340fe6356f85ae2e086cf052 Mon Sep 17 00:00:00 2001 From: Robert Bieber Date: Wed, 2 Jun 2010 05:45:34 +0000 Subject: Theme Editor: Fixed a small bug with asterisk handling in tag parameter argument codes and fixed bugs with handling escaped characters git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26460 a1c6a512-1295-4272-9138-f99709370657 --- utils/themeeditor/skin_parser.c | 4 ++-- utils/themeeditor/skin_scan.c | 6 ++++++ utils/themeeditor/tag_table.c | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/utils/themeeditor/skin_parser.c b/utils/themeeditor/skin_parser.c index 6902679bc1..860970b7e7 100644 --- a/utils/themeeditor/skin_parser.c +++ b/utils/themeeditor/skin_parser.c @@ -257,7 +257,7 @@ struct skin_element* skin_parse_line_optional(char** document, int conditional) if(!skin_parse_conditional(current, &cursor)) return NULL; } - else if(*cursor == TAGSYM) + else if(*cursor == TAGSYM && !find_escape_character(cursor[1])) { if(!skin_parse_tag(current, &cursor)) return NULL; @@ -557,7 +557,7 @@ int skin_parse_tag(struct skin_element* element, char** document) } /* Checking for a premature end */ - if(*tag_args != '\0' && !(optional && !star)) + if(*tag_args != '\0' && !optional) { skin_error(INSUFFICIENT_ARGS); return 0; diff --git a/utils/themeeditor/skin_scan.c b/utils/themeeditor/skin_scan.c index 37c948fb3c..28d097125a 100644 --- a/utils/themeeditor/skin_scan.c +++ b/utils/themeeditor/skin_scan.c @@ -61,6 +61,9 @@ char* scan_string(char** document) continue; } + if(*cursor == TAGSYM) + cursor++; + if(*cursor == '\n') { skin_error(UNEXPECTED_NEWLINE); @@ -77,6 +80,9 @@ char* scan_string(char** document) buffer[length] = '\0'; for(i = 0; i < length; i++) { + if(*cursor == TAGSYM) + cursor++; + if(*cursor == COMMENTSYM) { skip_comment(&cursor); diff --git a/utils/themeeditor/tag_table.c b/utils/themeeditor/tag_table.c index 74eb6cbe26..6ec33023c2 100644 --- a/utils/themeeditor/tag_table.c +++ b/utils/themeeditor/tag_table.c @@ -245,7 +245,7 @@ int find_escape_character(char lookup) while(*current != lookup && *current != '\0') current++; - if(*current == lookup) + if(*current == lookup && *current) return 1; else return 0; -- cgit v1.2.3