On 2008-01-04 at 20:33 +0000, Aaron Crane wrote: > Also, I decided I didn't care about any brokenness resulting from > however the user might have managed to persuade the shell to create a > function with a non-identifier-syntax name. After all: > > $ foo\ bar() { echo blah; } > -bash: `foo\ bar': not a valid identifier > $ function foo\ bar { echo blah; } > -bash: `foo\ bar': not a valid identifier
% 'foo bar'() { echo blah } % foo\ bar blah % rename_func() { functions[$2]=$functions[$1] } % rename_func 'foo bar' fred % fred blah To get the $functions array in zsh you do need to have zmodload'd zsh/parameter. Could { zmodload -i zsh/parameter } to silently load it if not already loaded. I have it loaded for one of the fields in my prompt anyway. ObHate: These two don't produce the same result: $functions['foo bar'] x='foo bar'; $functions[$x] -Phil