2009-10-28 09:00:59 -0400, Chet Ramey: > > zle-line-init() zle overwrite-mode > > zle -N zle-line-init > > > > To get back on topic, bash is the only Bourne-like shell that I > > know that doesn't allow that function definition syntax above, > > I've always wondered why. > > The Posix grammar has never allowed it (a `function_body' must be a > compound command, and that's what bash implements), and there has > never been sufficient demand to add it as an extension. [...]
It's never allowed it to POSIX _scripts_, but it won't make a shell non-conformant to support it (and ksh, pdksh, ash, zsh even posh all do support it), just like most POSIX conformant shells support arrays for instance even though that's not a POSIX feature. bash not supporting it helps for writing POSIX compliant scripts (as it will return an error if one tries to use that non-standard feature), but as bash is the only POSIX shell that doesn't support it, it feels a bit silly. I wonder what's the rationale for POSIX not supporting it (is it because of bash?). -- Stephane