diff options
author | Tim J. Robbins <tjr@FreeBSD.org> | 2002-07-26 05:25:12 +0000 |
---|---|---|
committer | Tim J. Robbins <tjr@FreeBSD.org> | 2002-07-26 05:25:12 +0000 |
commit | 5b3df62e011e9ef74ac3ebad5b27cbf8f3000cee (patch) | |
tree | 72638facbd0e6ae477c2e428d1359733f2cd9de7 /usr.bin/csplit | |
parent | 93c9745e20d4da181b6e32361515926b28357a24 (diff) | |
download | src-5b3df62e011e9ef74ac3ebad5b27cbf8f3000cee.tar.gz src-5b3df62e011e9ef74ac3ebad5b27cbf8f3000cee.zip |
Notes
Diffstat (limited to 'usr.bin/csplit')
-rw-r--r-- | usr.bin/csplit/csplit.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/usr.bin/csplit/csplit.c b/usr.bin/csplit/csplit.c index dfc8f5bf0fd2..35614be214ad 100644 --- a/usr.bin/csplit/csplit.c +++ b/usr.bin/csplit/csplit.c @@ -94,6 +94,7 @@ int doclean; /* Should cleanup() remove output? */ int main(int argc, char *argv[]) { + struct sigaction sa; long i; int ch; const char *expr; @@ -145,9 +146,15 @@ main(int argc, char *argv[]) if (!kflag) { doclean = 1; atexit(cleanup); - signal(SIGHUP, handlesig); - signal(SIGINT, handlesig); - signal(SIGTERM, handlesig); + sa.sa_flags = 0; + sa.sa_handler = handlesig; + sigemptyset(&sa.sa_mask); + sigaddset(&sa.sa_mask, SIGHUP); + sigaddset(&sa.sa_mask, SIGINT); + sigaddset(&sa.sa_mask, SIGTERM); + sigaction(SIGHUP, &sa, NULL); + sigaction(SIGINT, &sa, NULL); + sigaction(SIGTERM, &sa, NULL); } lineno = 0; |