From ca91ccc027e33d6bf9b5573c5461ba9d3fe6568e Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Mon, 23 Aug 2004 12:43:59 +0000 Subject: [PATCH] Use one select() call to both delay and detect keypresses. git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@333 db0b04b0-f4d1-0310-9a6d-de3e77497b0e --- ttyplay.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/ttyplay.c b/ttyplay.c index 8e4b879..a9f4361 100644 --- a/ttyplay.c +++ b/ttyplay.c @@ -139,19 +139,14 @@ ttypread (FILE * fp, Header * h, char **buf, int pread) { int counter = 0; fd_set readfs; - struct timeval zerotime; - - zerotime.tv_sec = 0; - zerotime.tv_usec = 0; + struct timeval w = { 0, 100000 }; /* * Read persistently just like tail -f. */ while (ttyread (fp, h, buf, 1) == READ_EOF) { - struct timeval w = { 0, 100000 }; fflush(stdout); - select (0, NULL, NULL, NULL, &w); clearerr (fp); if (counter++ > (20 * 60 * 10)) { @@ -159,13 +154,11 @@ ttypread (FILE * fp, Header * h, char **buf, int pread) printf ("Exiting due to 20 minutes of inactivity.\n"); exit (-23); } - - - /* look for keypresses here. as good a place as any */ + FD_ZERO (&readfs); FD_SET (STDIN_FILENO, &readfs); - select (1, &readfs, NULL, NULL, &zerotime); + select (1, &readfs, NULL, NULL, &w); if (FD_ISSET (0, &readfs)) - { /* a user hits a character? */ + { /* user hits a character? */ char c; read (STDIN_FILENO, &c, 1); /* drain the character */