From: Peter O'Gorman Date: Thu, 29 Jul 2010 21:14:59 +0000 (-0600) Subject: init.sh: work around trap limitation of some shells X-Git-Tag: v0.1~4004 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=c0a5d48daf5d1431bc1d010a3ec89c8b64b8f7d7;p=gnulib.git init.sh: work around trap limitation of some shells This limitation is already documented in the Autoconf manual. * tests/init.sh (setup_): Move exit trap outside of shell function. Signed-off-by: Eric Blake --- diff --git a/ChangeLog b/ChangeLog index 8051cf066..0535e28d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-07-29 Peter O'Gorman (tiny change) + + init.sh: work around trap limitation of some shells + * tests/init.sh (setup_): Move exit trap outside of shell function. + 2010-07-29 Eric Blake strtod: aid debugging diff --git a/tests/init.sh b/tests/init.sh index 794352673..bc82d69a9 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -255,9 +255,9 @@ setup_() || fail_ "failed to create temporary directory in $initial_cwd_" cd "$test_dir_" - # These trap statements ensure that the temporary directory, $test_dir_, - # is removed upon exit as well as upon receipt of any of the listed signals. - trap remove_tmp_ 0 + # This trap statement, along with a trap on 0 below, ensure that the + # temporary directory, $test_dir_, is removed upon exit as well as + # upon receipt of any of the listed signals. for sig_ in 1 2 3 13 15; do eval "trap 'Exit $(expr $sig_ + 128)' $sig_" done @@ -385,3 +385,6 @@ test -f "$srcdir/init.cfg" \ && . "$srcdir/init.cfg" setup_ "$@" +# This trap is here, rather than in the setup_ function, because some +# shells run the exit trap at shell function exit, rather than script exit. +trap remove_tmp_ 0