X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=unix%2Fsignal.c;h=9b0ad5eacb806cab933d35e70d2e2e9015755bc1;hb=693bbf0ec6007120b91dafb4eaed1ae833eb59f7;hp=4e103b734b5fa31eec0d633cc459c6d962b90119;hpb=93e9fadc751dc6f89d3cb145378ecf4b1beb908b;p=PuTTY.git diff --git a/unix/signal.c b/unix/signal.c index 4e103b73..9b0ad5ea 100644 --- a/unix/signal.c +++ b/unix/signal.c @@ -1,4 +1,6 @@ #include +#include +#include /* * Calling signal() is a non-portable, as it varies in meaning between @@ -23,6 +25,18 @@ void (*putty_signal(int sig, void (*func)(int)))(int) { return old.sa_handler; } +void block_signal(int sig, int block_it) +{ + sigset_t ss; + + sigemptyset(&ss); + sigaddset(&ss, sig); + if(sigprocmask(block_it ? SIG_BLOCK : SIG_UNBLOCK, &ss, 0) < 0) { + perror("sigprocmask"); + exit(1); + } +} + /* Local Variables: c-basic-offset:4