summaryrefslogtreecommitdiff
path: root/apps/misc.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2010-08-10 14:15:03 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2010-08-10 14:15:03 +0000
commit489962dc4e34cc89c2bf9d124feb74954eb92c68 (patch)
treeef53892652379e43dde6dd013a2ad5081a718d25 /apps/misc.c
parenta547fc1b351f98f620ba61e240ebbf0729727e1c (diff)
downloadrockbox-489962dc4e34cc89c2bf9d124feb74954eb92c68.zip
rockbox-489962dc4e34cc89c2bf9d124feb74954eb92c68.tar.gz
rockbox-489962dc4e34cc89c2bf9d124feb74954eb92c68.tar.bz2
rockbox-489962dc4e34cc89c2bf9d124feb74954eb92c68.tar.xz
Fix FS#11526 - %Vf(<hex>) was acceptable on grey remotes with colour main
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27768 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/misc.c')
-rw-r--r--apps/misc.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/apps/misc.c b/apps/misc.c
index 9fbdd43..31f0ac4 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -930,20 +930,31 @@ int hex_to_rgb(const char* hex, int* color)
/* '0'-'3' are ASCII 0x30 to 0x33 */
#define is0123(x) (((x) & 0xfc) == 0x30)
-bool parse_color(char *text, int *value)
+bool parse_color(enum screen_type screen, char *text, int *value)
{
(void)text; (void)value; /* silence warnings on mono bitmap */
+ int depth = screens[screen].depth;
+
#ifdef HAVE_LCD_COLOR
- if (hex_to_rgb(text, value) < 0)
- return false;
+ if (depth > 2)
+ {
+ if (hex_to_rgb(text, value) < 0)
+ return false;
+ else
+ return true;
+ }
#endif
#if LCD_DEPTH == 2 || (defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH == 2)
- if (text[1] != '\0' || !is0123(*text))
- return false;
- *value = *text - '0';
+ if (depth == 2)
+ {
+ if (text[1] != '\0' || !is0123(*text))
+ return false;
+ *value = *text - '0';
+ return true;
+ }
#endif
- return true;
+ return false;
}
/* only used in USB HID and set_time screen */