# HG changeset patch # User Jim Meyering # Date 1272441075 -7200 # Node ID 20adf2052520f3157f10766c3cda408182706687 # Parent 2304ea7391699599ad8df3167b504afddc668ffd init.sh: ensure a more reliable exit status when exiting via trap * tests/init.sh (setup_): Don't rely on $? in signal handler. Inspired by patches from Dmitry V. Levin. Also trap on signal 3 (SIGQUIT). diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2010-04-28 Jim Meyering + + init.sh: ensure a more reliable exit status when exiting via trap + * tests/init.sh (setup_): Don't rely on $? in signal handler. + Inspired by patches from Dmitry V. Levin. + Also trap on signal 3 (SIGQUIT). + 2010-04-27 Bruno Haible Update doc about utimes(). diff --git a/tests/init.sh b/tests/init.sh --- a/tests/init.sh +++ b/tests/init.sh @@ -225,10 +225,12 @@ || fail_ "failed to create temporary directory in $initial_cwd_" cd "$test_dir_" - # This pair of trap statements ensures that the temporary directory, - # $test_dir_, is removed upon exit as well as upon catchable signal. + # 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 - trap 'Exit $?' 1 2 13 15 + for sig_ in 1 2 3 13 15; do + eval "trap 'Exit $(expr $sig_ + 128)' $sig_" + done } # Create a temporary directory, much like mktemp -d does.