Hi Severus, Can you give a demo? You can turn off `multì_func_def` but you can always do multiple function definition with reserved word `function` Best. On Wed, Nov 25, 2015 at 11:20 AM, Ngô Huy wrote: > Dear Matthew > > 2015-11-25 11:06 GMT+07:00 Matthew Martin : > > > On Tue, Nov 24, 2015 at 9:46 PM, Ngô Huy 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 >