329 |
|
{ |
330 |
|
char *cp = pargs; |
331 |
|
int nparams = 0; |
332 |
+ |
int quot; |
333 |
|
int i; |
334 |
|
|
335 |
|
for ( ; ; ) { |
366 |
|
case 'o': |
367 |
|
if (*cp++ != '=') |
368 |
|
break; |
369 |
+ |
quot = 0; |
370 |
+ |
if ((*cp == '"') | (*cp == '\'')) |
371 |
+ |
quot = *cp++; |
372 |
|
i = 0; |
373 |
< |
while (*cp && !isspace(*cp++)) |
374 |
< |
i++; |
373 |
> |
while (*cp && (quot ? (*cp != quot) : !isspace(*cp))) { |
374 |
> |
i++; cp++; |
375 |
> |
} |
376 |
|
if (!i) |
377 |
|
break; |
378 |
< |
*--cp = '\0'; |
378 |
> |
if (!*cp) { |
379 |
> |
if (quot) |
380 |
> |
break; |
381 |
> |
cp[1] = '\0'; |
382 |
> |
} |
383 |
> |
*cp = '\0'; |
384 |
|
p->outfn = savqstr(cp-i); |
385 |
< |
*cp++ = ' '; |
385 |
> |
*cp++ = quot ? quot : ' '; |
386 |
|
++nparams; |
387 |
|
continue; |
388 |
|
case ' ': |