summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/skin_parser/skin_parser.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/skin_parser/skin_parser.c b/lib/skin_parser/skin_parser.c
index 5e4ef49074..2e5328637b 100644
--- a/lib/skin_parser/skin_parser.c
+++ b/lib/skin_parser/skin_parser.c
@@ -33,6 +33,7 @@
/* Global variables for the parser */
int skin_line = 0;
+int viewport_line = 0;
/* Auxiliary parsing functions (not visible at global scope) */
static struct skin_element* skin_parse_viewport(char** document);
@@ -64,6 +65,7 @@ struct skin_element* skin_parse(const char* document)
char* cursor = (char*)document; /*Keeps track of location in the document*/
skin_line = 1;
+ viewport_line = 0;
skin_clear_errors();
@@ -105,6 +107,7 @@ static struct skin_element* skin_parse_viewport(char** document)
retval->type = VIEWPORT;
retval->children_count = 1;
retval->line = skin_line;
+ viewport_line = skin_line;
struct skin_element** to_write = 0;
@@ -631,6 +634,13 @@ static int skin_parse_tag(struct skin_element* element, char** document)
cursor++;
skin_line++;
}
+
+ if((strcmp(tag->name, "Vf") == 0 || strcmp(tag->name, "Vb") == 0)
+ && *cursor == '\n' && skin_line == viewport_line)
+ {
+ *cursor++;
+ skin_line++;
+ }
*document = cursor;