summaryrefslogtreecommitdiffstats
path: root/boggle
diff options
context:
space:
mode:
authormycroft <mycroft@NetBSD.org>1995-04-27 22:06:04 +0000
committermycroft <mycroft@NetBSD.org>1995-04-27 22:06:04 +0000
commit917dbd68dd87e00938055fd32aea44c77a7d146f (patch)
tree79226d3ef526a4a54d8996d04f5bfe73cdcaf14b /boggle
parent3e95714e815457b8e2c95138f9242701e3c08434 (diff)
downloadbsdgames-darwin-917dbd68dd87e00938055fd32aea44c77a7d146f.tar.gz
bsdgames-darwin-917dbd68dd87e00938055fd32aea44c77a7d146f.tar.zst
bsdgames-darwin-917dbd68dd87e00938055fd32aea44c77a7d146f.zip
Use POSIX signal and tty semantics.
Diffstat (limited to 'boggle')
-rw-r--r--boggle/boggle/mach.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/boggle/boggle/mach.c b/boggle/boggle/mach.c
index 622f03c6..a47b5213 100644
--- a/boggle/boggle/mach.c
+++ b/boggle/boggle/mach.c
@@ -1,4 +1,4 @@
-/* $NetBSD: mach.c,v 1.3 1995/04/24 12:22:41 cgd Exp $ */
+/* $NetBSD: mach.c,v 1.4 1995/04/27 22:06:04 mycroft Exp $ */
/*-
* Copyright (c) 1993
@@ -40,7 +40,7 @@
#if 0
static char sccsid[] = "@(#)mach.c 8.1 (Berkeley) 6/11/93";
#else
-static char rcsid[] = "$NetBSD: mach.c,v 1.3 1995/04/24 12:22:41 cgd Exp $";
+static char rcsid[] = "$NetBSD: mach.c,v 1.4 1995/04/27 22:06:04 mycroft Exp $";
#endif
#endif /* not lint */
@@ -590,9 +590,9 @@ tty_setup()
lastline = nlines - 1;
ncols = COLS;
- (void) signal(SIGTSTP, stop_catcher);
- (void) signal(SIGCONT, cont_catcher);
- (void) signal(SIGWINCH, winch_catcher);
+ signal(SIGTSTP, stop_catcher);
+ signal(SIGCONT, cont_catcher);
+ signal(SIGWINCH, winch_catcher);
return(0);
}
@@ -600,23 +600,27 @@ static void
stop_catcher(signo)
int signo;
{
+ sigset_t sigset, osigset;
+
stoptime();
noraw();
echo();
move(nlines - 1, 0);
refresh();
- (void) signal(SIGTSTP, SIG_DFL);
- (void) sigsetmask(sigblock(0) & ~(1 << (SIGTSTP-1)));
- (void) kill(0, SIGTSTP);
- (void) signal(SIGTSTP, stop_catcher);
+ signal(SIGTSTP, SIG_DFL);
+ sigemptyset(&sigset);
+ sigaddset(&sigset, SIGTSTP);
+ sigprocmask(SIG_UNBLOCK, &sigset, &osigset);
+ kill(0, SIGTSTP);
+ sigprocmask(SIG_SETMASK, &osigset, (sigset_t *)0);
+ signal(SIGTSTP, stop_catcher);
}
static void
cont_catcher(signo)
int signo;
{
- (void) signal(SIGCONT, cont_catcher);
noecho();
raw();
clearok(stdscr, 1);