summaryrefslogtreecommitdiffstats
path: root/atc/main.c
diff options
context:
space:
mode:
authordholland <dholland@NetBSD.org>2015-06-25 05:33:02 +0000
committerdholland <dholland@NetBSD.org>2015-06-25 05:33:02 +0000
commit79cdfa8ea1b0bdba6889bfea03d2c4ab5987c675 (patch)
treecbdc37d27624e2960e4e7b059b4d46d28b1a0b5e /atc/main.c
parentcbfa4e0150e45039bfd90790eea6dca891ce4af6 (diff)
downloadbsdgames-darwin-79cdfa8ea1b0bdba6889bfea03d2c4ab5987c675.tar.gz
bsdgames-darwin-79cdfa8ea1b0bdba6889bfea03d2c4ab5987c675.zip
Move game logic out of the file with the curses code.
Diffstat (limited to 'atc/main.c')
-rw-r--r--atc/main.c32
1 files changed, 30 insertions, 2 deletions
diff --git a/atc/main.c b/atc/main.c
index 07316615..db089651 100644
--- a/atc/main.c
+++ b/atc/main.c
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.23 2015/06/19 06:02:31 dholland Exp $ */
+/* $NetBSD: main.c,v 1.24 2015/06/25 05:33:02 dholland Exp $ */
/*-
* Copyright (c) 1990, 1993
@@ -51,7 +51,7 @@ __COPYRIGHT("@(#) Copyright (c) 1990, 1993\
#if 0
static char sccsid[] = "@(#)main.c 8.1 (Berkeley) 5/31/93";
#else
-__RCSID("$NetBSD: main.c,v 1.23 2015/06/19 06:02:31 dholland Exp $");
+__RCSID("$NetBSD: main.c,v 1.24 2015/06/25 05:33:02 dholland Exp $");
#endif
#endif /* not lint */
@@ -75,6 +75,7 @@ static int read_file(const char *);
static const char *default_game(void);
static const char *okay_game(const char *);
static int list_games(void);
+static void quit(int);
int
main(int argc, char *argv[])
@@ -327,3 +328,30 @@ list_games(void)
}
return (0);
}
+
+/* ARGSUSED */
+static void
+quit(int dummy __unused)
+{
+ int c;
+#ifdef BSD
+ struct itimerval itv;
+#endif
+ ioaskquit();
+ c = getAChar();
+ if (c == EOF || c == 'y') {
+ /* disable timer */
+#ifdef BSD
+ itv.it_value.tv_sec = 0;
+ itv.it_value.tv_usec = 0;
+ (void)setitimer(ITIMER_REAL, &itv, NULL);
+#endif
+#ifdef SYSV
+ alarm(0);
+#endif
+ shutdown_gr();
+ (void)log_score(0);
+ exit(0);
+ }
+ ionoquit();
+}