diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2010-08-05 11:28:35 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2010-08-05 11:28:35 +0000 |
commit | 145571d9b5c2b6b1028fbb95388f933a3675ebfa (patch) | |
tree | 78ca776063cc998b20dd4e6b1a3f8746eee5c50b /lib | |
parent | a0dd4cd057a3e701bf25fc8ac19d0d025f64f361 (diff) | |
download | rockbox-145571d9b5c2b6b1028fbb95388f933a3675ebfa.tar.gz rockbox-145571d9b5c2b6b1028fbb95388f933a3675ebfa.zip |
Add a T type to the tag table which allows parameters to be a single tag
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27716 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'lib')
-rw-r--r-- | lib/skin_parser/skin_parser.c | 11 | ||||
-rw-r--r-- | lib/skin_parser/tag_table.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/skin_parser/skin_parser.c b/lib/skin_parser/skin_parser.c index f92a52774d..fba074f00c 100644 --- a/lib/skin_parser/skin_parser.c +++ b/lib/skin_parser/skin_parser.c @@ -673,6 +673,17 @@ static int skin_parse_tag(struct skin_element* element, const char** document) if(!element->params[i].data.code) return 0; } + else if (tolower(*tag_args) == 't') + { + struct skin_element* child = skin_alloc_element(); + child->type = TAG; + if (!skin_parse_tag(child, &cursor)) + return 0; + child->next = NULL; + element->params[i].type = CODE; + element->params[i].data.code = child; + } + skip_whitespace(&cursor); diff --git a/lib/skin_parser/tag_table.h b/lib/skin_parser/tag_table.h index 0266c2f6b5..2ba43b1bac 100644 --- a/lib/skin_parser/tag_table.h +++ b/lib/skin_parser/tag_table.h @@ -273,6 +273,7 @@ enum skin_token_type { * F - Required file name * f - Nullable file name * C - Required skin code + * T - Required single skin tag * N - any amount of strings.. must be the last param in the list * \n - causes the parser to eat everything up to and including the \n * MUST be the last character of the prams string |