X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/4cc2ceccb7bd3ef92fc2be95798e38d635907a5e..385fcebc577fc7002f25313cbc70de3b4d69c99e:/tetris/input.c diff --git a/tetris/input.c b/tetris/input.c index 867bb2e4..cae49c8a 100644 --- a/tetris/input.c +++ b/tetris/input.c @@ -1,4 +1,4 @@ -/* $NetBSD: input.c,v 1.6 2002/09/19 21:12:10 mycroft Exp $ */ +/* $NetBSD: input.c,v 1.8 2002/12/29 15:12:17 kristerw Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -66,12 +66,12 @@ } /* - * Do a `read wait': select for reading from stdin, with timeout *tvp. + * Do a `read wait': poll for reading from stdin, with timeout *tvp. * On return, modify *tvp to reflect the amount of time spent waiting. * It will be positive only if input appeared before the time ran out; * otherwise it will be zero or perhaps negative. * - * If tvp is nil, wait forever, but return if select is interrupted. + * If tvp is nil, wait forever, but return if poll is interrupted. * * Return 0 => no input, 1 => can read() from stdin */ @@ -80,31 +80,27 @@ rwait(tvp) struct timeval *tvp; { struct pollfd set[1]; - struct timeval starttv, endtv, *s; + struct timeval starttv, endtv; + int timeout; #define NILTZ ((struct timezone *)0) - /* - * Someday, select() will do this for us. - * Just in case that day is now, and no one has - * changed this, we use a temporary. - */ if (tvp) { (void) gettimeofday(&starttv, NILTZ); endtv = *tvp; - s = &endtv; + timeout = tvp->tv_sec * 1000 + tvp->tv_usec / 1000; } else - s = 0; + timeout = INFTIM; again: set[0].fd = STDIN_FILENO; set[0].events = POLLIN; - switch (poll(set, 1, s->tv_sec * 1000 + s->tv_usec / 1000)) { + switch (poll(set, 1, timeout)) { case -1: if (tvp == 0) return (-1); if (errno == EINTR) goto again; - stop("select failed, help"); + stop("poll failed, help"); /* NOTREACHED */ case 0: /* timed out */ @@ -122,7 +118,7 @@ again: } /* - * `sleep' for the current turn time (using select). + * `sleep' for the current turn time. * Eat any input that might be available. */ void