summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/skin_parser/skin_debug.c72
1 files changed, 31 insertions, 41 deletions
diff --git a/lib/skin_parser/skin_debug.c b/lib/skin_parser/skin_debug.c
index ce5af7d0c9..bcf43ab5e4 100644
--- a/lib/skin_parser/skin_debug.c
+++ b/lib/skin_parser/skin_debug.c
@@ -135,46 +135,45 @@ void skin_debug_tree(struct skin_element* root)
135 switch(current->type) 135 switch(current->type)
136 { 136 {
137 case UNKNOWN: 137 case UNKNOWN:
138 printf("[ Unknown element.. error\n]"); 138 printf("* Unknown element.. error *\n");
139 break; 139 break;
140 140
141 case VIEWPORT: 141 case VIEWPORT:
142 printf("[ Viewport \n"); 142 printf("{ Viewport \n");
143 143
144 debug_indent_level++; 144 debug_indent_level++;
145 skin_debug_tree(current->children[0]); 145 skin_debug_tree(current->children[0]);
146 debug_indent_level--; 146 debug_indent_level--;
147 147
148 printf("]"); 148 printf("}");
149 break; 149 break;
150 150
151 case TEXT: 151 case TEXT:
152 text = current->data; 152 text = current->data;
153 printf("[ Plain text on line %d : %s ]\n", current->line, text); 153 printf("* Plain text on line %d: \"%s\"\n", current->line, text);
154 break; 154 break;
155 155
156 case COMMENT: 156 case COMMENT:
157 text = current->data; 157 printf("# Comment on line %d\n ", current->line);
158 printf("[ Comment on line %d: ", current->line);
159 for(i = 0; i < (int)strlen(text); i++)
160 {
161 if(text[i] == '\n')
162 printf("\\n");
163 else
164 printf("%c", text[i]);
165 }
166 printf(" ]\n");
167 break; 158 break;
168 159
169 case TAG: 160 case TAG:
170 printf("[ %s tag on line %d with %d arguments\n", 161 if (current->params_count)
171 current->tag->name, 162 {
172 current->line, current->params_count); 163 printf("( %%%s tag on line %d with %d arguments\n",
173 debug_indent_level++; 164 current->tag->name,
174 skin_debug_params(current->params_count, current->params); 165 current->line, current->params_count);
175 debug_indent_level--; 166 debug_indent_level++;
176 skin_debug_indent(); 167 skin_debug_params(current->params_count, current->params);
177 printf("]\n"); 168 debug_indent_level--;
169 skin_debug_indent();
170 printf(")\n");
171 }
172 else
173 {
174 printf("[ %%%s tag on line %d ]\n",
175 current->tag->name, current->line);
176 }
178 177
179 break; 178 break;
180 179
@@ -193,22 +192,14 @@ void skin_debug_tree(struct skin_element* root)
193 break; 192 break;
194 193
195 case CONDITIONAL: 194 case CONDITIONAL:
196 printf("[ Conditional tag on line %d with %d enumerations \n", 195 printf("< Conditional tag %%?%s on line %d with %d enumerations \n",
197 current->line, current->children_count - 1); 196 current->tag->name, current->line, current->children_count);
198 debug_indent_level++; 197 debug_indent_level++;
199 198
200 skin_debug_indent(); 199 for(i = 0; i < current->children_count; i++)
201 printf("[ Condition tag \n");
202 debug_indent_level++;
203 skin_debug_tree(current->children[0]);
204 debug_indent_level--;
205 skin_debug_indent();
206 printf("]\n");
207
208 for(i = 1; i < current->children_count; i++)
209 { 200 {
210 skin_debug_indent(); 201 skin_debug_indent();
211 printf("[ Enumeration %d\n", i - 1); 202 printf("[ Enumeration %d\n", i);
212 debug_indent_level++; 203 debug_indent_level++;
213 skin_debug_tree(current->children[i]); 204 skin_debug_tree(current->children[i]);
214 debug_indent_level--; 205 debug_indent_level--;
@@ -218,7 +209,7 @@ void skin_debug_tree(struct skin_element* root)
218 209
219 debug_indent_level--; 210 debug_indent_level--;
220 skin_debug_indent(); 211 skin_debug_indent();
221 printf("]\n"); 212 printf(">\n");
222 213
223 214
224 break; 215 break;
@@ -251,29 +242,28 @@ void skin_debug_params(int count, struct skin_tag_parameter params[])
251 switch(params[i].type) 242 switch(params[i].type)
252 { 243 {
253 case DEFAULT: 244 case DEFAULT:
254 printf("[-]"); 245 printf("-");
255 break; 246 break;
256 247
257 case STRING: 248 case STRING:
258 printf("[%s]", params[i].data.text); 249 printf("string: \"%s\"", params[i].data.text);
259 break; 250 break;
260 251
261 case INTEGER: 252 case INTEGER:
262 printf("[%d]", params[i].data.number); 253 printf("integer: %d", params[i].data.number);
263 break; 254 break;
264 255
265 case DECIMAL: 256 case DECIMAL:
266 printf("[%d.%d]", params[i].data.number/10, 257 printf("decimal: %d.%d", params[i].data.number/10,
267 params[i].data.number%10); 258 params[i].data.number%10);
268 break; 259 break;
269 260
270 case CODE: 261 case CODE:
271 printf("[ WPS Code: \n"); 262 printf("Skin Code: \n");
272 debug_indent_level++; 263 debug_indent_level++;
273 skin_debug_tree(params[i].data.code); 264 skin_debug_tree(params[i].data.code);
274 debug_indent_level--; 265 debug_indent_level--;
275 skin_debug_indent(); 266 skin_debug_indent();
276 printf("]");
277 break; 267 break;
278 } 268 }
279 269