From: Enlightenment S. <no-...@en...> - 2010-02-06 21:42:57
|
Log: Add eina_str_escape Author: englebass Date: 2010-02-06 13:42:51 -0800 (Sat, 06 Feb 2010) New Revision: 45949 Modified: trunk/eina/src/include/eina_str.h trunk/eina/src/lib/eina_str.c Modified: trunk/eina/src/include/eina_str.h =================================================================== --- trunk/eina/src/include/eina_str.h 2010-02-06 21:42:37 UTC (rev 45948) +++ trunk/eina/src/include/eina_str.h 2010-02-06 21:42:51 UTC (rev 45949) @@ -27,7 +27,9 @@ EAPI char *eina_str_convert(const char *enc_from, const char *enc_to, const char *text); +EAPI char *eina_str_escape(const char *str); + /** * @brief Join two strings of known length. * Modified: trunk/eina/src/lib/eina_str.c =================================================================== --- trunk/eina/src/lib/eina_str.c 2010-02-06 21:42:37 UTC (rev 45948) +++ trunk/eina/src/lib/eina_str.c 2010-02-06 21:42:51 UTC (rev 45949) @@ -421,3 +421,31 @@ return NULL; #endif } + +/** + * @brief Put a \ before and Space( ), \ or ' in a string. + * + * @param str the string to escape + * + * A newly allocated string is returned. + */ +EAPI char * +eina_str_escape(const char *str) +{ + char *s2, *d; + const char *s; + + s2 = malloc((strlen(str) * 2) + 1); + if (!s2) return NULL; + for (s = str, d = s2; *s != 0; s++, d++) + { + if ((*s == ' ') || (*s == '\\') || (*s == '\'')) + { + *d = '\\'; + d++; + } + *d = *s; + } + *d = 0; + return s2; +} |