summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Bieber <robby@bieberphoto.com>2010-06-02 05:45:34 +0000
committerRobert Bieber <robby@bieberphoto.com>2010-06-02 05:45:34 +0000
commit999990c23470bfa1340fe6356f85ae2e086cf052 (patch)
treeab1daf7a3c361267aeed5088e4bd6e011a2b1b29
parentf02a2446d3c05b824cbbb887834ce82a7cd8fe0b (diff)
downloadrockbox-999990c23470bfa1340fe6356f85ae2e086cf052.tar.gz
rockbox-999990c23470bfa1340fe6356f85ae2e086cf052.zip
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
-rw-r--r--utils/themeeditor/skin_parser.c4
-rw-r--r--utils/themeeditor/skin_scan.c6
-rw-r--r--utils/themeeditor/tag_table.c2
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)
257 if(!skin_parse_conditional(current, &cursor)) 257 if(!skin_parse_conditional(current, &cursor))
258 return NULL; 258 return NULL;
259 } 259 }
260 else if(*cursor == TAGSYM) 260 else if(*cursor == TAGSYM && !find_escape_character(cursor[1]))
261 { 261 {
262 if(!skin_parse_tag(current, &cursor)) 262 if(!skin_parse_tag(current, &cursor))
263 return NULL; 263 return NULL;
@@ -557,7 +557,7 @@ int skin_parse_tag(struct skin_element* element, char** document)
557 } 557 }
558 558
559 /* Checking for a premature end */ 559 /* Checking for a premature end */
560 if(*tag_args != '\0' && !(optional && !star)) 560 if(*tag_args != '\0' && !optional)
561 { 561 {
562 skin_error(INSUFFICIENT_ARGS); 562 skin_error(INSUFFICIENT_ARGS);
563 return 0; 563 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)
61 continue; 61 continue;
62 } 62 }
63 63
64 if(*cursor == TAGSYM)
65 cursor++;
66
64 if(*cursor == '\n') 67 if(*cursor == '\n')
65 { 68 {
66 skin_error(UNEXPECTED_NEWLINE); 69 skin_error(UNEXPECTED_NEWLINE);
@@ -77,6 +80,9 @@ char* scan_string(char** document)
77 buffer[length] = '\0'; 80 buffer[length] = '\0';
78 for(i = 0; i < length; i++) 81 for(i = 0; i < length; i++)
79 { 82 {
83 if(*cursor == TAGSYM)
84 cursor++;
85
80 if(*cursor == COMMENTSYM) 86 if(*cursor == COMMENTSYM)
81 { 87 {
82 skip_comment(&cursor); 88 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)
245 while(*current != lookup && *current != '\0') 245 while(*current != lookup && *current != '\0')
246 current++; 246 current++;
247 247
248 if(*current == lookup) 248 if(*current == lookup && *current)
249 return 1; 249 return 1;
250 else 250 else
251 return 0; 251 return 0;