From 43eaede84e20b51cd83e5e7b2c731b2ba749a30a Mon Sep 17 00:00:00 2001 From: ahoka Date: Thu, 1 Dec 2011 07:05:52 +0000 Subject: handle EOF in input --- monop/misc.c | 12 +++++++++--- monop/monop.c | 7 +++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/monop/misc.c b/monop/misc.c index 3f881072..c69b90d0 100644 --- a/monop/misc.c +++ b/monop/misc.c @@ -1,4 +1,4 @@ -/* $NetBSD: misc.c,v 1.21 2009/08/12 08:10:49 dholland Exp $ */ +/* $NetBSD: misc.c,v 1.22 2011/12/01 07:05:52 ahoka Exp $ */ /* * Copyright (c) 1980, 1993 @@ -34,7 +34,7 @@ #if 0 static char sccsid[] = "@(#)misc.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: misc.c,v 1.21 2009/08/12 08:10:49 dholland Exp $"); +__RCSID("$NetBSD: misc.c,v 1.22 2011/12/01 07:05:52 ahoka Exp $"); #endif #endif /* not lint */ @@ -106,8 +106,9 @@ get_int(prompt) for (;;) { printf("%s", prompt); fgets(buf, sizeof(buf), stdin); + /* if stdin is closed we cant really play anymore */ if (feof(stdin)) - return 0; + quit(); sp = strchr(buf, '\n'); if (sp) *sp = '\0'; @@ -294,6 +295,11 @@ void quit() { putchar('\n'); + + /* We dont even have a chance to input y/n if stdin is closed */ + if (feof(stdin)) + exit(0); + if (getyn("Do you all really want to quit? ") == 0) exit(0); } diff --git a/monop/monop.c b/monop/monop.c index 3a54fccd..1d140299 100644 --- a/monop/monop.c +++ b/monop/monop.c @@ -1,4 +1,4 @@ -/* $NetBSD: monop.c,v 1.25 2009/08/12 08:10:49 dholland Exp $ */ +/* $NetBSD: monop.c,v 1.26 2011/12/01 07:05:52 ahoka Exp $ */ /* * Copyright (c) 1980, 1993 @@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 1993\ #if 0 static char sccsid[] = "@(#)monop.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: monop.c,v 1.25 2009/08/12 08:10:49 dholland Exp $"); +__RCSID("$NetBSD: monop.c,v 1.26 2011/12/01 07:05:52 ahoka Exp $"); #endif #endif /* not lint */ @@ -286,8 +286,7 @@ blew_it: printf("Player %d's name: ", i + 1); fgets(buf, sizeof(buf), stdin); if (feof(stdin)) { - printf("End of file on stdin\n"); - exit(0); + quit(); } buf[strcspn(buf, "\n")] = '\0'; } while (strlen(buf) == 0); -- cgit v1.2.3-56-ge451