* Ralf Wildenhues wrote on Sat, Dec 05, 2009 at 01:02:58PM CET: > [ adding autoconf-patches; this is > <http://thread.gmane.org/gmane.comp.sysutils.automake.patches/3698> ] > > Proposed patch for Autoconf. OK?
That was a pretty bad failure, with the example not matching the description at all. Next try. OK? commit 3efa7027f91c0f232c5b4bafba1ffd415a58cde8 Author: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Sat Dec 5 12:56:30 2009 +0100 Document Solaris/Heirloom sh set -e issue with command substitutions. * doc/autoconf.texi (Limitations of Builtins): Fix typos `set -d' in previous example. Document failure to honor && lists with set -e and a command substitution in the failing command. Report and initial patch by Stefano Lattarini against Automake. Signed-off-by: Ralf Wildenhues <ralf.wildenh...@gmx.de> diff --git a/ChangeLog b/ChangeLog index e03604d..1c0c612 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2009-12-05 Stefano Lattarini <stefano.lattar...@gmail.com> + Ralf Wildenhues <ralf.wildenh...@gmx.de> + + Document Solaris/Heirloom sh set -e issue with command substitutions. + * doc/autoconf.texi (Limitations of Builtins): Fix typos `set -d' + in previous example. Document failure to honor && lists with set -e + and a command substitution in the failing command. + Report and initial patch by Stefano Lattarini against Automake. + 2009-12-04 Eric Blake <e...@byu.net> Warn if using unnamed diversion. diff --git a/doc/autoconf.texi b/doc/autoconf.texi index 7d2c72e..3144610 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -16794,12 +16794,23 @@ Limitations of Builtins Solaris @command{/bin/sh} cannot be ignored, even with @samp{||}. @example -$ @kbd{/bin/sh -c 'set -d; foo=`false` || echo foo; echo bar'} -$ @kbd{bash -c 'set -d; foo=`false` || echo foo; echo bar'} +$ @kbd{/bin/sh -c 'set -e; foo=`false` || echo foo; echo bar'} +$ @kbd{bash -c 'set -e; foo=`false` || echo foo; echo bar'} foo bar @end example +...@noindent +Moreover, a command substitution, successful or not, causes this shell to +exit from a failing outer command even in presence of an @samp{&&} list: + +...@example +$ @kbd{bash -c 'set -e; false `true` && echo notreached; echo ok'} +ok +$ @kbd{sh -c 'set -e; false `true` && echo notreached; echo ok'} +$ +...@end example + Portable scripts should not use @samp{set -e} if @command{trap} is used to install an exit handler. This is because Tru64/OSF 5.1 @command{sh} sometimes enters the trap handler with the exit status of the command