]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
allow double escape in parser for \
authorAnthony Minessale <anthony.minessale@gmail.com>
Thu, 21 Jan 2010 19:59:28 +0000 (19:59 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Thu, 21 Jan 2010 19:59:28 +0000 (19:59 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16440 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_utils.c

index 4b1524f5af547d2745c7dfdd35b64e8e36f6d5ce..5bc915302c5c2893d5aa8d4243d21594ed63d0c1 100644 (file)
@@ -1571,6 +1571,9 @@ static char unescape_char(char escaped)
        case 's':
                unescaped = ' ';
                break;
+       case '\\':
+               unescaped = 1; /* 1 means double esc */
+               break;
        default:
                unescaped = escaped;
        }
@@ -1644,7 +1647,11 @@ static char *cleanup_separated_string(char *str, char delim)
                        e = *(ptr + 1);
                        if (e == '\'' || e == '"' || (delim && e == delim) || (e = unescape_char(*(ptr + 1))) != *(ptr + 1)) {
                                ++ptr;
-                               *dest++ = e;
+                               if (e == 1) {
+                                       *dest++ = '\\';
+                               } else {
+                                       *dest++ = e;
+                               }
                                end = dest;
                                esc++;
                        }