0463ce5b5b
Resolves: #440465
35 lines
1.3 KiB
Diff
35 lines
1.3 KiB
Diff
--- 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; */
|