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

Reply via email to