summaryrefslogtreecommitdiff
path: root/utils/skinupdater/skinupdater.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/skinupdater/skinupdater.c')
-rw-r--r--utils/skinupdater/skinupdater.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/utils/skinupdater/skinupdater.c b/utils/skinupdater/skinupdater.c
index 7e3d14e237..537c53ffbd 100644
--- a/utils/skinupdater/skinupdater.c
+++ b/utils/skinupdater/skinupdater.c
@@ -36,8 +36,6 @@ bool is_mono_display = false;
36bool use_new_vp_tags = true; 36bool use_new_vp_tags = true;
37 37
38 38
39
40
41/* dump "count" args to output replacing '|' with ',' except after the last count. 39/* dump "count" args to output replacing '|' with ',' except after the last count.
42 * return the amount of chars read. (start+return will be after the last | ) 40 * return the amount of chars read. (start+return will be after the last | )
43 */ 41 */
@@ -56,6 +54,10 @@ int dump_arg(FILE* out, const char* start, int count, bool close)
56 } 54 }
57 count--; 55 count--;
58 } else { 56 } else {
57 if (find_escape_character(start[l]))
58 {
59 PUTCH(out, '%');
60 }
59 PUTCH(out, start[l]); 61 PUTCH(out, start[l]);
60 } 62 }
61 l++; 63 l++;
@@ -264,6 +266,9 @@ top:
264 case '>': 266 case '>':
265 case ';': 267 case ';':
266 case '#': 268 case '#':
269 case ')':
270 case '(':
271 case ',':
267 PUTCH(out, *in++); 272 PUTCH(out, *in++);
268 goto top; 273 goto top;
269 break; 274 break;
@@ -291,6 +296,14 @@ top:
291 level--; 296 level--;
292 PUTCH(out, *in++); 297 PUTCH(out, *in++);
293 } 298 }
299 else if (*in == '|')
300 {
301 if (level == 0)
302 {
303 PUTCH(out, '%');
304 }
305 PUTCH(out, *in++);
306 }
294 else if (*in == '#') 307 else if (*in == '#')
295 { 308 {
296 while (*in && *in != '\n') 309 while (*in && *in != '\n')
@@ -300,6 +313,10 @@ top:
300 } 313 }
301 else 314 else
302 { 315 {
316 if (find_escape_character(*in))
317 {
318 PUTCH(out, '%');
319 }
303 PUTCH(out, *in++); 320 PUTCH(out, *in++);
304 } 321 }
305 } 322 }