Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Expanding quotes
On 12/23/2013 08:15 PM, Bart Schaefer wrote:
> It's a syntactic question as well as a semantic one. For example, you
> typed
>
> ls *\"
>
> and expected completion to treat backslash-dquote as a unit matching a
> literal double quote. But someone else might type
>
> ls *"
>
> and expect completion to *supply* the missing backslash, because there
> is a file name ending with a quote. It gets even more complicated if
I'm pretty sure I've experienced this behavior before, though it's
definitely rare.
> A third complication is that there are a huge number of different ways
> to apply quoting, and trying to figure out which one corresponds to what
> the user already typed is difficult to generalize. The globbing code
> that generates the list of possible files returns a particular quoting
> scheme that would have to be converted to the user's arbitrary quoting.
I see.
> We'd be happy to find some more volunteers to work on the internals of
> completion to resolve more of these cases.
Thanks for the clarification, the rationale is sound for me.
Personally, I would actually prefer is there was an option in zsh to
normalize the quoting mechanism to always "double quote" the argument
instead of escaping characters (thus inserting the initial double-quote
if missing). I don't know if this would actually simplify or furthermore
complicate the expansion rules.
With complete_in_word and all the other completion switches I definitely
see the complexity of "doing the right thing" in all the cases. Though
the fact that a glob might not expand in the same way as when executed
makes a bit of uneasy feeling for me. I often use expansion to
proof-check a glob instead of executing the command twice.
Maybe there's a better way to do it that doesn't involve running "ls
glob" before "real-command glob".
Messages sorted by:
Reverse Date,
Date,
Thread,
Author