[ adding autoconf-patches; this is <http://thread.gmane.org/gmane.comp.sysutils.automake.patches/3698> ]
Proposed patch for Autoconf. OK? Thanks, Ralf commit 4f89a570c7ccb07237d4a698a4e60db507880be0 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..b25f165 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -16794,12 +16794,21 @@ 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{/bin/sh -c 'set -e; false `true` || echo did not exit'} +$ +...@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