{
char *s, *f, *p, *a;
const char **r;
- int i = 0, l, eow = 0;
+ int i = 0, l, eow;
if (!argv || !cmd)
return -1;
while (*s == ' ')
s++;
f = s;
- eow = *s == '\'' || *s == '"' ? *s++ : ' ';
- while (*s && *s != eow) {
+ eow = 0;
+ while (*s) {
if (*s == '\\') {
l = *(s + 1);
if (l == 'b')
if (*s)
s++;
}
+ } else if (eow) {
+ if (*s == eow) {
+ memmove(s, s + 1, strlen(s));
+ eow = 0;
+ } else {
+ s++;
+ }
+ } else if (*s == '\'' || *s == '"') {
+ eow = *s;
+ memmove(s, s + 1, strlen(s));
+ } else if (*s == ' ') {
+ break;
} else {
s++;
}