aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2004-12-12 15:34:15 +0000
committerPeter Eisentraut <peter_e@gmx.net>2004-12-12 15:34:15 +0000
commitcf5539112c28b4955f526a52e36ef257ec7a4f03 (patch)
tree6b8ce1077d3ac56ee4897f1419cc318f7236be69 /src
parent984791e0e1a52d0929b402885b250361a1ad9758 (diff)
downloadpostgresql-cf5539112c28b4955f526a52e36ef257ec7a4f03.tar.gz
postgresql-cf5539112c28b4955f526a52e36ef257ec7a4f03.zip
Fix problems with certain shells (e.g., FreeBSD, Cygwin) clearing the
exit status in multiline traps.
Diffstat (limited to 'src')
-rw-r--r--src/test/regress/pg_regress.sh18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/test/regress/pg_regress.sh b/src/test/regress/pg_regress.sh
index cf45f73ae4f..15d475a033d 100644
--- a/src/test/regress/pg_regress.sh
+++ b/src/test/regress/pg_regress.sh
@@ -1,5 +1,5 @@
#! /bin/sh
-# $PostgreSQL: pgsql/src/test/regress/pg_regress.sh,v 1.50 2004/11/17 18:06:04 tgl Exp $
+# $PostgreSQL: pgsql/src/test/regress/pg_regress.sh,v 1.51 2004/12/12 15:34:15 petere Exp $
me=`basename $0`
: ${TMPDIR=/tmp}
@@ -238,18 +238,20 @@ PGDATESTYLE='ISO, MDY'; export PGDATESTYLE
# with the result of the last shell command before the `exit'. Hence
# we have to write `(exit x); exit' below this point.
-trap '
- savestatus=$?
+exit_trap(){
+ savestatus=$1
if [ -n "$postmaster_pid" ]; then
kill -2 "$postmaster_pid"
wait "$postmaster_pid"
unset postmaster_pid
fi
rm -f "$TMPFILE" && exit $savestatus
-' 0
+}
+
+trap 'exit_trap $?' 0
-trap '
- savestatus=$?
+sig_trap() {
+ savestatus=$1
echo; echo "caught signal"
if [ -n "$postmaster_pid" ]; then
echo "signalling fast shutdown to postmaster with pid $postmaster_pid"
@@ -258,7 +260,9 @@ trap '
unset postmaster_pid
fi
(exit $savestatus); exit
-' 1 2 13 15
+}
+
+trap 'sig_trap $?' 1 2 13 15