summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/themeeditor/parsetreenode.cpp9
-rw-r--r--utils/themeeditor/skin_parser.c18
2 files changed, 22 insertions, 5 deletions
diff --git a/utils/themeeditor/parsetreenode.cpp b/utils/themeeditor/parsetreenode.cpp
index a93295f357..3f8936a54c 100644
--- a/utils/themeeditor/parsetreenode.cpp
+++ b/utils/themeeditor/parsetreenode.cpp
@@ -67,10 +67,13 @@ ParseTreeNode::ParseTreeNode(struct skin_element* data, ParseTreeNode* parent)
67 67
68 case VIEWPORT: 68 case VIEWPORT:
69 case LINE: 69 case LINE:
70 for(struct skin_element* current = data->children[0]; current; 70 for(int i = 0; i < data->children_count; i++)
71 current = current->next)
72 { 71 {
73 children.append(new ParseTreeNode(current, this)); 72 for(struct skin_element* current = data->children[i]; current;
73 current = current->next)
74 {
75 children.append(new ParseTreeNode(current, this));
76 }
74 } 77 }
75 break; 78 break;
76 79
diff --git a/utils/themeeditor/skin_parser.c b/utils/themeeditor/skin_parser.c
index 4f7acf90fb..9fd9001790 100644
--- a/utils/themeeditor/skin_parser.c
+++ b/utils/themeeditor/skin_parser.c
@@ -98,7 +98,6 @@ struct skin_element* skin_parse_viewport(char** document)
98 98
99 retval = skin_alloc_element(); 99 retval = skin_alloc_element();
100 retval->type = VIEWPORT; 100 retval->type = VIEWPORT;
101 retval->children = skin_alloc_children(1);
102 retval->children_count = 1; 101 retval->children_count = 1;
103 retval->line = skin_line; 102 retval->line = skin_line;
104 103
@@ -109,6 +108,21 @@ struct skin_element* skin_parse_viewport(char** document)
109 108
110 int sublines = 0; /* Flag for parsing sublines */ 109 int sublines = 0; /* Flag for parsing sublines */
111 110
111 /* Parsing out the viewport tag if there is one */
112 if(check_viewport(cursor))
113 {
114 retval->children_count = 2;
115 retval->children = skin_alloc_children(2);
116 retval->children[0] = skin_alloc_element();
117 skin_parse_tag(retval->children[0], &cursor);
118 }
119 else
120 {
121 retval->children_count = 1;
122 retval->children = skin_alloc_children(1);
123 }
124
125
112 while(*cursor != '\0' && !(check_viewport(cursor) && cursor != *document)) 126 while(*cursor != '\0' && !(check_viewport(cursor) && cursor != *document))
113 { 127 {
114 128
@@ -182,7 +196,7 @@ struct skin_element* skin_parse_viewport(char** document)
182 196
183 *document = cursor; 197 *document = cursor;
184 198
185 retval->children[0] = root; 199 retval->children[retval->children_count - 1] = root;
186 return retval; 200 return retval;
187 201
188} 202}