From 67e400a3c91b3a0e59cac083a3023c75242ff7ef Mon Sep 17 00:00:00 2001 From: Subhransu Mohanty Date: Thu, 16 Jun 2016 15:26:28 +0900 Subject: [PATCH] svg_loader: Fixed color attribute parser Reviewers: cedric, jpeg Reviewed By: jpeg Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4049 --- src/bin/edje/edje_svg_loader.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/bin/edje/edje_svg_loader.c b/src/bin/edje/edje_svg_loader.c index 7ee5404f8d..9f76db200f 100644 --- a/src/bin/edje/edje_svg_loader.c +++ b/src/bin/edje/edje_svg_loader.c @@ -260,14 +260,15 @@ _to_color(const char *str, int *r, int *g, int *b, char** ref) if (len == 4 && str[0] == '#') { + // case for "#456" should be interprete as "#445566" if (isxdigit(str[1]) && isxdigit(str[2]) && isxdigit(str[3])) { - char tmp[2] = { '\0', '\0' }; - tmp[0] = str[1]; *r = strtol(tmp, NULL, 16); - tmp[0] = str[2]; *g = strtol(tmp, NULL, 16); - tmp[0] = str[3]; *b = strtol(tmp, NULL, 16); + char tmp[3] = { '\0', '\0', '\0' }; + tmp[0] = str[1]; tmp[1] = str[1]; *r = strtol(tmp, NULL, 16); + tmp[0] = str[2]; tmp[1] = str[2]; *g = strtol(tmp, NULL, 16); + tmp[0] = str[3]; tmp[1] = str[3]; *b = strtol(tmp, NULL, 16); } } else if (len == 7 && str[0] == '#')