Summary:
Escaping is not happening whenever any escapable characters is coming after
'\t' or '\n'. It will also fix invalid read of 1 byte which happens for string where
last charachter is '\t' or '\n' like "eina\t".
Test Plan:
Take a string like "eina\t ". Observe space which is followed by tab is not getting
escaped.
Signed-off-by: Prasoon Singh <prasoon.16@samsung.com>
Reviewers: shilpasingh, rajeshps, govi, cedric
Reviewed By: shilpasingh
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4847
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Change-Id: Ie2cd495024390b3fdb5dba81a660680d6b2fa9d1
Rajeev Ranjan (Rajeev) <rajeev.r@samsung.com> <rajeev.jnnce@gmail.com>
Subodh Kumar <s7158.kumar@samsung.com>
Michelle Legrand <legrand.michelle@outlook.com>
+Shilpa Singh <shilpa.singh@samsung.com> <shilpasingh.o@gmail.com>
+Prasoon Singh <prasoonsingh16@gmail.com>
Eet
---
{
*d = '\\';
d++;
+ *d = *s;
break;
}
case '\n':
{
*d = '\\'; d++;
- *d = 'n'; d++;
- s++;
+ *d = 'n';
break;
}
case '\t':
{
*d = '\\'; d++;
- *d = 't'; d++;
- s++;
+ *d = 't';
+ break;
+ }
+ default:
+ {
+ *d = *s;
break;
}
}
- *d = *s;
}
*d = 0;
return s2;
free(str);
free(ret);
+ str = malloc(sizeof(char) * 4);
+ strcpy(str, "a\t ");
+ ret = eina_str_escape(str);
+ fail_if(!eina_streq(ret, "a\\t\\ "));
+ free(str);
+ free(ret);
+
eina_shutdown();
}
END_TEST