Here is a patch to correct the exit status of autoconf under hpux shells.
I have tested it under hpux 10.20 and i686 linux.

Dave
-- 
J. David Anglin                                  [EMAIL PROTECTED]
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)

2000-08-10  J. David Anglin  <[EMAIL PROTECTED]>

        * autoconf.sh: Change `exit N' to `(exit N); exit' to provide
        the correct exit status when an exit trap is taken.

--- autoconf.sh.orig    Wed Aug  9 13:06:15 2000
+++ autoconf.sh Thu Aug 10 15:19:48 2000
@@ -234,7 +234,7 @@
 $debug ||
 {
   trap 'status=$?; rm -rf $tmp && exit $status' 0
-  trap 'exit $?' 1 2 13 15
+  trap '(exit $?); exit' 1 2 13 15
 }
 
 # Create a (secure) tmp directory for tmp files.
@@ -248,7 +248,7 @@
 } ||
 {
    echo "$me: cannot create a temporary directory in $TMPDIR" >&2
-   exit 1;
+   (exit 1); exit;
 }
 
 # Running m4.
@@ -266,7 +266,7 @@
   *) exec >&2
      echo "$me: invalid number of arguments."
      echo "$help"
-     exit 1 ;;
+     (exit 1); exit ;;
 esac
 
 # Unless specified, the output is stdout.
@@ -278,7 +278,7 @@
   cat >$infile
 elif test ! -r "$infile"; then
   echo "$me: $infile: No such file or directory" >&2
-  exit 1
+  (exit 1); exit
 fi
 
 # Output is produced into FD 4.  Prepare it.
@@ -297,7 +297,10 @@
   ## --------------------------------- ##
   script)
   # M4 expansion.
-  $run_m4f -D_AC_WARNINGS=$_ac_warnings $infile >$tmp/configure || exit 2
+  $run_m4f -D_AC_WARNINGS=$_ac_warnings $infile >$tmp/configure ||
+{
+  (exit 2); exit
+}
 
   # You can add your own prefixes to pattern if you want to check for
   # them too.
@@ -552,7 +555,10 @@
   do
     # The request may be several lines long, hence sed has to quit.
     trace_opt="$trace_opt -t "`echo "$trace" | sed -e 's/:.*//;q'`
-    echo "$trace" | $AWK -f $tmp/translate.awk >>$tmp/trace.m4 || exit 1
+    echo "$trace" | $AWK -f $tmp/translate.awk >>$tmp/trace.m4 ||
+{
+    (exit 1); exit
+}
   done
   echo "divert(0)dnl" >>$tmp/trace.m4
 
@@ -586,7 +592,7 @@
   ## ------------ ##
 
   *)echo "$me: internal error: unknown task: $task" >&2
-    exit 1
+    (exit 1); exit
 esac
 
-exit $status
+(exit $status); exit

Reply via email to