summaryrefslogtreecommitdiff
path: root/lib/skin_parser
diff options
context:
space:
mode:
Diffstat (limited to 'lib/skin_parser')
-rw-r--r--lib/skin_parser/skin_parser.c11
-rw-r--r--lib/skin_parser/tag_table.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/skin_parser/skin_parser.c b/lib/skin_parser/skin_parser.c
index f92a527..fba074f 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 0266c2f..2ba43b1 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