Fix handling pipelines with set -e. Resolves: #483385

This commit is contained in:
Roman Rakus 2009-02-11 12:13:00 +00:00
parent 0e588980b4
commit 91115222ca
2 changed files with 28 additions and 1 deletions

View File

@ -0,0 +1,21 @@
diff -up bash-4.0-rc1/execute_cmd.c.shell_pipelines_handling bash-4.0-rc1/execute_cmd.c
--- bash-4.0-rc1/execute_cmd.c.shell_pipelines_handling 2009-02-11 12:56:13.000000000 +0100
+++ bash-4.0-rc1/execute_cmd.c 2009-02-11 12:57:20.000000000 +0100
@@ -756,7 +756,7 @@ execute_command_internal (command, async
the presence of a pipeline, and (until Posix changes things), a
pipeline failure should not cause the parent shell to exit on an
unsuccessful return status, even in the presence of errexit.. */
- if (was_error_trap && ignore_return == 0 && invert == 0 && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS)
+ if (was_error_trap && ignore_return == 0 && invert == 0 && exec_result != EXECUTION_SUCCESS)
{
last_command_exit_value = exec_result;
run_error_trap ();
@@ -764,7 +764,7 @@ execute_command_internal (command, async
if (ignore_return == 0 && invert == 0 &&
((posixly_correct && interactive == 0 && special_builtin_failed) ||
- (exit_immediately_on_error && pipe_in == NO_PIPE && pipe_out == NO_PIPE && exec_result != EXECUTION_SUCCESS)))
+ (exit_immediately_on_error && exec_result != EXECUTION_SUCCESS)))
{
last_command_exit_value = exec_result;
run_pending_traps ();

View File

@ -3,7 +3,7 @@
Version: 4.0 Version: 4.0
Name: bash Name: bash
Summary: The GNU Bourne Again shell version %{version} Summary: The GNU Bourne Again shell version %{version}
Release: 0.3.%{?beta_tag}%{?dist} Release: 0.4.%{?beta_tag}%{?dist}
Group: System Environment/Shells Group: System Environment/Shells
License: GPLv2+ License: GPLv2+
Url: http://www.gnu.org/software/bash Url: http://www.gnu.org/software/bash
@ -40,6 +40,7 @@ Patch117: bash-setlocale.patch
Patch118: bash-tty-tests.patch Patch118: bash-tty-tests.patch
Patch119: bash-ulimit-m.patch Patch119: bash-ulimit-m.patch
Patch120: bash-4.0-no_debug_output.patch Patch120: bash-4.0-no_debug_output.patch
Patch121: bash-4.0-shell_pipelines_handling.patch
Requires(post): ncurses-libs Requires(post): ncurses-libs
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -83,6 +84,7 @@ compliance over previous versions.
%patch118 -p1 -b .tty_tests %patch118 -p1 -b .tty_tests
%patch119 -p1 -b .ulimit-m %patch119 -p1 -b .ulimit-m
%patch120 -p1 -b .no_debug_output %patch120 -p1 -b .no_debug_output
%patch121 -p1 -b .pipelines_handling
echo %{version} > _distribution echo %{version} > _distribution
echo %{release} > _patchlevel echo %{release} > _patchlevel
@ -242,6 +244,10 @@ fi
#%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt #%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
%changelog %changelog
* Wed Feb 11 2009 Roman Rakus <rrakus@redhat.com> - 4.0-0.4.rc1
- Fix handling pipelines with `set -e'
Resolves: #483385
* Thu Jan 29 2009 Roman Rakus <rrakus@redhat.com> - 4.0-0.3.rc1 * Thu Jan 29 2009 Roman Rakus <rrakus@redhat.com> - 4.0-0.3.rc1
- No more debug output - No more debug output
Resolves: #483002 Resolves: #483002