changeset 26305:6a54af950cf6

'trap' portability trapped me...
author Bruno Haible <bruno@clisp.org>
date Thu, 26 Jan 2006 12:51:48 +0000
parents 6a94e27efd7d
children 1e1e8c221f1a
files ChangeLog gnulib-tool
diffstat 2 files changed, 13 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Jan 25 17:31:46 2006 +0000
+++ b/ChangeLog	Thu Jan 26 12:51:48 2006 +0000
@@ -1,3 +1,8 @@
+2006-01-26  Bruno Haible  <bruno@clisp.org>
+
+	* gnulib-tool (func_import): Use "trap 'exit $?' instead of "trap :".
+	Reported by Paul Eggert.
+
 2006-01-25  Bruno Haible  <bruno@clisp.org>
 
 	* gnulib-tool (func_import): Use "trap :" instead of "trap -" to get
--- a/gnulib-tool	Wed Jan 25 17:31:46 2006 +0000
+++ b/gnulib-tool	Thu Jan 26 12:51:48 2006 +0000
@@ -22,7 +22,7 @@
 
 progname=$0
 package=gnulib
-cvsdatestamp='$Date: 2006-01-25 14:20:06 $'
+cvsdatestamp='$Date: 2006-01-26 12:51:48 $'
 last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'`
 version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'`
 
@@ -1176,7 +1176,13 @@
     func_add_or_update
   done
   rm -rf "$tmp"
-  trap : 0 1 2 3 15
+  # Undo the effect of the previous 'trap' command. Some shellology:
+  # We cannot use "trap - 0 1 2 3 15", because Solaris sh would attempt to
+  # execute the command "-". "trap '' ..." is fine only for signal 0 (= normal
+  # exit); for the others we need to call 'exit' explicitly. The value of $? is
+  # 128 + signal number and is set before the trap-registered command is run.
+  trap '' 0
+  trap 'exit $?' 1 2 3 15
 
   # Command-line invocation printed in a comment in generated gnulib-cache.m4.
   actioncmd="gnulib-tool --import"