Do conversion in a more easier to read and working way for \r, \n, and \t. (issue #8324 reported by johnlange)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47398 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Joshua Colp 19 years ago
parent 58ed1b07ab
commit d2624d72ec

@ -7398,13 +7398,17 @@ static int load_config(void)
tmpread = tmpwrite = emailbody;
while ((tmpwrite = strchr(tmpread,'\\'))) {
switch (tmpwrite[1]) {
case 'r':
memmove(tmpwrite + 1, tmpwrite + 2, strlen(tmpwrite + 2) + 1);
*tmpwrite = '\r';
break;
case 'n':
*tmpwrite++ = '\n';
memmove(tmpwrite, tmpwrite + 1, strlen(tmpwrite + 1) + 1);
memmove(tmpwrite + 1, tmpwrite + 2, strlen(tmpwrite + 2) + 1);
*tmpwrite = '\n';
break;
case 't':
*tmpwrite++ = '\t';
memmove(tmpwrite, tmpwrite + 1, strlen(tmpwrite + 1) + 1);
memmove(tmpwrite + 1, tmpwrite + 2, strlen(tmpwrite + 2) + 1);
*tmpwrite = '\t';
break;
default:
ast_log(LOG_NOTICE, "Substitution routine does not support this character: %c\n", tmpwrite[1]);
@ -7422,13 +7426,17 @@ static int load_config(void)
tmpread = tmpwrite = pagerbody;
while ((tmpwrite = strchr(tmpread, '\\'))) {
switch (tmpwrite[1]) {
case 'r':
memmove(tmpwrite + 1, tmpwrite + 2, strlen(tmpwrite + 2) + 1);
*tmpwrite = '\r';
break;
case 'n':
*tmpwrite++ = '\n';
memmove(tmpwrite, tmpwrite + 1, strlen(tmpwrite + 1) + 1);
memmove(tmpwrite + 1, tmpwrite + 2, strlen(tmpwrite + 2) + 1);
*tmpwrite = '\n';
break;
case 't':
*tmpwrite++ = '\t';
memmove(tmpwrite, tmpwrite + 1, strlen(tmpwrite + 1) + 1);
memmove(tmpwrite + 1, tmpwrite + 2, strlen(tmpwrite + 2) + 1);
*tmpwrite = '\t';
break;
default:
ast_log(LOG_NOTICE, "Substitution routine does not support this character: %c\n", tmpwrite[1]);

Loading…
Cancel
Save