autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

set -e and functions


From: Eric Blake
Subject: set -e and functions
Date: Tue, 18 Nov 2008 06:32:52 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.17) Gecko/20080914 Thunderbird/2.0.0.17 Mnenhy/0.7.5.666

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I just discovered that on Solaris /bin/sh, 'set -e' does not detect
non-zero status from shell functions invoked as a simple command:

$ bash -c 'f(){ return 1;};set -e;f;echo oops'
$ /bin/sh -c 'f(){ return 1;};set -e;f;echo oops'
oops

Every other shell I tried behaved like bash (ash, ksh, pdksh, zsh).  I'm
documenting it as follows:

- --
Don't work too hard, make some time for fun as well!

Eric Blake             address@hidden
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkkixAQACgkQ84KuGfSFAYCfDQCfQTkRnUdl7ovTDD2SSl69MEs/
ubIAnjyChxizKTbWWZetuvYw49FoG7bg
=9Tho
-----END PGP SIGNATURE-----
>From 74f93059738c647d8330814d67829315385704fa Mon Sep 17 00:00:00 2001
From: Eric Blake <address@hidden>
Date: Tue, 18 Nov 2008 06:30:37 -0700
Subject: [PATCH] Document a Solaris /bin/sh bug with 'set -e'.

* doc/autoconf.texi (Shell Functions): Mention the bug.

Signed-off-by: Eric Blake <address@hidden>
---
 ChangeLog         |    5 +++++
 doc/autoconf.texi |    9 +++++++++
 2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 41f97d3..93c085c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-18  Eric Blake  <address@hidden>
+
+       Document a Solaris /bin/sh bug with 'set -e'.
+       * doc/autoconf.texi (Shell Functions): Mention the bug.
+
 2008-11-17  Eric Blake  <address@hidden>
 
        Detect empty list in AS_FOR.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 07db254..90e6cee 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -14660,6 +14660,15 @@ Shell Functions
 2
 @end example
 
+Not all shells treat shell functions as simple commands impacted by
address@hidden -e}, for example with Solaris 10 @command{bin/sh}:
+
address@hidden
+$ @kbd{bash -c 'f()@{ return 1; @}; set -e; f; echo oops}
+$ @kbd{/bin/sh -c 'f()@{ return 1; @}; set -e; f; echo oops}
+oops
address@hidden example
+
 Shell variables and functions may share the same namespace, for example
 with Solaris 10 @command{/bin/sh}:
 
-- 
1.6.0.4


reply via email to

[Prev in Thread] Current Thread [Next in Thread]