=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/window/Attic/wwinit.c,v retrieving revision 1.1 retrieving revision 1.2 diff -c -r1.1 -r1.2 *** src/usr.bin/window/Attic/wwinit.c 1995/10/18 08:46:58 1.1 --- src/usr.bin/window/Attic/wwinit.c 1995/12/26 18:00:32 1.2 *************** *** 1,4 **** ! /* $NetBSD: wwinit.c,v 1.7 1995/09/28 10:35:33 tls Exp $ */ /* * Copyright (c) 1983, 1993 --- 1,4 ---- ! /* $NetBSD: wwinit.c,v 1.10 1995/12/21 11:06:28 mycroft Exp $ */ /* * Copyright (c) 1983, 1993 *************** *** 40,46 **** #if 0 static char sccsid[] = "@(#)wwinit.c 8.2 (Berkeley) 4/28/95"; #else ! static char rcsid[] = "$NetBSD: wwinit.c,v 1.7 1995/09/28 10:35:33 tls Exp $"; #endif #endif /* not lint */ --- 40,46 ---- #if 0 static char sccsid[] = "@(#)wwinit.c 8.2 (Berkeley) 4/28/95"; #else ! static char rcsid[] = "$NetBSD: wwinit.c,v 1.10 1995/12/21 11:06:28 mycroft Exp $"; #endif #endif /* not lint */ *************** *** 54,69 **** { register i, j; char *kp; ! int s; wwdtablesize = 3; wwhead.ww_forw = &wwhead; wwhead.ww_back = &wwhead; ! s = sigblock(sigmask(SIGIO) | sigmask(SIGCHLD) | sigmask(SIGALRM) | ! sigmask(SIGHUP) | sigmask(SIGTERM)); ! if (signal(SIGIO, wwrint) == BADSIG || ! signal(SIGCHLD, wwchild) == BADSIG || signal(SIGHUP, wwquit) == BADSIG || signal(SIGTERM, wwquit) == BADSIG || signal(SIGPIPE, SIG_IGN) == BADSIG) { --- 54,73 ---- { register i, j; char *kp; ! sigset_t sigset, osigset; wwdtablesize = 3; wwhead.ww_forw = &wwhead; wwhead.ww_back = &wwhead; ! sigemptyset(&sigset); ! sigaddset(&sigset, SIGCHLD); ! sigaddset(&sigset, SIGALRM); ! sigaddset(&sigset, SIGHUP); ! sigaddset(&sigset, SIGTERM); ! sigprocmask(SIG_BLOCK, &sigset, &osigset); ! ! if (signal(SIGCHLD, wwchild) == BADSIG || signal(SIGHUP, wwquit) == BADSIG || signal(SIGTERM, wwquit) == BADSIG || signal(SIGPIPE, SIG_IGN) == BADSIG) { *************** *** 115,121 **** wwnewtty.ww_termios.c_cc[VMIN] = 1; wwnewtty.ww_termios.c_cc[VTIME] = 0; #endif - wwnewtty.ww_fflags = wwoldtty.ww_fflags | FASYNC; if (wwsettty(0, &wwnewtty) < 0) goto bad; --- 119,124 ---- *************** *** 319,337 **** wwerrno = WWE_SYS; goto bad; } - /* catch typeahead before ASYNC was set */ - (void) kill(getpid(), SIGIO); wwstart1(); ! (void) sigsetmask(s); return 0; bad: /* * Don't bother to free storage. We're supposed * to exit when wwinit fails anyway. */ (void) wwsettty(0, &wwoldtty); ! (void) signal(SIGIO, SIG_DFL); ! (void) sigsetmask(s); return -1; } --- 322,340 ---- wwerrno = WWE_SYS; goto bad; } wwstart1(); ! ! sigprocmask(SIG_SETMASK, &osigset, (sigset_t *)0); return 0; + bad: /* * Don't bother to free storage. We're supposed * to exit when wwinit fails anyway. */ (void) wwsettty(0, &wwoldtty); ! ! sigprocmask(SIG_SETMASK, &osigset, (sigset_t *)0); return -1; }