diff options
Diffstat (limited to 'gnulib-tool')
-rwxr-xr-x | gnulib-tool | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/gnulib-tool b/gnulib-tool index 028bcf36ad..b0126e711a 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -1693,15 +1693,15 @@ func_determine_path_separator func_gnulib_dir func_tmpdir trap 'exit_status=$? - if test "$signal" != 0; then - echo "caught signal $signal" >&2 + if test "$signal" != EXIT; then + echo "caught signal SIG$signal" >&2 fi rm -rf "$tmp" - exit $exit_status' 0 -for signal in 1 2 3 13 15; do + exit $exit_status' EXIT +for signal in HUP INT QUIT PIPE TERM; do trap '{ signal='$signal'; func_exit 1; }' $signal done -signal=0 +signal=EXIT # Note: The 'eval' silences stderr output in dash. if (declare -A x && { x[f/2]='foo'; x[f/3]='bar'; eval test '${x[f/2]}' = foo; }) 2>/dev/null; then @@ -7676,12 +7676,13 @@ fi rm -rf "$tmp" # Undo the effect of the previous 'trap' command. Some shellology: -# We cannot use "trap - 0 1 2 3 13 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 'func_exit $?' 1 2 3 13 15 +# We cannot use "trap - EXIT HUP INT QUIT PIPE TERM", because Solaris sh would +# attempt to execute the command "-". "trap '' ..." is fine only for signal EXIT +# (= 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 '' EXIT +trap 'func_exit $?' HUP INT QUIT PIPE TERM exit 0 |