]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Do conversion in a more easier to read and working way for \r, \n, and \t. (issue...
authorJoshua Colp <jcolp@digium.com>
Thu, 9 Nov 2006 22:32:30 +0000 (22:32 +0000)
committerJoshua Colp <jcolp@digium.com>
Thu, 9 Nov 2006 22:32:30 +0000 (22:32 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47398 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index 1503199832694cfeb389e2995d8e2a321837722e..b7cda7e1f998cb57276ae92677a8398c04f92bf1 100644 (file)
@@ -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]);