From 145571d9b5c2b6b1028fbb95388f933a3675ebfa Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Thu, 5 Aug 2010 11:28:35 +0000 Subject: 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 --- lib/skin_parser/skin_parser.c | 11 +++++++++++ lib/skin_parser/tag_table.h | 1 + 2 files changed, 12 insertions(+) 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 -- cgit v1.2.3