On 2015/02/13 3:58AM Joachim Schmitz wrote: >Jeff King <peff <at> peff.net> writes: > > On Fri, Feb 13, 2015 at 02:44:03AM -0500, Jeff King wrote: > > On Thu, Feb 12, 2015 at 03:31:12PM -0500, Randall S. Becker wrote: > > ><snip> >> Hmm, today I learned something new about ksh. Apparently when you use >> the "function" keyword to define a function like: >> >> function foo { >> trap 'echo trapped' EXIT >> } >> echo before >> foo >> echo after >> >> then the trap runs when the function exits! If you declare the same >> function as: >> >> foo() { >> trap 'echo trapped' EXIT >> } >> >> it behaves differently. POSIX shell does not have the function keyword, >> of course, and we are not using it here. Bash _does_ have the function >> keyword, but seems to behave POSIX-y even when it is present. I.e., >> running the first script: >> >> $ ksh foo.sh >> before >> trapped >> after >> >> $ bash foo.sh > > before >> after > > trapped >> <snip> >Both versions produce your first output on our platform >$ ksh foo1.sh >before >trapped >after >$ bash foo1.sh >before >after >trapped >$ ksh foo2.sh >before >trapped >after >$ bash foo2.sh >before >after >trapped >$ >This might have been one (or even _the_) reason why we picked bash as our >SHELL_PATH in config.mak.uname (I don't remember, it's more than 2 years >ago), not sure which shell Randall's test used? I tested both for trying to get t5570 to work. No matter which, without resetting the trap, function return would kill the git-daemon and the test would fail. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html