mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-19 11:42:27 +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:
@@ -154,6 +154,14 @@ char *ast_strip_quoted(char *s, const char *beg_quotes, const char *end_quotes);
|
||||
*/
|
||||
char *ast_unescape_semicolon(char *s);
|
||||
|
||||
/*!
|
||||
\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);
|
||||
|
||||
/*!
|
||||
\brief Size-limited null-terminating string copy.
|
||||
\arg dst The destination buffer.
|
||||
|
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