Add a new API function, written at least twice in app_voicemail.c

and likely in other places too.

This is quite useful when placing mail/html stuff in config files.

 /*!
   \brief Convert some C escape sequences (\b\f\n\r\t) into the
        equivalent characters.
   \brief s The string to be converted (will be modified).
   \return The converted string.
  */
 char *ast_unescape_c(char *s);
 




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@93950 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Luigi Rizzo
2007-12-19 17:09:01 +00:00
parent 8afacf169b
commit 8e4360b072
2 changed files with 45 additions and 0 deletions

View File

@@ -1020,6 +1020,43 @@ char *ast_unescape_semicolon(char *s)
return s;
}
/* !\brief unescape some C sequences in place, return pointer to the original string.
*/
char *ast_unescape_c(char *src)
{
char c, *ret, *dst;
if (src == NULL)
return NULL;
for (ret = dst = src; (c = *src++); *dst++ = c ) {
if (c != '\\')
continue; /* copy char at the end of the loop */
switch ((c = *src++)) {
case '\0': /* special, trailing '\' */
c = '\\';
break;
case 'b': /* backspace */
c = '\b';
break;
case 'f': /* form feed */
c = '\f';
break;
case 'n':
c = '\n';
break;
case 'r':
c = '\r';
break;
case 't':
c = '\t';
break;
}
/* default, use the char literally */
}
*dst = '\0';
return ret;
}
int ast_build_string_va(char **buffer, size_t *space, const char *fmt, va_list ap)
{
int result;