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

Re: view onto command pipeline?



On Wed, Jul 20, 2022, at 9:35 PM, Lawrence Velázquez wrote:
> On Wed, Jul 20, 2022, at 8:15 PM, Anthony Heading wrote:
>> Agree
>> quoting $@ makes sense here since this is a wrapper, but I find more 
>> often dropping empty
>> arguments is often very helpful after splits and suchlike.
>>
>> But as to "${opts[@]}"...   Just too ugly to do that all the time, no?  
>> Instead, use
>> zsh's awesome sticky emulation: 
>>
>>     emulate zsh -c 'autoload -Uz ~/my-zsh-funcs/*'
>
> Leaving $opts[@] unquoted still elides empty elements in this
> context; that behavior is not limited to $@.  (If this is what you
> actually want, go for it.  Just don't think that fiddling with
> options has an effect.)
>

Yes indeed!  Though recall the context here was a *fixed* *literal* array:
    opts=(-c color.ui=always)
    command git $opts "$@"

Quoting "$@" agreed, but writing "${opts[@]}" instead here seems
a little bit like self-flagellation, no?

> It's better to run ''emulate -L zsh'' inside the function itself
> (or localize and [un]set options individually as desired) to achieve
> a known state, rather than relying on a specific method of invocation.

Oh, interesting!  why is that?  Certainly want to get the most
stable state. I do vaguely remember tricky corner cases being discussed
on zsh-workers maybe decades ago, but it seems to work great now.
And, unless I picked up this autoload idiom from the mailing list,
I think it's from the man pages somewhere.   If you're advising that
it's sub-optimal, should it be removed or caveated in the documentation?





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