From 475b98f4446d60df3a7b37d34b3be2e83c6a7493 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 22 Jan 2008 14:16:45 +0000 Subject: [PATCH] update git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7317 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/switch_utils.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/switch_utils.c b/src/switch_utils.c index 041c46ea36..d3b4efcb00 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -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; }