diff options
| author | Jonathan Gordon <rockbox@jdgordon.info> | 2010-06-07 03:44:11 +0000 |
|---|---|---|
| committer | Jonathan Gordon <rockbox@jdgordon.info> | 2010-06-07 03:44:11 +0000 |
| commit | 5b0521c9aadee11886e2c92df7d768d5e76063a6 (patch) | |
| tree | a6fc72ca29627bb53276c05a5606a559f78bae83 /apps/misc.c | |
| parent | 53b619c6e80c9efc6993c23ff7b1035e8e101834 (diff) | |
| download | rockbox-5b0521c9aadee11886e2c92df7d768d5e76063a6.zip rockbox-5b0521c9aadee11886e2c92df7d768d5e76063a6.tar.gz rockbox-5b0521c9aadee11886e2c92df7d768d5e76063a6.tar.bz2 rockbox-5b0521c9aadee11886e2c92df7d768d5e76063a6.tar.xz | |
Changeover to the new skin format. SkinBreakingChange in the wiki has the runown of the changes.
Major changes are paramerterised tags now use %tag(param,param), colours are removed from the %V() tag, %Vi gets a required (but can be -) label as its first param).
utils/skinupdater/ has a program to update individual skins, and a perl script to update a whole zip.
Themesite will be unusable for the time being (you should be able to upload new themes once it updates checkwps though).
I obviously havnt tested every updated wps in this change so let me know if one doesnt load
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26641 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/misc.c')
| -rw-r--r-- | apps/misc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/apps/misc.c b/apps/misc.c index 747abe0..d0300f0 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -967,6 +967,7 @@ const char* parse_list(const char *fmt, uint32_t *set_vals, const char** s; int* d; bool set, is_negative; + bool is_last_var; int i=0; va_start(ap, str); @@ -981,6 +982,7 @@ const char* parse_list(const char *fmt, uint32_t *set_vals, goto err; p++; } + is_last_var = fmt[1] == '\0'; set = false; switch (*fmt++) { @@ -988,9 +990,9 @@ const char* parse_list(const char *fmt, uint32_t *set_vals, s = va_arg(ap, const char **); *s = p; - while (*p && *p != sep) + while (*p && *p != sep && *p != ')') p++; - set = (s[0][0]!='-') && (s[0][1]!=sep) ; + set = (s[0][0]!='-') && (s[0][1]!=sep && s[0][1]!=')') ; break; case 'd': /* int */ @@ -1028,7 +1030,7 @@ const char* parse_list(const char *fmt, uint32_t *set_vals, { if (!set_vals || *p != '-') goto err; - while (*p && *p != sep) + while (*p && *p != sep && (!is_last_var || (is_last_var && *p!=')'))) p++; } else @@ -1053,7 +1055,7 @@ const char* parse_list(const char *fmt, uint32_t *set_vals, goto err; else { - while (*p && *p != sep) + while (*p && *p != sep && (!is_last_var || (is_last_var && *p!=')'))) p++; } |