Enlightenment CVS committal

Author  : tsauerbeck
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore


Modified Files:
        Ecore.h ecore_main.c ecore_private.h 


Log Message:
Added ECORE_FD_ERROR to go w/ ECORE_FD_READ AND _WRITE. I couldn't trigger the error 
'event' though, which makes me wonder whether i missed something
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Ecore.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- Ecore.h     3 Feb 2004 19:49:46 -0000       1.4
+++ Ecore.h     24 Feb 2004 19:45:01 -0000      1.5
@@ -23,7 +23,8 @@
    enum _Ecore_Fd_Handler_Flags
      {
        ECORE_FD_READ = 1, /**< Fd Read mask */
-       ECORE_FD_WRITE = 2 /**< Fd Write mask */
+       ECORE_FD_WRITE = 2, /**< Fd Write mask */
+       ECORE_FD_ERROR = 4 /**< Fd Error mask */
      };
    typedef enum _Ecore_Fd_Handler_Flags Ecore_Fd_Handler_Flags;
    
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/ecore_main.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- ecore_main.c        20 Feb 2004 07:06:25 -0000      1.4
+++ ecore_main.c        24 Feb 2004 19:45:01 -0000      1.5
@@ -104,6 +104,7 @@
    fdh->flags = flags;
    fdh->read_active = 0;
    fdh->write_active = 0;
+   fdh->error_active = 0;
    fdh->delete_me = 0;
    fdh->func = func;
    fdh->data = (void *)data;
@@ -182,6 +183,7 @@
    ret = 0;
    if ((flags & ECORE_FD_READ) && (fd_handler->read_active)) ret = 1;
    if ((flags & ECORE_FD_WRITE) && (fd_handler->write_active)) ret = 1;
+   if ((flags & ECORE_FD_ERROR) && (fd_handler->error_active)) ret = 1;
    return ret;
 }
 
@@ -231,7 +233,7 @@
 _ecore_main_select(double timeout)
 {
    struct timeval tv, *t;
-   fd_set         rfds, wfds;
+   fd_set         rfds, wfds, exfds;
    int            max_fd;
    int            ret;
    Ecore_List    *l;
@@ -256,6 +258,7 @@
    max_fd = 0;
    FD_ZERO(&rfds);
    FD_ZERO(&wfds);
+   FD_ZERO(&exfds);
    for (l = (Ecore_List *)fd_handlers; l; l = l->next)
      {
        Ecore_Fd_Handler *fdh;
@@ -271,9 +274,14 @@
             FD_SET(fdh->fd, &wfds);
             if (fdh->fd > max_fd) max_fd = fdh->fd;
          }
+    if (fdh->flags & ECORE_FD_ERROR)
+         {
+         FD_SET(fdh->fd, &exfds);
+         if (fdh->fd > max_fd) max_fd = fdh->fd;
+         }
      }
    if (_ecore_signal_count_get()) return -1;
-   ret = select(max_fd + 1, &rfds, &wfds, NULL, t);
+   ret = select(max_fd + 1, &rfds, &wfds, &exfds, t);
    if (ret < 0)
      {
        if (errno == EINTR) return -1;
@@ -291,6 +299,8 @@
                    fdh->read_active = 1;
                  if (FD_ISSET(fdh->fd, &wfds))
                    fdh->write_active = 1;
+                 if (FD_ISSET(fdh->fd, &exfds))
+                   fdh->error_active = 1;
               }
          }
        _ecore_main_fd_handlers_cleanup();
@@ -333,7 +343,7 @@
        fdh = (Ecore_Fd_Handler *)l;
        if (!fdh->delete_me)
          {
-            if ((fdh->read_active) || (fdh->write_active))
+            if ((fdh->read_active) || (fdh->write_active) || (fdh->error_active))
               {
                  if (!fdh->func(fdh->data, fdh))
                    {
@@ -342,6 +352,7 @@
                    }
                  fdh->read_active = 0;
                  fdh->write_active = 0;
+                 fdh->error_active = 0;
               }
          }
      }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/ecore_private.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- ecore_private.h     19 Jan 2004 19:31:21 -0000      1.3
+++ ecore_private.h     24 Feb 2004 19:45:01 -0000      1.4
@@ -38,7 +38,8 @@
 enum _Ecore_Fd_Handler_Flags
 {
    ECORE_FD_READ = 1,
-     ECORE_FD_WRITE = 2
+   ECORE_FD_WRITE = 2,
+   ECORE_FD_ERROR = 4
 };
 typedef enum _Ecore_Fd_Handler_Flags Ecore_Fd_Handler_Flags;
 
@@ -97,6 +98,7 @@
    Ecore_Fd_Handler_Flags   flags;
    int                      read_active : 1;
    int                      write_active : 1;
+   int                      error_active : 1;
    int                      delete_me : 1;
    int                    (*func) (void *data, Ecore_Fd_Handler *fd_handler);
    void                    *data;




-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to