From 917dbd68dd87e00938055fd32aea44c77a7d146f Mon Sep 17 00:00:00 2001 From: mycroft Date: Thu, 27 Apr 1995 22:06:04 +0000 Subject: Use POSIX signal and tty semantics. --- boggle/boggle/mach.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'boggle') 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); -- cgit v1.2.3-56-ge451