diff options
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) | |||
673 | if(!element->params[i].data.code) | 673 | if(!element->params[i].data.code) |
674 | return 0; | 674 | return 0; |
675 | } | 675 | } |
676 | else if (tolower(*tag_args) == 't') | ||
677 | { | ||
678 | struct skin_element* child = skin_alloc_element(); | ||
679 | child->type = TAG; | ||
680 | if (!skin_parse_tag(child, &cursor)) | ||
681 | return 0; | ||
682 | child->next = NULL; | ||
683 | element->params[i].type = CODE; | ||
684 | element->params[i].data.code = child; | ||
685 | } | ||
686 | |||
676 | 687 | ||
677 | skip_whitespace(&cursor); | 688 | skip_whitespace(&cursor); |
678 | 689 | ||
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 { | |||
273 | * F - Required file name | 273 | * F - Required file name |
274 | * f - Nullable file name | 274 | * f - Nullable file name |
275 | * C - Required skin code | 275 | * C - Required skin code |
276 | * T - Required single skin tag | ||
276 | * N - any amount of strings.. must be the last param in the list | 277 | * N - any amount of strings.. must be the last param in the list |
277 | * \n - causes the parser to eat everything up to and including the \n | 278 | * \n - causes the parser to eat everything up to and including the \n |
278 | * MUST be the last character of the prams string | 279 | * MUST be the last character of the prams string |