On Mon, Jan 21, 2019 at 09:26:59AM +0700, Robert Elz wrote: (...) > I think his point is that if unset "unset f" (no flags) works to unset > function f, if f is not a (set) variable, then it should work every time > "f" is not a set variable, not only the times when the word "f" happens > to be of the correct syntax to be a variable name, but happens not > to be. > > I think that is a good point. > > In the NetBSD sh we avoid that issue completely, the only way to > unset a function is with "unset -f", a simple "unset f" only ever > unsets variables.
I think that's a good point too. But how would you fix this particular issue? Changing the behavior of `unset f' to only ever unset variables means potentially breaking existing scripts. Is the inconsistency reported severe enough to make this change?