- Make wait builtin command interruptible

Resolves: #440465
This commit is contained in:
Vojtech Vitek (V-Teq) 2010-12-21 10:05:00 +01:00
parent 6488642e91
commit 0463ce5b5b
2 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,34 @@
--- tcsh-6.17.00/sh.proc.c 2009-06-25 23:15:37.000000000 +0200
+++ sh.proc.c 2010-11-25 17:36:16.500751242 +0100
@@ -596,6 +596,10 @@ loop:
pp->p_flags & PRUNNING) {
handle_pending_signals();
sigsuspend(&pause_mask);
+ if (pintr_pending) {
+ handle_pending_signals();
+ break;
+ }
handle_pending_signals();
goto loop;
}
--- tcsh-6.17.00/sh.h 2009-06-25 23:27:37.000000000 +0200
+++ sh.h 2010-11-26 11:42:16.160119671 +0100
@@ -533,6 +533,7 @@ typedef union {
* Global flags
*/
EXTERN int chkstop IZERO; /* Warned of stopped jobs... allow exit */
+EXTERN volatile sig_atomic_t pintr_pending; /* Interrupted by SIGINT */
#if (defined(FIOCLEX) && defined(FIONCLEX)) || defined(F_SETFD)
# define CLOSE_ON_EXEC
--- tcsh-6.17.00/tc.sig.c 2006-08-24 22:56:31.000000000 +0200
+++ tc.sig.c 2010-11-26 11:40:09.779223509 +0100
@@ -55,7 +55,7 @@ sigset_interrupting(int sig, void (*fn)
static volatile sig_atomic_t alrmcatch_pending; /* = 0; */
static volatile sig_atomic_t pchild_pending; /* = 0; */
static volatile sig_atomic_t phup_pending; /* = 0; */
-static volatile sig_atomic_t pintr_pending; /* = 0; */
+volatile sig_atomic_t pintr_pending; /* = 0; */
int alrmcatch_disabled; /* = 0; */
int phup_disabled; /* = 0; */
int pchild_disabled; /* = 0; */

View File

@ -28,6 +28,8 @@ Patch16: tcsh-6.17.00-printexitvalue.patch
Patch17: tcsh-6.17.00-testsuite.patch Patch17: tcsh-6.17.00-testsuite.patch
# Accepted by upstream: # Accepted by upstream:
Patch18: tcsh-6.17.00-extrafork.patch Patch18: tcsh-6.17.00-extrafork.patch
# Proposed to upstream: http://bugs.gw.com/view.php?id=109
Patch19: tcsh-6.17.00-wait-intr.patch
Provides: csh = %{version} Provides: csh = %{version}
Requires(post): grep Requires(post): grep
Requires(postun): coreutils, grep Requires(postun): coreutils, grep
@ -61,6 +63,7 @@ like syntax.
%patch16 -p1 -b .printexitvalue %patch16 -p1 -b .printexitvalue
%patch17 -p1 -b .testsuite %patch17 -p1 -b .testsuite
%patch18 -p1 -b .extrafork %patch18 -p1 -b .extrafork
%patch19 -p1 -b .wait-intr
for i in Fixes WishList; do for i in Fixes WishList; do
iconv -f iso-8859-1 -t utf-8 "$i" > "${i}_" && \ iconv -f iso-8859-1 -t utf-8 "$i" > "${i}_" && \
@ -134,6 +137,10 @@ fi
%{_mandir}/man1/*.1* %{_mandir}/man1/*.1*
%changelog %changelog
* Tue Dec 21 2010 Vojtech Vitek (V-Teq) <vvitek@redhat.com> - 6.17-10
- Make wait builtin command interruptible
Resolves: #440465
* Wed Oct 6 2010 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.17-9 * Wed Oct 6 2010 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.17-9
- Remove fork when tcsh processes backquotes - Remove fork when tcsh processes backquotes