/* 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;
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;
}
/* 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;
}
}
/* 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;
}