mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-29 15:36:13 +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