]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/gsocket.cpp
declare wxCalendarEvent ctor as inline before it's used (which happens before its...
[wxWidgets.git] / src / unix / gsocket.cpp
index 8e48f63cdf27023de93876ad0304cf2581c6320f..cef26902b31dfd6615c668a33ca9a8eba7bdffd1 100644 (file)
@@ -159,12 +159,11 @@ int _System soclose(int);
     #define UNMASK_SIGNAL() }
 
 #else
+    extern "C" { typedef void (*wxSigHandler)(int); }
 
     #define MASK_SIGNAL()                       \
     {                                           \
-        void (*old_handler)(int);               \
-                                                \
-        old_handler = signal(SIGPIPE, SIG_IGN);
+        wxSigHandler old_handler = signal(SIGPIPE, SIG_IGN);
 
     #define UNMASK_SIGNAL()                     \
         signal(SIGPIPE, old_handler);           \
@@ -966,6 +965,9 @@ GSocketEventFlags GSocket::Select(GSocketEventFlags flags)
 
     assert(this);
 
+    if (m_fd == -1)
+        return (GSOCK_LOST_FLAG & flags);
+    
     /* Do not use a static struct, Linux can garble it */
     tv.tv_sec = m_timeout / 1000;
     tv.tv_usec = (m_timeout % 1000) * 1000;