summaryrefslogtreecommitdiff
path: root/apps/misc.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2010-06-07 03:44:11 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2010-06-07 03:44:11 +0000
commit5b0521c9aadee11886e2c92df7d768d5e76063a6 (patch)
treea6fc72ca29627bb53276c05a5606a559f78bae83 /apps/misc.c
parent53b619c6e80c9efc6993c23ff7b1035e8e101834 (diff)
downloadrockbox-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.c10
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++;
}