git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@58511
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
{
unsigned char *p1 = buf;
unsigned char *p2 = buf1;
-
-#if 0
+ int in_string = 0;
+
+#if 0 /* old behavior */
while (p1 != limit) *p2++ = *p1++;
-#else
+#else /* new one - handle \ escapes if not in string */
while (p1 != limit)
{
- if (*p1 == '\\')
+ if (!in_string)
{
- p1++;
- if (p1 != limit)
+ if (*p1 == '"') in_string = 1;
+ if (*p1 == '\\')
+ {
+ p1++;
+ if (p1 != limit) *p2++ = *p1++;
+ }
+ else
*p2++ = *p1++;
}
else
{
+ if ((*p1 == '"') && (p1 > buf) && (p1[-1] != '\\'))
+ in_string = 0;
*p2++ = *p1++;
}
}