* 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


Reply via email to