]> git.cameronkatri.com Git - bsdgames-darwin.git/commitdiff
better handle ^d in getinp(), so we dont loop endlessly.
authorelad <elad@NetBSD.org>
Fri, 20 Jan 2006 21:40:08 +0000 (21:40 +0000)
committerelad <elad@NetBSD.org>
Fri, 20 Jan 2006 21:40:08 +0000 (21:40 +0000)
i have no idea why i wanted to play this game.

monop/getinp.c

index fee84c5e10959fca9697783fb79f9677002661e2..cd0253c9a4165f1e72e33bdc0b39ec3fb5166825 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: getinp.c,v 1.13 2004/11/05 21:30:32 dsl Exp $  */
+/*     $NetBSD: getinp.c,v 1.14 2006/01/20 21:40:08 elad Exp $ */
 
 /*
  * Copyright (c) 1980, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)getinp.c   8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: getinp.c,v 1.13 2004/11/05 21:30:32 dsl Exp $");
+__RCSID("$NetBSD: getinp.c,v 1.14 2006/01/20 21:40:08 elad Exp $");
 #endif
 #endif /* not lint */
 
@@ -58,13 +58,12 @@ getinp(prompt, list)
        int c;
 
        for (;;) {
-inter:
                printf("%s", prompt);
                for (sp = buf; (c=getchar()) != '\n'; ) {
+                       if (c == -1)
+                               return 0;
                        *sp = c;
-                       if (c == -1)    /* check for interrupted system call */
-                               goto inter;
-                       else if (sp != buf || *sp != ' ')
+                       if (sp != buf || *sp != ' ')
                                sp++;
                }
                *sp = c;