mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 20:04:50 +00:00
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:
37
main/utils.c
37
main/utils.c
@@ -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;
|
||||
|
Reference in New Issue
Block a user