]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tty/lib_twait.c
ncurses 5.6 - patch 20080920
[ncurses.git] / ncurses / tty / lib_twait.c
index 1e4546dec0c00517d6bef2e20fe8ce73386162c1..16d12edbbe3c297c12864b6718a4ce99a9e72501 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 
 #include <curses.priv.h>
 
+#if defined __HAIKU__ && defined __BEOS__
+#undef __BEOS__
+#endif
+
 #ifdef __BEOS__
 #undef false
 #undef true
 # endif
 #endif
 
-MODULE_ID("$Id: lib_twait.c,v 1.54 2007/08/11 16:32:48 tom Exp $")
+#undef CUR
 
-#if HAVE_GETTIMEOFDAY
-# define PRECISE_GETTIME 1
-# define TimeType struct timeval
-#else
-# define PRECISE_GETTIME 0
-# define TimeType time_t
-#endif
+MODULE_ID("$Id: lib_twait.c,v 1.59 2008/08/30 20:08:19 tom Exp $")
 
 static long
 _nc_gettime(TimeType * t0, bool first)
@@ -145,7 +143,8 @@ _nc_eventlist_timeout(_nc_eventlist * evl)
  * descriptors.
  */
 NCURSES_EXPORT(int)
-_nc_timed_wait(int mode,
+_nc_timed_wait(SCREEN *sp,
+              int mode,
               int milliseconds,
               int *timeleft
               EVENTLIST_2nd(_nc_eventlist * evl))
@@ -207,12 +206,12 @@ _nc_timed_wait(int mode,
 #endif
 
     if (mode & 1) {
-       fds[count].fd = SP->_ifd;
+       fds[count].fd = sp->_ifd;
        fds[count].events = POLLIN;
        count++;
     }
     if ((mode & 2)
-       && (fd = SP->_mouse_fd) >= 0) {
+       && (fd = sp->_mouse_fd) >= 0) {
        fds[count].fd = fd;
        fds[count].events = POLLIN;
        count++;
@@ -315,11 +314,11 @@ _nc_timed_wait(int mode,
     FD_ZERO(&set);
 
     if (mode & 1) {
-       FD_SET(SP->_ifd, &set);
-       count = SP->_ifd + 1;
+       FD_SET(sp->_ifd, &set);
+       count = sp->_ifd + 1;
     }
     if ((mode & 2)
-       && (fd = SP->_mouse_fd) >= 0) {
+       && (fd = sp->_mouse_fd) >= 0) {
        FD_SET(fd, &set);
        count = max(fd, count) + 1;
     }
@@ -432,11 +431,11 @@ _nc_timed_wait(int mode,
            result = 1;         /* redundant, but simple */
 #elif HAVE_SELECT
            if ((mode & 2)
-               && (fd = SP->_mouse_fd) >= 0
+               && (fd = sp->_mouse_fd) >= 0
                && FD_ISSET(fd, &set))
                result |= 2;
            if ((mode & 1)
-               && FD_ISSET(SP->_ifd, &set))
+               && FD_ISSET(sp->_ifd, &set))
                result |= 1;
 #endif
        } else