X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3958ae62ba9d7dca5bec365837d8047c97b0712a..82713003dc446ad0353127abe66a1ecc66f4df67:/src/os2/app.cpp diff --git a/src/os2/app.cpp b/src/os2/app.cpp index 8a5b65436c..bd4b47a6cf 100644 --- a/src/os2/app.cpp +++ b/src/os2/app.cpp @@ -37,22 +37,28 @@ #include "wx/os2/private.h" -#if defined(__VISAGECPP__) && __IBMCPP__ < 400 -#include -#include -#include -#include -#else +#ifdef __EMX__ + #include #include + +#else + +#include +#include +#include + +#endif // ndef for __EMX__ + #ifndef __EMX__ + #define select(a,b,c,d,e) bsdselect(a,b,c,d,e) int _System bsdselect(int, struct fd_set *, struct fd_set *, struct fd_set *, struct timeval *); -#endif + #endif #if wxUSE_THREADS @@ -133,22 +139,34 @@ struct GsocketCallbackInfo{ #define wxSockReadMask 0x01 #define wxSockWriteMask 0x02 +#ifdef __EMX__ extern "C" int wxAppAddSocketHandler(int handle, int mask, - void (*callback)(void*), void * gsock) + void (*callback)(void*), void * gsock) { return wxTheApp->AddSocketHandler(handle, mask, callback, gsock); } - extern "C" void wxAppRemoveSocketHandler(int handle) { wxTheApp->RemoveSocketHandler(handle); } +#else +// Linkage mode problems using callbacks with extern C in a .cpp module +int wxAppAddSocketHandler(int handle, int mask, + void (*callback)(void*), void * gsock) +{ + return wxTheApp->AddSocketHandler(handle, mask, callback, gsock); +} +void wxAppRemoveSocketHandler(int handle) +{ + wxTheApp->RemoveSocketHandler(handle); +} +#endif void wxApp::HandleSockets() { - bool pendingEvent = false; + bool pendingEvent = FALSE; // Check whether it's time for Gsocket operation if (m_maxSocketHandles > 0 && m_maxSocketNr > 0) @@ -179,7 +197,7 @@ void wxApp::HandleSockets() if (r < m_maxSocketHandles) { CallbackInfo[r].proc(CallbackInfo[r].gsock); - pendingEvent = true; + pendingEvent = TRUE; wxYield(); } } @@ -193,7 +211,7 @@ void wxApp::HandleSockets() if (r < m_maxSocketHandles) { CallbackInfo[r].proc(CallbackInfo[r].gsock); - pendingEvent = true; + pendingEvent = TRUE; wxYield(); } } @@ -1126,7 +1144,7 @@ bool wxYieldIfNeeded() { if (gs_inYield) return FALSE; - + return wxYield(); }