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

Re: Question on unintuitive behaviour for function execution and parameter assignment



On Tuesday, October 12th, 2021 at 10:31, Peter Stephenson <p.w.stephenson@xxxxxxxxxxxx> wrote:
> This is covered by the POSIX_BUILTINS option. Generally, the POSIX_* options are
>
> the place to look for this sort of think --- granted that can be a bit of hunt.

I wouldn't even think to look at POSIX_* variables because POSIX-2017
explicitly tells that it's unspecified "Whether or not the variable assignments persist after
the completion of the function", so, naturally, I though that this behaviour was compliant.

> Usually an easy test to see if zsh does have the POSIX behaviour available is
>
> to start a new shell as
>
> ARGV0=sh zsh
>
> and see what behaviour that gives you. That should be maximally compatible,
>
> although it doesn't help you find which option controls the behaviour.

I would keep that in mind next time. I used to compare the executions in bash, since I thought
it's more compliant, but I guess it's not the best option since GNU also states that it
takes the standards as a recommendation and not a rule.

I still believe this needs to be mentioned in FUNCTIONS or SIMPLE COMMANDS & PIPELINES of zshmisc(1).
Or zshparam(1) perhaps? I would love to suggest my help with updating man pages but I'm not sure
if you accept commits the side. Or even how the development is done around here :shrug:

Either way, a world of thanks for the help, Peter.
- Jett




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