Fix escaping ; (bug #2368)
authorMark Spencer <markster@digium.com>
Fri, 3 Sep 2004 15:36:13 +0000 (15:36 +0000)
committerMark Spencer <markster@digium.com>
Fri, 3 Sep 2004 15:36:13 +0000 (15:36 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3720 65c4cc65-6c06-0410-ace0-fbb531ad65f3

config.c

index a0e2903..41c53b6 100755 (executable)
--- a/config.c
+++ b/config.c
@@ -455,13 +455,19 @@ static int cfg_process(struct ast_config *tmp, struct ast_category **_tmpc, stru
        int object;
        /* Strip off lines using ; as comment */
        c = strchr(buf, ';');
-       if (c) {
-               *c = '\0';
+       while (c) {
+               if ((c == buf) || (*(c-1) != '\\')) {
+                       *c = '\0';
 #ifdef PRESERVE_COMMENTS
-               c++;
-               if (*c != '!')
-                       com = build_comment(c);
+                       c++;
+                       if (*c != '!')
+                               com = build_comment(c);
 #endif                 
+               } else {
+                       *(c-1) = ';';
+                       memmove(c, c + 1, strlen(c + 1));
+               }
+               c = strchr(c + 1, ';');
        }
        cur = strip(buf);
        if (!ast_strlen_zero(cur)) {