diff --git a/legacy/edje/src/bin/edje_cc_parse.c b/legacy/edje/src/bin/edje_cc_parse.c index 6b5ce8cd51..5f7eea3a6b 100644 --- a/legacy/edje/src/bin/edje_cc_parse.c +++ b/legacy/edje/src/bin/edje_cc_parse.c @@ -339,12 +339,11 @@ next_token(char *p, char *end, char **new_p, int *delim) while (*p) { - if (*p == '"') - memmove(p, p + 1, strlen(p)); - else if ((*p == '\\') && (*(p + 1) == '"')) - memmove(p, p + 1, strlen(p)); - else if ((*p == '\\') && (*(p + 1) == '\\')) - memmove(p, p + 1, strlen(p)); + if ((*p == '\"') && + ((p == tok) || ((p > tok) && (*(p - 1) != '\\')))) + { + memmove(p, p + 1, strlen(p)); + } else if ((*p == '\\') && (*(p + 1) == 'n')) { memmove(p, p + 1, strlen(p)); @@ -355,6 +354,12 @@ next_token(char *p, char *end, char **new_p, int *delim) memmove(p, p + 1, strlen(p)); *p = '\t'; } + else if (*p == '\\') + { + memmove(p, p + 1, strlen(p)); + p++; + if (*p == '\\') p++; + } else p++; }