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

Re: [Zsh bug] function define bug



Dear Matthew

2015-11-25 11:06 GMT+07:00 Matthew Martin <phy1729@xxxxxxxxx>:

> On Tue, Nov 24, 2015 at 9:46 PM, Ngô Huy <huynhok.uit@xxxxxxxxx> wrote:
> > Dear folks,
> >
> > I found the problem in zsh define function. Demo
> >
> > ls test() { echo "Bug !!!"} && ls && test
> >
> > it will print
> >
> > Bug !!!
> > Bug !!!
>
>
> That's expected behaviour. Since MULTI_FUNC_DEF is set by default in zsh
> mode, both ls and test are being defined as functions with the body
> echo "Bug !!!".
>
> % func1 func2 () { echo This is "$0"; }
> % func1; func2
> This is func1
> This is func2
> % which func{1,2}
> func1 () {
>         echo This is "$0"
> }
> func2 () {
>         echo This is "$0"
> }
> % unsetopt MULTI_FUNC_DEF
> % func1 func2 () { echo This is "$0"; }
> zsh: parse error near `()'
>

I know this behavior likes advanced programming language but multì_func_def
should be turned off by default, it leads to risky problem when someone
searchs as grep, ls malicious strings without quote


Kind regards,
Severus


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