more things are done by configure: checks for bool, whether overloading based

on size_t/int works or not (for wxString), the type of 3rd argument to
getsockaddr, absence of libXpm is not fatal (not tested), whether strings.h
exists


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1914 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-03-12 19:12:49 +00:00
parent 55b7bba191
commit 57493f9f85
9 changed files with 808 additions and 565 deletions

View File

@@ -73,23 +73,24 @@ void wxMacProcessEvents() ;
#endif
#if defined(__WINDOWS__)
#include <winsock.h>
#include <winsock.h>
#endif // __WINDOWS__
#if defined(__UNIX__)
#ifdef VMS
#include <socket.h>
#else
#include <sys/socket.h>
#endif
#include <socket.h>
#else // !VMS
#include <sys/socket.h>
#endif // VMS/!VMS
#include <sys/ioctl.h>
#include <sys/time.h>
#include <unistd.h>
#ifdef sun
#include <sys/filio.h>
#include <sys/filio.h>
#endif
#endif // __UNIX__
@@ -98,30 +99,31 @@ void wxMacProcessEvents() ;
#include <errno.h>
#ifdef __VISUALC__
#include <io.h>
#include <io.h>
#endif
#if defined(__WXMOTIF__) || defined(__WXXT__)
#include <X11/Intrinsic.h>
#include <X11/Intrinsic.h>
/////////////////////////////
// Needs internal variables
/////////////////////////////
#ifdef __WXXT__
#define Uses_XtIntrinsic
#endif
#endif
/////////////////////////////
// Needs internal variables
/////////////////////////////
#ifdef __WXXT__
#define Uses_XtIntrinsic
#endif
#endif // Motif or Xt
#if defined(__WXGTK__)
#include <gtk/gtk.h>
#include <gtk/gtk.h>
#endif
/////////////////////////////////////////////////////////////////////////////
// wxSocket headers
/////////////////////////////////////////////////////////////////////////////
#include "wx/module.h"
#define WXSOCK_INTERNAL
#include "wx/sckaddr.h"
#include "wx/socket.h"
@@ -174,11 +176,11 @@ int PASCAL FAR __WSAFDIsSet(SOCKET fd, fd_set FAR *set)
#endif
#if defined(__WINDOWS__)
#define PROCESS_EVENTS() wxYield()
#define PROCESS_EVENTS() wxYield()
#elif defined(__WXXT__) || defined(__WXMOTIF__)
#define PROCESS_EVENTS() XtAppProcessEvent(wxAPP_CONTEXT, XtIMAll)
#define PROCESS_EVENTS() XtAppProcessEvent(wxAPP_CONTEXT, XtIMAll)
#elif defined(__WXGTK__)
#define PROCESS_EVENTS() gtk_main_iteration()
#define PROCESS_EVENTS() gtk_main_iteration()
#endif
/////////////////////////////////////////////////////////////////////////////
@@ -205,12 +207,12 @@ public:
// ClassInfos
// --------------------------------------------------------------
#if !USE_SHARED_LIBRARY
IMPLEMENT_CLASS(wxSocketBase, wxObject)
IMPLEMENT_CLASS(wxSocketServer, wxSocketBase)
IMPLEMENT_CLASS(wxSocketClient, wxSocketBase)
IMPLEMENT_CLASS(wxSocketHandler, wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxSocketEvent, wxEvent)
IMPLEMENT_DYNAMIC_CLASS(wxSocketModule, wxModule)
IMPLEMENT_CLASS(wxSocketBase, wxObject)
IMPLEMENT_CLASS(wxSocketServer, wxSocketBase)
IMPLEMENT_CLASS(wxSocketClient, wxSocketBase)
IMPLEMENT_CLASS(wxSocketHandler, wxObject)
IMPLEMENT_DYNAMIC_CLASS(wxSocketEvent, wxEvent)
IMPLEMENT_DYNAMIC_CLASS(wxSocketModule, wxModule)
#endif
class wxSockWakeUp : public wxTimer
@@ -532,24 +534,14 @@ void wxSocketBase::Discard()
#undef MAX_BUFSIZE
}
// If what? Who seems to need unsigned int?
// BTW uint isn't even defined on wxMSW for VC++ for some reason. Even if it
// were, getpeername/getsockname don't take unsigned int*, they take int*.
//
// Under glibc 2.0.7, socketbits.h declares socklen_t to be unsigned int
// and it uses *socklen_t as the 3rd parameter. Robert.
// JACS - How can we detect this?
// Meanwhile, if your compiler complains about socklen_t,
// switch lines below.
#if wxHAVE_GLIBC2
# typedef socklen_t wxSOCKET_INT;
#elif defined(__AIX__)
# typedef size_t wxSOCKET_INT;
#else
# typedef int wxSOCKET_INT;
#endif
// this is normally defined by configure, but if it wasn't try to do it here
#ifndef SOCKLEN_T
#if wxHAVE_GLIBC2
typedef socklen_t SOCKLEN_T;
#else
typedef int SOCKET_INT;
#endif
#endif // SOCKLEN_T
// --------------------------------------------------------------
// wxSocketBase socket info functions
@@ -558,7 +550,7 @@ void wxSocketBase::Discard()
bool wxSocketBase::GetPeer(wxSockAddress& addr_man) const
{
struct sockaddr my_addr;
wxSOCKET_INT len_addr = sizeof(my_addr);
SOCKLEN_T len_addr = (SOCKLEN_T)sizeof(my_addr);
if (m_fd < 0)
return FALSE;
@@ -573,13 +565,12 @@ bool wxSocketBase::GetPeer(wxSockAddress& addr_man) const
bool wxSocketBase::GetLocal(wxSockAddress& addr_man) const
{
struct sockaddr my_addr;
wxSOCKET_INT len_addr = sizeof(my_addr);
SOCKLEN_T len_addr = (SOCKLEN_T)sizeof(my_addr);
if (m_fd < 0)
return FALSE;
if (getsockname(m_fd, (struct sockaddr *)&my_addr, &len_addr) < 0)
return FALSE;
addr_man.Disassemble(&my_addr, len_addr);

View File

@@ -104,25 +104,14 @@ extern const char WXDLLEXPORT *g_szNul = &g_strEmpty.dummy;
// always available), but it's unsafe because it doesn't check for buffer
// size - so give a warning
#define wxVsprintf(buffer,len,format,argptr) vsprintf(buffer,format, argptr)
#if defined(__VISUALC__)
#pragma message("Using sprintf() because no snprintf()-like function defined")
#elif defined(__GNUG__)
#warning "Using sprintf() because no snprintf()-like function defined"
#elif defined(__MWERKS__)
#warning "Using sprintf() because no snprintf()-like function defined"
#elif defined(__WATCOMC__)
// No warning
#elif defined(__BORLANDC__)
// No warning
#elif defined(__SUNCC__)
// nothing -- I don't know about "#warning" for Sun's CC
#elif defined(__DECCXX)
// nothing
#else
// change this to some analogue of '#warning' for your compiler
#error "Using sprintf() because no snprintf()-like function defined"
#endif //compiler
#if defined(__VISUALC__)
#pragma message("Using sprintf() because no snprintf()-like function defined")
#elif defined(__GNUG__) && !defined(__UNIX__)
#warning "Using sprintf() because no snprintf()-like function defined"
#elif defined(__MWERKS__)
#warning "Using sprintf() because no snprintf()-like function defined"
#endif //compiler
#endif // no vsnprintf
// ----------------------------------------------------------------------------

View File

@@ -457,6 +457,7 @@ bool wxVariantDataReal::Read(wxString& str)
return TRUE;
}
#ifdef HAVE_BOOL
/*
* wxVariantDataBool
*/
@@ -547,6 +548,7 @@ bool wxVariantDataBool::Read(wxString& str)
m_value = (atol((const char*) str) != 0);
return TRUE;
}
#endif // HAVE_BOOL
/*
* wxVariantDataChar
@@ -991,11 +993,13 @@ wxVariant::wxVariant(long val, const wxString& name)
m_name = name;
}
#ifdef HAVE_BOOL
wxVariant::wxVariant(bool val, const wxString& name)
{
m_data = new wxVariantDataBool(val);
m_name = name;
}
#endif
wxVariant::wxVariant(char val, const wxString& name)
{
@@ -1205,6 +1209,7 @@ void wxVariant::operator= (char value)
}
}
#ifdef HAVE_BOOL
bool wxVariant::operator== (bool value) const
{
bool thisValue;
@@ -1232,6 +1237,7 @@ void wxVariant::operator= (bool value)
m_data = new wxVariantDataBool(value);
}
}
#endif // HAVE_BOOL
bool wxVariant::operator== (const wxString& value) const
{