diff --git a/bash-4.1-intr.dif b/bash-4.1-intr.dif index 9601585e..56ad467f 100644 --- a/bash-4.1-intr.dif +++ b/bash-4.1-intr.dif @@ -145,3 +145,14 @@ } #ifdef USING_BASH_MALLOC +--- builtins/read.def ++++ builtins/read.def 2010-03-02 16:24:59.070362886 +0000 +@@ -387,6 +387,8 @@ read_builtin (list) + input_string. We want to run all the rest and use input_string, + so we have to remove it from the stack. */ + remove_unwind_protect (); ++ interrupt_immediately--; ++ terminate_immediately = 0; + run_unwind_frame ("read_builtin"); + input_string[i] = '\0'; /* make sure it's terminated */ + retval = 128+SIGALRM; diff --git a/run-tests b/run-tests index 9a113d80..f65ad34e 100644 --- a/run-tests +++ b/run-tests @@ -26,4 +26,18 @@ do esac done +trap 'rm -f $tmp' EXIT TERM INT QUIT +tmp=$(mktemp /tmp/hello.XXXXXXXX) || exit 1 +echo '#!/bin/sh' > $tmp +echo exit >> $tmp +chmod 755 $tmp +${THIS_SH} -c $tmp + +typeset -i count=500 +echo '#########################' +echo 'fork + /bin/sh -c runtime' +time while ((count-- > 0)) ; do + ${THIS_SH} -c $tmp +done +echo '#########################' exit 0