-------------------------------------------------------------------------------
diff -c -r2.8 intrcheck.c
*** 2.8 1993/03/29 10:41:47
--- intrcheck.c 1993/04/15 08:58:58
***************
*** 140,145 ****
--- 140,154 ----
{
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
signal(SIGINT, intcatcher);
+ #ifdef SV_INTERRUPT
+ /* This is for SunOS and other modern BSD derivatives.
+ It means that system calls (like read()) are not restarted
+ after an interrupt. This is necessary so interrupting a
+ read() or readline() call works as expected.
+ XXX On old BSD (pure 4.2 or older) you may have to do this
+ differently! */
+ siginterrupt(SIGINT, 1);
+ #endif
}
int
-------------------------------------------------------------------------------
Thankyou Jan-Hein Buhrman and Sjoerd Mullender,
--Guido van Rossum, CWI, Amsterdam <Guido.van.Rossum@cwi.nl>