I had left the removal of unneeded subshells (which would indeed jump up when the code is moved to shell functions) for later. But since you're at it this one:
> (exit $ac_status); }]) in _AC_RUN_LOG_STDERR and _AC_RUN_LOG could also be changed to an ac_func_set_status shell function that does just "return $1". A candidate for m4sh maybe? Or possibly it can also be replaced simply with "test $ac_status != 0", avoiding the zsh bug (even though anyway the buggy shells will be skipped by the better-shell test). Paolo
