]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
update
authorAnthony Minessale <anthony.minessale@gmail.com>
Tue, 22 Jan 2008 14:16:45 +0000 (14:16 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Tue, 22 Jan 2008 14:16:45 +0000 (14:16 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7317 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_utils.c

index 041c46ea366d1a39d7a23137b8b630e1e043370a..d3b4efcb00030133e449f254ec6e83f4e7fbf94f 100644 (file)
@@ -1039,7 +1039,7 @@ static char unescape_char(char escaped)
 
 /* Helper function used when separating strings to remove quotes, leading /
    trailing spaces, and to convert escaped characters. */
-static char *cleanup_separated_string(char *str)
+static char *cleanup_separated_string(char *str, char delim)
 {
        char *ptr;
        char *dest;
@@ -1057,7 +1057,7 @@ static char *cleanup_separated_string(char *str)
 
                if (*ptr == ESCAPE_META) {
                        e = *(ptr+1);
-                       if (e == '\'' || e == '"' || (e = unescape_char(*(ptr+1))) != *(ptr+1)) {
+                       if (e == '\'' || e == '"' || (delim && e == delim) || (e = unescape_char(*(ptr+1))) != *(ptr+1)) {
                                ++ptr;
                                *dest++ = e;
                                end = dest;
@@ -1117,7 +1117,7 @@ static unsigned int separate_string_char_delim(char *buf, char delim, char **arr
        }
        /* strip quotes, escaped chars and leading / trailing spaces */
        for (i = 0; i < count; ++i) {
-               array[i] = cleanup_separated_string(array[i]);
+               array[i] = cleanup_separated_string(array[i], delim);
        }
        return count;
 }
@@ -1175,7 +1175,7 @@ static unsigned int separate_string_blank_delim(char *buf, char **array, unsigne
        }
        /* strip quotes, escaped chars and leading / trailing spaces */
        for (i = 0; i < count; ++i) {
-               array[i] = cleanup_separated_string(array[i]);
+               array[i] = cleanup_separated_string(array[i], 0);
        }
        return count;
 }