ditto@cbmvax.UUCP (Michael "Ford" Ditto) (03/22/89)
Observed-in: 4.3BSD (Tahoe), and Ultrix V2.2 Description: C shell "onintr" doesn't re-enable SIGINT after "onintr -". Repeat-by: Put the following lines in ~/.login (or just source them): echo starting... onintr - # temporarily disable interrupts sleep 5 # this is non-interruptible onintr # (supposed to) re-enable interrupts echo done After the above file has been sourced, the interrupt character is ignored. My Fix: Patches to 4.3BSD Tahoe source: sh.func.c 5.5 (Berkeley) 5/19/88 *** ORIGsh.func.c Wed Mar 22 01:10:35 1989 --- sh.func.c Wed Mar 22 01:26:41 1989 *************** *** 92,100 bferr("Can't from terminal"); cp = gointr, gointr = 0, xfree(cp); if (vv == 0) { ! if (setintr) ! (void) sigblock(sigmask(SIGINT)); ! else (void) signal(SIGINT, SIG_DFL); gointr = 0; } else if (eq((vv = strip(vv)), "-")) { --- 92,101 ----- bferr("Can't from terminal"); cp = gointr, gointr = 0, xfree(cp); if (vv == 0) { ! if (setintr) { ! (void) sigblock(sigmask(SIGINT)); ! (void) signal(SIGINT, pintr); ! } else (void) signal(SIGINT, SIG_DFL); gointr = 0; } else if (eq((vv = strip(vv)), "-")) { -- -=] Ford [=- "The number of Unix installations (In Real Life: Mike Ditto) has grown to 10, with more expected." ford@kenobi.commodore.com - The Unix Programmer's Manual, ...!sdcsvax!crash!kenobi!ford 2nd Edition, June, 1972. ditto@cbmvax.commodore.com