From 8db32ddfee2577cd338e88134eb52823c04dec80 Mon Sep 17 00:00:00 2001 From: Tomer Shalev Date: Fri, 4 Dec 2009 13:10:06 +0000 Subject: Skin parser: Use parse_list() when possible git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23846 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_parser.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) (limited to 'apps/gui') diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index 7c889346a1..17fd82b8b3 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c @@ -1099,15 +1099,9 @@ static int parse_albumart_load(const char *wps_bufptr, /* extract max width data */ if (*_pos != '|') { - if (!isdigit(*_pos)) /* malformed token: e.g. %Cl|7|59|# */ + _pos = parse_list("d", NULL, '|', _pos, &aa->width); + if (!_pos || _pos > newline || *_pos != '|') return WPS_ERROR_INVALID_PARAM; - - aa->width = atoi(_pos); - - _pos = strchr(_pos, '|'); - if (!_pos || _pos > newline) - return WPS_ERROR_INVALID_PARAM; /* malformed token: no | after width field - e.g. %Cl|7|59|200\n */ } /* parsing height field */ @@ -1148,15 +1142,9 @@ static int parse_albumart_load(const char *wps_bufptr, /* extract max height data */ if (*_pos != '|') { - if (!isdigit(*_pos)) - return WPS_ERROR_INVALID_PARAM; /* malformed token e.g. %Cl|7|59|200|@ */ - - aa->height = atoi(_pos); - - _pos = strchr(_pos, '|'); - if (!_pos || _pos > newline) - return WPS_ERROR_INVALID_PARAM; /* malformed token: no closing | - e.g. %Cl|7|59|200|200\n */ + _pos = parse_list("d", NULL, '|', _pos, &aa->height); + if (!_pos || _pos > newline || *_pos != '|') + return WPS_ERROR_INVALID_PARAM; } /* if we got here, we parsed everything ok .. ! */ @@ -1179,9 +1167,7 @@ static int parse_albumart_load(const char *wps_bufptr, albumart_slot = playback_claim_aa_slot(&dimensions); - if (albumart_slot < 0) /* didn't get a slot ? */ - return skip_end_of_line(wps_bufptr); - else + if (0 <= albumart_slot) wps_data->playback_aa_slot = albumart_slot; /* Skip the rest of the line */ -- cgit v1.2.3