diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/skinupdater/skinupdater.c | 21 |
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; | |||
36 | bool use_new_vp_tags = true; | 36 | bool 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 | } |