Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: While on the subject of expansion ...

On Fri, 27 Dec 2013 10:05:56 -0800
Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx> wrote:
> Unlike the _expand completer which tries globbing separately from other
> expansions, doexpansion() attempts to set up for everything to expand
> at once [via a call to prefork()].  This makes the completion-oriented
> [de-]quoting applied by get_comp_string() problematic.  I wonder which
> kinds of parameter expansions would break if we skipped that part.

I suppose it might be worth a bit of trial simplification after 5.0.5 to see
what happens, though present experience suggests we'll only find out
what the damage is if the result appears in 5.0.6.

(If you think that's hairy, don't look at set_comp_sep() in compcore.c,
which attempts, rather badly, to take account of recursive quoting
i.e. quoted expressions that contain shell code for contexts like "su -c
'...".  I spent some time attacking this a few years ago but retreated
in disarray after my forces were battered to a pulp.  I think it's still
not that hard to get the shell to crash with a bit of playing around.)

> Tangentially related, and mentioning it just so it's on the record in
> case I forget about it later:  The "compfiles" builtin is confused by
> files whose names contain backslashes.  This is another pathological
> case that may not be worth expending much effort.

This one *might* be simple:  a missing removal of quotations or one too
many at a single point in the code.  I haven't looked.


Messages sorted by: Reverse Date, Date, Thread, Author