diff options
author | Paul Janzen <pjanzen@cvs.openbsd.org> | 1998-09-15 05:12:34 +0000 |
---|---|---|
committer | Paul Janzen <pjanzen@cvs.openbsd.org> | 1998-09-15 05:12:34 +0000 |
commit | 382e5fc06b0d163465f52340367ebd0ad2290953 (patch) | |
tree | 70f97b75511270d6bcf539458bed34e47f29d492 /games/larn/signal.c | |
parent | a191b615b33316ed26f562fc953609f4076439a4 (diff) |
NetBSD merge; also renamed some functions so as not to conflict with curses
Diffstat (limited to 'games/larn/signal.c')
-rw-r--r-- | games/larn/signal.c | 163 |
1 files changed, 109 insertions, 54 deletions
diff --git a/games/larn/signal.c b/games/larn/signal.c index 3b4e2f396dd..65cf477fab4 100644 --- a/games/larn/signal.c +++ b/games/larn/signal.c @@ -1,86 +1,141 @@ +/* $OpenBSD: signal.c,v 1.3 1998/09/15 05:12:33 pjanzen Exp $ */ +/* $NetBSD: signal.c,v 1.6 1997/10/18 20:03:50 christos Exp $ */ + +/* "Larn is copyrighted 1986 by Noah Morgan.\n" */ + #ifndef lint -static char rcsid[] = "$NetBSD: signal.c,v 1.5 1995/12/21 11:27:51 mycroft Exp $"; -#endif /* not lint */ +static char rcsid[] = "$OpenBSD: signal.c,v 1.3 1998/09/15 05:12:33 pjanzen Exp $"; +#endif /* not lint */ +#include <stdio.h> #include <signal.h> -#include "header.h" /* "Larn is copyrighted 1986 by Noah Morgan.\n" */ #include <string.h> +#include <unistd.h> +#include "header.h" +#include "extern.h" + +static void s2choose __P((void)); +static void cntlc __P((int)); +static void sgam __P((int)); +static void tstop __P((int)); +static void sigpanic __P((int)); #define BIT(a) (1<<((a)-1)) -extern char savefilename[],wizard,predostuff,nosignal; -static s2choose() /* text to be displayed if ^C during intro screen */ - { - cursor(1,24); lprcat("Press "); setbold(); lprcat("return"); resetbold(); - lprcat(" to continue: "); lflush(); - } static void -cntlc() /* what to do for a ^C */ - { - if (nosignal) return; /* don't do anything if inhibited */ - signal(SIGQUIT,SIG_IGN); signal(SIGINT,SIG_IGN); - quit(); if (predostuff==1) s2choose(); else showplayer(); +s2choose() +{ /* text to be displayed if ^C during intro + * screen */ + cursor(1, 24); + lprcat("Press "); + setbold(); + lprcat("return"); + resetbold(); + lprcat(" to continue: "); lflush(); - signal(SIGQUIT,cntlc); signal(SIGINT,cntlc); - } +} + +static void +cntlc(n) + int n; +{ /* what to do for a ^C */ + if (nosignal) + return; /* don't do anything if inhibited */ + signal(SIGQUIT, SIG_IGN); + signal(SIGINT, SIG_IGN); + quit(); + if (predostuff == 1) + s2choose(); + else + showplayer(); + lflush(); + signal(SIGQUIT, cntlc); + signal(SIGINT, cntlc); +} /* * subroutine to save the game if a hangup signal */ static void -sgam() - { - savegame(savefilename); wizard=1; died(-257); /* hangup signal */ - } +sgam(n) + int n; +{ + savegame(savefilename); + wizard = 1; + died(-257); /* hangup signal */ +} #ifdef SIGTSTP static void -tstop() /* control Y */ - { - if (nosignal) return; /* nothing if inhibited */ - lcreat((char*)0); clearvt100(); lflush(); signal(SIGTSTP,SIG_DFL); +tstop(n) + int n; +{ /* control Y */ + if (nosignal) + return; /* nothing if inhibited */ + lcreat((char *) 0); + clearvt100(); + lflush(); + signal(SIGTSTP, SIG_DFL); #ifdef SIGVTALRM - /* looks like BSD4.2 or higher - must clr mask for signal to take effect*/ - sigsetmask(sigblock(0)& ~BIT(SIGTSTP)); + /* + * looks like BSD4.2 or higher - must clr mask for signal to take + * effect + */ + sigsetmask(sigblock(0) & ~BIT(SIGTSTP)); #endif - kill(getpid(),SIGTSTP); + kill(getpid(), SIGTSTP); - setupvt100(); signal(SIGTSTP,tstop); - if (predostuff==1) s2choose(); else drawscreen(); - showplayer(); lflush(); - } -#endif SIGTSTP + setupvt100(); + signal(SIGTSTP, tstop); + if (predostuff == 1) + s2choose(); + else + drawscreen(); + showplayer(); + lflush(); +} +#endif /* SIGTSTP */ /* - * subroutine to issue the needed signal traps called from main() + * subroutine to issue the needed signal traps called from main() */ -static void sigpanic(); +void sigsetup() - { - signal(SIGQUIT, cntlc); signal(SIGINT, cntlc); - signal(SIGKILL, SIG_IGN); signal(SIGHUP, sgam); - signal(SIGILL, sigpanic); signal(SIGTRAP, sigpanic); - signal(SIGIOT, sigpanic); signal(SIGEMT, sigpanic); - signal(SIGFPE, sigpanic); signal(SIGBUS, sigpanic); - signal(SIGSEGV, sigpanic); signal(SIGSYS, sigpanic); - signal(SIGPIPE, sigpanic); signal(SIGTERM, sigpanic); +{ + signal(SIGQUIT, cntlc); + signal(SIGINT, cntlc); + signal(SIGKILL, SIG_IGN); + signal(SIGHUP, sgam); + signal(SIGILL, sigpanic); + signal(SIGTRAP, sigpanic); + signal(SIGIOT, sigpanic); + signal(SIGEMT, sigpanic); + signal(SIGFPE, sigpanic); + signal(SIGBUS, sigpanic); + signal(SIGSEGV, sigpanic); + signal(SIGSYS, sigpanic); + signal(SIGPIPE, sigpanic); + signal(SIGTERM, sigpanic); #ifdef SIGTSTP - signal(SIGTSTP,tstop); signal(SIGSTOP,tstop); -#endif SIGTSTP - } + signal(SIGTSTP, tstop); + signal(SIGSTOP, tstop); +#endif /* SIGTSTP */ +} /* * routine to process a fatal error signal */ static void sigpanic(sig) - int sig; - { - char buf[128]; - signal(sig,SIG_DFL); - sprintf(buf,"\nLarn - Panic! Signal %d received [SIG%s]",sig,sys_signame[sig]); - write(2,buf,strlen(buf)); sleep(2); + int sig; +{ + char buf[128]; + + signal(sig, SIG_DFL); + sprintf(buf, "\nLarn - Panic! Signal %d received [SIG%s]", sig, sys_signame[sig]); + write(2, buf, strlen(buf)); + sleep(2); sncbr(); - savegame(savefilename); - kill(getpid(),sig); /* this will terminate us */ - } + savegame(savefilename); + kill(getpid(), sig); /* this will terminate us */ +} |