]> git.saurik.com Git - wxWidgets.git/commitdiff
mac support as stubs added
authorStefan Csomor <csomor@advancedconcepts.ch>
Fri, 1 Jan 1999 16:22:21 +0000 (16:22 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Fri, 1 Jan 1999 16:22:21 +0000 (16:22 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1303 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

28 files changed:
include/wx/confbase.h
include/wx/defs.h
include/wx/filefn.h
include/wx/generic/msgdlgg.h
include/wx/msgdlg.h
include/wx/socket.h
include/wx/string.h
include/wx/taskbar.h
include/wx/wx_cw.h
include/wx/wx_cw_d.h
src/common/dynlib.cpp
src/common/file.cpp
src/common/fileconf.cpp
src/common/filefn.cpp
src/common/ftp.cpp
src/common/log.cpp
src/common/sckaddr.cpp
src/common/socket.cpp
src/common/timercmn.cpp
src/common/utilscmn.cpp
src/msw/dib.cpp
src/msw/dibutils.cpp
src/msw/minifram.cpp
src/msw/tbarmsw.cpp
src/msw/textctrl.cpp
src/msw/timer.cpp
src/msw/utils.cpp
src/msw/utilsexc.cpp

index 604e78fe363fb8c35c7fd53e5be763150eddcfa8..3c4773b05afcf419625cdbdd2f90be1067ad03a4 100644 (file)
@@ -222,7 +222,11 @@ public:
 
 protected:
   static bool IsImmutable(const wxString& key)
 
 protected:
   static bool IsImmutable(const wxString& key)
+  #ifndef __WXMAC__
     { return !key.IsEmpty() && key[0u] == wxCONFIG_IMMUTABLE_PREFIX; }
     { return !key.IsEmpty() && key[0u] == wxCONFIG_IMMUTABLE_PREFIX; }
+  #else
+    { return !key.IsEmpty() && key[0ul] == wxCONFIG_IMMUTABLE_PREFIX; }
+  #endif
 
 private:
   // are we doing automatic environment variable expansion?
 
 private:
   // are we doing automatic environment variable expansion?
index e68ab2cc01ddf0011013e04a10d68c03befe70b6..d906f098129aba12dcc4069a1f2359711b516751 100644 (file)
@@ -306,6 +306,11 @@ WXDLLEXPORT_DATA(extern const bool) wxFalse;
 #undef except
 #undef finally
 #define except(x) catch(...)
 #undef except
 #undef finally
 #define except(x) catch(...)
+#elif defined(__MWERKS__)
+#undef try
+#undef except
+#undef finally
+#define except(x) catch(...)
 #endif
 
 // where should i put this? we need to make sure of this as it breaks
 #endif
 
 // where should i put this? we need to make sure of this as it breaks
index b9c92f21f0c40b9fea38f4bef4ed93da811cedf6..3ce7a54ac2a032dc389d737f8b392d5f718c59b6 100644 (file)
 // ----------------------------------------------------------------------------
 
 // define off_t
 // ----------------------------------------------------------------------------
 
 // define off_t
+#ifndef __WXMAC__
 #include  <sys/types.h>
 #include  <sys/types.h>
+#else
+typedef long off_t;
+#endif
 
 #ifdef    _MSC_VER
   #define   off_t       _off_t
 
 #ifdef    _MSC_VER
   #define   off_t       _off_t
@@ -77,6 +81,11 @@ WXDLLEXPORT void wxDos2UnixFilename(char *s);
 WXDLLEXPORT void wxUnix2DosFilename(char *s);
 #define Unix2DosFilename wxUnix2DosFilename
 
 WXDLLEXPORT void wxUnix2DosFilename(char *s);
 #define Unix2DosFilename wxUnix2DosFilename
 
+#ifdef __WXMAC__
+  WXDLLEXPORT void wxMacPathToFSSpec( const char *path , FSSpec *spec ) ;
+  WXDLLEXPORT void wxMac2UnixFilename(char *s);
+  WXDLLEXPORT void wxUnix2MacFilename(char *s);
+#endif
 // Strip the extension, in situ
 WXDLLEXPORT void wxStripExtension(char *buffer);
 WXDLLEXPORT void wxStripExtension(wxString& buffer);
 // Strip the extension, in situ
 WXDLLEXPORT void wxStripExtension(char *buffer);
 WXDLLEXPORT void wxStripExtension(wxString& buffer);
index 84a58194f878a449bb8fee162d51a7d216c5de93..c9f37780377d4cdd62d5b9c7f17933372c60a1af 100644 (file)
@@ -40,7 +40,7 @@ public:
 DECLARE_EVENT_TABLE()
 };
 
 DECLARE_EVENT_TABLE()
 };
 
-#ifndef __WXMSW__
+#if !defined( __WXMSW__ ) && !defined( __WXMAC__)
 #define wxMessageDialog wxGenericMessageDialog
 
 int wxMessageBox(const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, 
 #define wxMessageDialog wxGenericMessageDialog
 
 int wxMessageBox(const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, 
index 81aba4972cf545facca21cbd66bf74c34cd89e9b..e0f80d630c296eff53279215bb9c24b6d6c4e37d 100644 (file)
@@ -10,7 +10,7 @@
 #elif defined(__WXQT__)
 #include "wx/generic/msgdlgg.h"
 #elif defined(__WXMAC__)
 #elif defined(__WXQT__)
 #include "wx/generic/msgdlgg.h"
 #elif defined(__WXMAC__)
-#include "wx/generic/msgdlgg.h"
+#include "wx/mac/msgdlg.h"
 #elif defined(__WXSTUBS__)
 #include "wx/generic/msgdlgg.h"
 #endif
 #elif defined(__WXSTUBS__)
 #include "wx/generic/msgdlgg.h"
 #endif
index 49db4403d1447aa1cb88dda955cd70ec7fec01dc..99422550b4fea59c94176b7c8e4b7defb7650399 100644 (file)
@@ -80,6 +80,9 @@ class WXDLLEXPORT wxSocketHandler;
 class WXDLLEXPORT wxSocketBase : public wxEvtHandler
 {
   DECLARE_CLASS(wxSocketBase)
 class WXDLLEXPORT wxSocketBase : public wxEvtHandler
 {
   DECLARE_CLASS(wxSocketBase)
+#ifdef __WXMAC__
+friend void wxMacSocketOnRequestProc(void *refcon , short event) ;
+#endif
 public:
 
   enum wxSockFlags { NONE=0, NOWAIT=1, WAITALL=2, SPEED=4 };
 public:
 
   enum wxSockFlags { NONE=0, NOWAIT=1, WAITALL=2, SPEED=4 };
@@ -329,6 +332,8 @@ public:
 
 typedef void (wxEvtHandler::*wxSocketEventFunction)(wxSocketEvent&);
 
 
 typedef void (wxEvtHandler::*wxSocketEventFunction)(wxSocketEvent&);
 
+#define wxEVT_SOCKET wxEVT_FIRST+301
+
 #define EVT_SOCKET(id, func) { wxEVT_SOCKET, id, 0, \
   (wxObjectEventFunction) (wxEventFunction) (wxSocketEventFunction) & func, \
   (wxObject *) NULL  },
 #define EVT_SOCKET(id, func) { wxEVT_SOCKET, id, 0, \
   (wxObjectEventFunction) (wxEventFunction) (wxSocketEventFunction) & func, \
   (wxObject *) NULL  },
index 9e7a4fe95bca01131a92aee0cc34fc9e2e3a02d6..0e8abe5d27409f06153a8fc28d3bd65775b94a22 100644 (file)
@@ -22,6 +22,9 @@
  *         stdarg.h
  *         limits.h
  */
  *         stdarg.h
  *         limits.h
  */
+#ifdef __WXMAC__
+#include <ctype.h>
+#endif
 #include <string.h>
 #include <stdio.h>
 #include <stdarg.h>
 #include <string.h>
 #include <stdio.h>
 #include <stdarg.h>
@@ -93,6 +96,14 @@ inline int WXDLLEXPORT Stricmp(const char *psz1, const char *psz2)
   return stricmp(psz1, psz2);
 #elif   defined(__UNIX__) || defined(__GNUWIN32__)
   return strcasecmp(psz1, psz2);
   return stricmp(psz1, psz2);
 #elif   defined(__UNIX__) || defined(__GNUWIN32__)
   return strcasecmp(psz1, psz2);
+#elif defined(__MWERKS__) && !defined(_MSC_VER)
+  register char c1, c2;
+  do {
+    c1 = tolower(*psz1++);
+    c2 = tolower(*psz2++);
+  } while ( c1 && (c1 == c2) );
+
+  return c1 - c2;
 #else
   // almost all compilers/libraries provide this function (unfortunately under
   // different names), that's why we don't implement our own which will surely
 #else
   // almost all compilers/libraries provide this function (unfortunately under
   // different names), that's why we don't implement our own which will surely
index 1e78999d42cc0358e1f2cd58365b9152652f18dd..614edbb6556f8aafbc51fb1c111e1041c1a7efd9 100644 (file)
@@ -8,6 +8,7 @@
 #elif defined(__WXGTK__)
 #elif defined(__WXQT__)
 #elif defined(__WXMAC__)
 #elif defined(__WXGTK__)
 #elif defined(__WXQT__)
 #elif defined(__WXMAC__)
+#include "wx/mac/taskbar.h"
 #elif defined(__WXSTUBS__)
 #include "wx/stubs/taskbar.h"
 #endif
 #elif defined(__WXSTUBS__)
 #include "wx/stubs/taskbar.h"
 #endif
index 7702030a3d390ada1975abd0186ed5897381f9a6..c8bf670a268f6dce83a53fe426ab6f5b68a0d21d 100644 (file)
 
 #ifndef _WX_CW__
 #define _WX_CW__
 
 #ifndef _WX_CW__
 #define _WX_CW__
-#define MSL_USE_PRECOMPILED_HEADERS    1
 
 
-#if !defined( __MWERKS__ )
-    #error "this file is only for builds with Metrowerks CodeWarrior"
-#endif 
-
-#define WX_COMP_INLINE_NO_CLASS // defined if the compiler does not want the classname repeated for inlines within a class definition
-
-#if (__MWERKS__ < 0x0900) || macintosh
-    #define __MAC__
-    #define __WXMAC__
-    #define    USE_PRECOMPILED_MAC_HEADERS     1  /*Set to 0 if you don't want to use precompiled MacHeaders*/
-    #include <ansi_prefix.mac.h>
-    #define WX_PRECOMP
-// automatically includes MacHeaders
-#elif (__MWERKS__ >= 0x0900) && __INTEL__
-    #define __WXMSW__
-    #define __WINDOWS__
-    #define __WIN95__
-    #define STRICT
-    #define NOMINMAX
-    #include <ansi_prefix.win32.h>
-#elif __BEOS__
-    #include <ansi_prefix.be.h>
-    #include <Be.h>
-#else  
-    #error unknown MW compiler
+#ifdef __cplusplus
+       #if __POWERPC__
+               #include <wx_PPC++.mch>
+       #elif __INTEL__
+               #include <wx_x86++.mch>
+       #elif __CFM68K__
+               #include <wx_cfm++.mch>
+       #else
+               #include <wx_68k++.mch>
+       #endif
+#else
+       #if __POWERPC__
+               #include <wx_PPC.mch>
+       #elif __INTEL__
+               #include <wx_x86.mch>
+       #elif __CFM68K__
+               #include <wx_cfm.mch>
+       #else
+               #include <wx_68k.mch>
+       #endif
 #endif
 
 #endif
 
-// in order to avoid problems further down in wxWindows
-
-char *strdup(const char *s) ;
-
 #endif
     // _WX_CW__
 #endif
     // _WX_CW__
index 275e130219ba9f182b05667b2768da2ee0e0e128..f56d8cdc0ab5ab2c4352260a552fdad03b68071b 100644 (file)
 #ifndef _WX_CW__
 #define _WX_CW__
 
 #ifndef _WX_CW__
 #define _WX_CW__
 
-#define MSL_USE_PRECOMPILED_HEADERS    1
-
-#if !defined( __MWERKS__ )
-       #error "this file is only for builds with Metrowerks CodeWarrior"
-#endif 
-
-#define WX_COMP_INLINE_NO_CLASS // defined if the compiler does not want the classname repeated for inlines within a class definition
-
-#if (__MWERKS__ < 0x0900) || macintosh
-       #define __MAC__
-       #define __WXMAC__
-       #define USE_PRECOMPILED_MAC_HEADERS     1  /*Set to 0 if you don't want to use precompiled MacHeaders*/
-       #include <ansi_prefix.mac.h>
-       #define WX_PRECOMP
-       // automatically includes MacHeaders
-#elif (__MWERKS__ >= 0x0900) && __INTEL__
-       #define __WXMSW__
-       #define __WINDOWS__
-       #define __WIN95__
-       #define STRICT
-       #define NOMINMAX
-       #include <ansi_prefix.win32.h>
-//             #include <Windows.h>
-//             #include <COMMCTRL.H>
-#elif __BEOS__
-       #include <ansi_prefix.be.h>
-       #include <Be.h>
-#else  
-       #error unknown MW compiler
-#endif
-
-#define __WXDEBUG__
-#define USE_DEFINE
-// in order to avoid problems further down in wxWindows
-
-#ifdef __cplusplus
-extern "C" 
-{
-#endif
-       char *strdup(const char *s) ;
-       int     isascii( int c ) ;
 #ifdef __cplusplus
 #ifdef __cplusplus
-} ;
+       #if __POWERPC__
+               #include <wx_PPC++_d.mch>
+       #elif __INTEL__
+               #include <wx_x86++_d.mch>
+       #elif __CFM68K__
+               #include <wx_cfm++_d.mch>
+       #else
+               #include <wx_68k++_d.mch>
+       #endif
+#else
+       #if __POWERPC__
+               #include <wx_PPC_d.mch>
+       #elif __INTEL__
+               #include <wx_x86_d.mch>
+       #elif __CFM68K__
+               #include <wx_cfm_d.mch>
+       #else
+               #include <wx_68k_d.mch>
+       #endif
 #endif
 #endif
+
 #endif
     // _WX_CW__
 #endif
     // _WX_CW__
index cab20994b9cc2233ca36c75df127f7fd5801ad0b..6b8bf78e38f06d4cbd4e15fbae7ad8120acd3db8 100644 (file)
@@ -117,9 +117,20 @@ void *wxLibrary::GetSymbol(const wxString& symbname)
 {
 #if defined(__UNIX__)
   return dlsym(m_handle, WXSTRINGCAST symbname);
 {
 #if defined(__UNIX__)
   return dlsym(m_handle, WXSTRINGCAST symbname);
-#endif
-#ifdef __WINDOWS__
+#elif defined( __WINDOWS__ )
   return GetProcAddress((HINSTANCE) m_handle, WXSTRINGCAST symbname);
   return GetProcAddress((HINSTANCE) m_handle, WXSTRINGCAST symbname);
+#elif defined( __WXMAC__ )
+  Ptr symAddress ;
+  CFragSymbolClass symClass ;
+  Str255       symName ;
+       
+  strcpy( (char*) symName , symbname ) ;
+  c2pstr( (char*) symName ) ;
+       
+  if ( FindSymbol( (CFragConnectionID) m_handle , symName , &symAddress , &symClass ) == noErr )
+  {
+    return symAddress ; 
+  }
 #endif
   return NULL;
 }
 #endif
   return NULL;
 }
@@ -184,6 +195,20 @@ wxLibrary *wxLibraries::LoadLibrary(const wxString& name)
 #endif
   if (!handle)
     return NULL;
 #endif
   if (!handle)
     return NULL;
+#elif defined(__WXMAC__)
+  FSSpec myFSSpec ;
+  CFragConnectionID handle ;
+  Ptr  myMainAddr ;
+  Str255       myErrName ;
+       
+  wxMacPathToFSSpec( lib_name , &myFSSpec ) ;
+  if (GetDiskFragment( &myFSSpec , 0 , kCFragGoesToEOF , "\p" , kPrivateCFragCopy , &handle , &myMainAddr ,
+    myErrName ) != noErr )
+  {
+    p2cstr( myErrName ) ;
+    wxASSERT_MSG( 1 , (char*)myErrName ) ;
+       return NULL ;
+  }
 #else
   return NULL;
 #endif
 #else
   return NULL;
 #endif
index 61e0b07afb508d6e6f54905539c1c6d87bea1c18..30bc2d13d7e1e96dfc6ab2617ae8479b48f8b8d7 100644 (file)
 #elif (defined(__WXSTUBS__))
   // Have to ifdef this for different environments
   #include <io.h>
 #elif (defined(__WXSTUBS__))
   // Have to ifdef this for different environments
   #include <io.h>
+#elif (defined(__WXMAC__))
+  int access( const char *path, int mode ) { return 0 ; }
+  char* mktemp( char * path ) { return path ;}
+  #include  <unistd.h>
+  #include  <unix.h>
+  #define   W_OK        2
+  #define   R_OK        4
 #else
   #error  "Please specify the header with file functions declarations."
 #endif  //Win/UNIX
 #else
   #error  "Please specify the header with file functions declarations."
 #endif  //Win/UNIX
@@ -443,7 +450,7 @@ bool wxTempFile::Open(const wxString& strName)
   // otherwise rename() in Commit() might not work (if the files are on
   // different partitions for example). Unfortunately, the only standard
   // (POSIX) temp file creation function tmpnam() can't do it.
   // otherwise rename() in Commit() might not work (if the files are on
   // different partitions for example). Unfortunately, the only standard
   // (POSIX) temp file creation function tmpnam() can't do it.
-  #if defined(__UNIX__) || defined(__WXSTUBS__)
+  #if defined(__UNIX__) || defined(__WXSTUBS__)|| defined( __WXMAC__ )
     static const char *szMktempSuffix = "XXXXXX";
     m_strTemp << strName << szMktempSuffix;
     mktemp((char *)m_strTemp.c_str()); // will do because length doesn't change
     static const char *szMktempSuffix = "XXXXXX";
     m_strTemp << strName << szMktempSuffix;
     mktemp((char *)m_strTemp.c_str()); // will do because length doesn't change
index 92ca337641676a5ba05309a1cf35d0d229507534..1baee8911e1cc69fec6794a487c552efc20ea2ec 100644 (file)
@@ -97,6 +97,8 @@ wxString wxFileConfig::GetGlobalDir()
     strDir = "/etc/";
   #elif defined(__WXSTUBS__)
     wxASSERT_MSG( FALSE, "TODO" ) ;
     strDir = "/etc/";
   #elif defined(__WXSTUBS__)
     wxASSERT_MSG( FALSE, "TODO" ) ;
+  #elif defined(__WXMAC__)
+    wxASSERT_MSG( FALSE, "TODO" ) ;
   #else // Windows
     char szWinDir[MAX_PATH];
     ::GetWindowsDirectory(szWinDir, MAX_PATH);
   #else // Windows
     char szWinDir[MAX_PATH];
     ::GetWindowsDirectory(szWinDir, MAX_PATH);
index e8d93b2cf5ed21c313586268907c82b500feab1c..af885044bd1073ba3e1e821032eef72b69ec444d 100644 (file)
 #define _MAXPATHLEN 500
 
 extern char *wxBuffer;
 #define _MAXPATHLEN 500
 
 extern char *wxBuffer;
+#ifdef __WXMAC__
+extern char gwxMacFileName[] ;
+extern char gwxMacFileName2[] ;
+extern char gwxMacFileName3[] ;
+#endif
 
 #if !USE_SHARED_LIBRARIES
 IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxStringList)
 
 #if !USE_SHARED_LIBRARIES
 IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxStringList)
@@ -147,7 +152,7 @@ bool wxPathList::Member (const wxString& path)
   {
       wxString path2((char *) node->Data ());
       if (
   {
       wxString path2((char *) node->Data ());
       if (
-#if defined(__WINDOWS__) || defined(__VMS__)
+#if defined(__WINDOWS__) || defined(__VMS__) || defined (__WXMAC__)
       // Case INDEPENDENT
          path.CompareTo (path2, wxString::ignoreCase) == 0
 #else
       // Case INDEPENDENT
          path.CompareTo (path2, wxString::ignoreCase) == 0
 #else
@@ -225,6 +230,13 @@ wxFileExists (const wxString& filename)
     return FALSE;
   else
     return TRUE;
     return FALSE;
   else
     return TRUE;
+#elif defined(__WXMAC__)
+       struct stat stbuf;
+       strcpy( gwxMacFileName , filename ) ;
+       wxUnix2MacFilename( gwxMacFileName ) ;
+       if (gwxMacFileName && stat ((char *)(const char *)gwxMacFileName, &stbuf) == 0)
+       return TRUE;
+    return FALSE ;
 #else
   struct stat stbuf;
 
 #else
   struct stat stbuf;
 
@@ -738,6 +750,58 @@ wxString wxPathOnly (const wxString& path)
 // and back again - or we get nasty problems with delimiters.
 // Also, convert to lower case, since case is significant in UNIX.
 
 // and back again - or we get nasty problems with delimiters.
 // Also, convert to lower case, since case is significant in UNIX.
 
+#ifdef __WXMAC__
+void 
+wxMac2UnixFilename (char *s)
+{
+       if (s)
+       {
+               memmove( s+1 , s ,strlen( s ) + 1) ;
+               if ( *s == ':' )
+                       *s = '.' ;
+               else
+                       *s = '/' ;
+                       
+               while (*s)
+               {
+                       if (*s == ':')
+                         *s = '/';
+                       else
+                         *s = wxToLower (*s);  // Case INDEPENDENT
+                       s++;
+               }
+       }
+}
+
+void 
+wxUnix2MacFilename (char *s)
+{
+       if (s)
+       {
+               if ( *s == '.' )
+               {
+                       // relative path , since it goes on with slash which is translated to a : 
+                       memmove( s , s+1 ,strlen( s ) ) ;
+               }
+               else if ( *s == '/' )
+               {
+                       // absolute path -> on mac just start with the drive name
+                       memmove( s , s+1 ,strlen( s ) ) ;
+               }
+               else
+               {
+                       wxASSERT_MSG( 1 , "unkown path beginning" ) ;
+               }
+               while (*s)
+               {
+                       if (*s == '/' || *s == '\\')
+                               *s = ':';
+
+                       s++ ;
+               }
+       }
+}
+#endif
 void 
 wxDos2UnixFilename (char *s)
 {
 void 
 wxDos2UnixFilename (char *s)
 {
@@ -783,9 +847,22 @@ wxConcatFiles (const wxString& file1, const wxString& file2, const wxString& fil
   FILE *fp2 = (FILE *) NULL;
   FILE *fp3 = (FILE *) NULL;
   // Open the inputs and outputs
   FILE *fp2 = (FILE *) NULL;
   FILE *fp3 = (FILE *) NULL;
   // Open the inputs and outputs
+#ifdef __WXMAC__
+       strcpy( gwxMacFileName , file1 ) ;
+       wxUnix2MacFilename( gwxMacFileName ) ;
+       strcpy( gwxMacFileName2 , file2) ;
+       wxUnix2MacFilename( gwxMacFileName2 ) ;
+       strcpy( gwxMacFileName3 , outfile) ;
+       wxUnix2MacFilename( gwxMacFileName3 ) ;
+
+  if ((fp1 = fopen (gwxMacFileName, "rb")) == NULL ||
+      (fp2 = fopen (gwxMacFileName2, "rb")) == NULL ||
+      (fp3 = fopen (gwxMacFileName3, "wb")) == NULL)
+#else
   if ((fp1 = fopen (WXSTRINGCAST file1, "rb")) == NULL ||
       (fp2 = fopen (WXSTRINGCAST file2, "rb")) == NULL ||
       (fp3 = fopen (outfile, "wb")) == NULL)
   if ((fp1 = fopen (WXSTRINGCAST file1, "rb")) == NULL ||
       (fp2 = fopen (WXSTRINGCAST file2, "rb")) == NULL ||
       (fp3 = fopen (outfile, "wb")) == NULL)
+#endif
     {
       if (fp1)
        fclose (fp1);
     {
       if (fp1)
        fclose (fp1);
@@ -819,9 +896,20 @@ wxCopyFile (const wxString& file1, const wxString& file2)
   FILE *fd2;
   int ch;
 
   FILE *fd2;
   int ch;
 
+#ifdef __WXMAC__
+       strcpy( gwxMacFileName , file1 ) ;
+       wxUnix2MacFilename( gwxMacFileName ) ;
+       strcpy( gwxMacFileName2 , file2) ;
+       wxUnix2MacFilename( gwxMacFileName2 ) ;
+
+  if ((fd1 = fopen (gwxMacFileName, "rb")) == NULL)
+    return FALSE;
+  if ((fd2 = fopen (gwxMacFileName2, "wb")) == NULL)
+#else
   if ((fd1 = fopen (WXSTRINGCAST file1, "rb")) == NULL)
     return FALSE;
   if ((fd2 = fopen (WXSTRINGCAST file2, "wb")) == NULL)
   if ((fd1 = fopen (WXSTRINGCAST file1, "rb")) == NULL)
     return FALSE;
   if ((fd2 = fopen (WXSTRINGCAST file2, "wb")) == NULL)
+#endif
     {
       fclose (fd1);
       return FALSE;
     {
       fclose (fd1);
       return FALSE;
@@ -838,9 +926,19 @@ wxCopyFile (const wxString& file1, const wxString& file2)
 bool 
 wxRenameFile (const wxString& file1, const wxString& file2)
 {
 bool 
 wxRenameFile (const wxString& file1, const wxString& file2)
 {
+#ifdef __WXMAC__
+       strcpy( gwxMacFileName , file1 ) ;
+       wxUnix2MacFilename( gwxMacFileName ) ;
+       strcpy( gwxMacFileName2 , file2) ;
+       wxUnix2MacFilename( gwxMacFileName2 ) ;
+
+  if (0 == rename (gwxMacFileName, gwxMacFileName2))
+    return TRUE;
+#else
   // Normal system call
   if (0 == rename (WXSTRINGCAST file1, WXSTRINGCAST file2))
     return TRUE;
   // Normal system call
   if (0 == rename (WXSTRINGCAST file1, WXSTRINGCAST file2))
     return TRUE;
+#endif
   // Try to copy
   if (wxCopyFile(file1, file2)) {
     wxRemoveFile(file1);
   // Try to copy
   if (wxCopyFile(file1, file2)) {
     wxRemoveFile(file1);
@@ -854,6 +952,10 @@ bool wxRemoveFile(const wxString& file)
 {
 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
   int flag = remove(WXSTRINGCAST file);
 {
 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
   int flag = remove(WXSTRINGCAST file);
+#elif defined( __WXMAC__ )
+       strcpy( gwxMacFileName , file ) ;
+       wxUnix2MacFilename( gwxMacFileName ) ;
+  int flag = unlink(gwxMacFileName);
 #else
   int flag = unlink(WXSTRINGCAST file);
 #endif
 #else
   int flag = unlink(WXSTRINGCAST file);
 #endif
@@ -866,6 +968,10 @@ bool wxMkdir(const wxString& dir)
   return FALSE;
 #elif defined(__VMS__)
        return FALSE;
   return FALSE;
 #elif defined(__VMS__)
        return FALSE;
+#elif defined( __WXMAC__ )
+  strcpy( gwxMacFileName , dir ) ;
+  wxUnix2MacFilename( gwxMacFileName ) ;
+  return (mkdir(gwxMacFileName , 0 ) == 0);
 #elif (defined(__GNUWIN32__) && !defined(__MINGW32__)) || !defined(__WXMSW__)
   return (mkdir (WXSTRINGCAST dir, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) == 0);
 #else
 #elif (defined(__GNUWIN32__) && !defined(__MINGW32__)) || !defined(__WXMSW__)
   return (mkdir (WXSTRINGCAST dir, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) == 0);
 #else
@@ -877,6 +983,10 @@ bool wxRmdir(const wxString& dir, int WXUNUSED(flags))
 {
 #ifdef __VMS__
   return FALSE;
 {
 #ifdef __VMS__
   return FALSE;
+#elif defined( __WXMAC__ )
+       strcpy( gwxMacFileName , dir ) ;
+       wxUnix2MacFilename( gwxMacFileName ) ;
+  return (rmdir(WXSTRINGCAST gwxMacFileName) == 0);
 #else
   return (rmdir(WXSTRINGCAST dir) == 0);
 #endif
 #else
   return (rmdir(WXSTRINGCAST dir) == 0);
 #endif
@@ -1278,7 +1388,7 @@ char *wxGetWorkingDirectory(char *buf, int sz)
 
 bool wxSetWorkingDirectory(const wxString& d)
 {
 
 bool wxSetWorkingDirectory(const wxString& d)
 {
-#ifdef __UNIX__
+#if defined( __UNIX__ ) || defined( __WXMAC__ )
   return (chdir(d) == 0);
 #elif defined(__WINDOWS__)
 
   return (chdir(d) == 0);
 #elif defined(__WINDOWS__)
 
index ee2ac234d569f2f333a3f8c3758252079f266226..920e50e2cc89af89a084daf9c92c807cb9fef946 100644 (file)
 #ifndef __MWERKS__
 #include <memory.h>
 #endif
 #ifndef __MWERKS__
 #include <memory.h>
 #endif
+#if defined(__WXMAC__)
+#include "/wx/mac/macsock.h"
+#endif
+
 #include <stdlib.h>
 #include "wx/string.h"
 #include "wx/utils.h"
 #include <stdlib.h>
 #include "wx/string.h"
 #include "wx/utils.h"
index db45214b9e7d092c0c31181779f3304a868243c9..f92320b0f81535a94f28c687a17d0bc8222c6761 100644 (file)
@@ -944,6 +944,12 @@ void Trap()
     DebugBreak();
   #elif defined(__WXSTUBS__)
     // TODO
     DebugBreak();
   #elif defined(__WXSTUBS__)
     // TODO
+  #elif defined(__WXMAC__)
+  #if __powerc
+    Debugger();
+  #else
+    SysBreak();
+  #endif
   #else // Unix
     raise(SIGTRAP);
   #endif // Win/Unix
   #else // Unix
     raise(SIGTRAP);
   #endif // Win/Unix
index d681261969a36c59afcf9ce1d7efbd1e3187ccb6..b61afc01a44aca9141d48f6958b4ccea8e51a892 100644 (file)
 #include "wx/defs.h"
 #include "wx/object.h"
 
 #include "wx/defs.h"
 #include "wx/object.h"
 
+#if defined(__WXMAC__)
+#include "/wx/mac/macsock.h"
+#endif
+
 #if defined(__WINDOWS__)
 #include <winsock.h>
 #endif // __WINDOWS__
 #if defined(__WINDOWS__)
 #include <winsock.h>
 #endif // __WINDOWS__
@@ -121,7 +125,11 @@ bool wxIPV4address::Hostname(const wxString& name)
       return FALSE;
     }
   } else {
       return FALSE;
     }
   } else {
+#ifdef __WXMAC__
+    long len_addr = inet_addr(name.GetData()).s_addr ;
+#else
     long len_addr = inet_addr(name.GetData());
     long len_addr = inet_addr(name.GetData());
+#endif
     if (len_addr == -1)
       return FALSE;
     m_addr->sin_addr.s_addr = len_addr;
     if (len_addr == -1)
       return FALSE;
     m_addr->sin_addr.s_addr = len_addr;
index 82f44c03c5ab332f41cffcbbf4bdf75cde62eab4..124df439516c5b8ad987efe05f941d27086c389f 100644 (file)
 // #pragma implementation "socket.cpp"
 #endif
 
 // #pragma implementation "socket.cpp"
 #endif
 
+#ifdef __MWERKS__
+typedef int socklen_t ;
+#endif
+
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 /////////////////////////////////////////////////////////////////////////////
 // System specific headers
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
 // System specific headers
 /////////////////////////////////////////////////////////////////////////////
+#ifdef __WXMAC__
+// in order to avoid problems with our c library and double definitions
+#define close closesocket
+#define ioctl ioctlsocket
+
+#include <wx/mac/macsock.h>
+extern GUSISpinFn GUSISpin;
+#define PROCESS_EVENTS() wxMacProcessEvents()
+const short kwxMacNetEventsMax = 1000 ;
+short wxMacNetEventsTop = 0 ;
+short wxMacNetEventsBottom = 0 ;
+short wxMacNetEventsEvents[kwxMacNetEventsMax] ;
+void *wxMacNetEventsReferences[kwxMacNetEventsMax] ;
+
+#define FD_READ 1
+#define FD_WRITE 2
+#define FD_CLOSE 4
+#define FD_ACCEPT 8
+#define FD_CONNECT 16
+#define FD_READY 32
+
+extern "C" void wxMacSocketHandlerProc( void *refcon , short event ) ; // adds events
+extern "C" void wxMacSocketOnRequestProc( void *refcon , short event ) ; // consumes them
+extern "C" void GUSISetReference( short sock , short eventmask , void * data ) ;
+void wxMacProcessEvents() ;
+#endif
+
 #if defined(__WINDOWS__)
 #include <winsock.h>
 #endif // __WINDOWS__
 #if defined(__WINDOWS__)
 #include <winsock.h>
 #endif // __WINDOWS__
 #if defined( NEED_WSAFDIsSet ) || defined( _MSC_VER )
 int PASCAL FAR __WSAFDIsSet(SOCKET fd, fd_set FAR *set)
 {
 #if defined( NEED_WSAFDIsSet ) || defined( _MSC_VER )
 int PASCAL FAR __WSAFDIsSet(SOCKET fd, fd_set FAR *set)
 {
-       int i = set->fd_count;
+  int i = set->fd_count;
 
 
-       while (i--)
-       {
-               if (set->fd_array[i] == fd)
-                       return 1;
-       }
+  while (i--)
+  {
+    if (set->fd_array[i] == fd)
+      return 1;
+  }
 
 
-       return 0;
+  return 0;
 }
 #endif
 #endif
 }
 #endif
 #endif
@@ -218,7 +249,7 @@ public:
 // --------- wxSocketBase CONSTRUCTOR ---------------------------
 // --------------------------------------------------------------
 wxSocketBase::wxSocketBase(wxSocketBase::wxSockFlags _flags,
 // --------- wxSocketBase CONSTRUCTOR ---------------------------
 // --------------------------------------------------------------
 wxSocketBase::wxSocketBase(wxSocketBase::wxSockFlags _flags,
-                          wxSocketBase::wxSockType _type) :
+         wxSocketBase::wxSockType _type) :
   wxEvtHandler(),
   m_flags(_flags), m_type(_type), m_connected(FALSE), m_connecting(FALSE),
   m_fd(INVALID_SOCKET), m_waitflags(0), m_cbk(0), m_cdata(0), m_id(-1),
   wxEvtHandler(),
   m_flags(_flags), m_type(_type), m_connected(FALSE), m_connecting(FALSE),
   m_fd(INVALID_SOCKET), m_waitflags(0), m_cbk(0), m_cdata(0), m_id(-1),
@@ -624,7 +655,7 @@ bool wxSocketBase::WaitForLost(long seconds, long microseconds)
 #if defined(__WXMOTIF__) || defined(__WXXT__) || defined(__WXGTK__)
 #if defined(__WXMOTIF__) || defined(__WXXT__)
 static void wx_socket_read(XtPointer client, int *fid,
 #if defined(__WXMOTIF__) || defined(__WXXT__) || defined(__WXGTK__)
 #if defined(__WXMOTIF__) || defined(__WXXT__)
 static void wx_socket_read(XtPointer client, int *fid,
-                          XtInputId *WXUNUSED(id))
+         XtInputId *WXUNUSED(id))
 #define fd *fid
 #else
 static void wx_socket_read(gpointer client, gint fd,
 #define fd *fid
 #else
 static void wx_socket_read(gpointer client, gint fd,
@@ -668,10 +699,10 @@ static void wx_socket_read(gpointer client, gint fd,
 
 #if defined(__WXMOTIF__) || defined(__WXXT__)
 static void wx_socket_write(XtPointer client, int *WXUNUSED(fid),
 
 #if defined(__WXMOTIF__) || defined(__WXXT__)
 static void wx_socket_write(XtPointer client, int *WXUNUSED(fid),
-                           XtInputId *WXUNUSED(id))
+          XtInputId *WXUNUSED(id))
 #else
 static void wx_socket_write(gpointer client, gint WXUNUSED(fd),
 #else
 static void wx_socket_write(gpointer client, gint WXUNUSED(fd),
-                           GdkInputCondition WXUNUSED(cond))
+          GdkInputCondition WXUNUSED(cond))
 #endif
 {
   wxSocketBase *sock = (wxSocketBase *)client;
 #endif
 {
   wxSocketBase *sock = (wxSocketBase *)client;
@@ -795,7 +826,6 @@ void wxSocketBase::SetupCallbacks()
   if (m_fd == INVALID_SOCKET || !m_handler || (m_flags & SPEED))
     return;
 
   if (m_fd == INVALID_SOCKET || !m_handler || (m_flags & SPEED))
     return;
 
-
 #if defined(__WXMOTIF__) || defined(__WXXT__)
   if (m_neededreq & (REQ_ACCEPT | REQ_READ | REQ_LOST)) 
   {
 #if defined(__WXMOTIF__) || defined(__WXXT__)
   if (m_neededreq & (REQ_ACCEPT | REQ_READ | REQ_LOST)) 
   {
@@ -894,6 +924,24 @@ void wxSocketBase::SetupCallbacks()
   if (!m_internal->my_msg)
     m_internal->my_msg = m_handler->NewMessage(this);
   WSAAsyncSelect(m_fd, m_handler->GetHWND(), m_internal->my_msg, mask);
   if (!m_internal->my_msg)
     m_internal->my_msg = m_handler->NewMessage(this);
   WSAAsyncSelect(m_fd, m_handler->GetHWND(), m_internal->my_msg, mask);
+#endif
+#ifdef __WXMAC__
+  short mask = 0;
+
+  if (m_neededreq & REQ_READ)
+    mask |= FD_READ;
+  if (m_neededreq & REQ_WRITE)
+    mask |= FD_WRITE;
+  if (m_neededreq & REQ_LOST)
+    mask |= FD_CLOSE;
+  if (m_neededreq & REQ_ACCEPT)
+    mask |= FD_ACCEPT;
+  if (m_neededreq & REQ_CONNECT)
+    mask |= FD_CONNECT;
+
+  GUSISetReference( m_fd ,mask, this ) ;
+  unsigned long flag = 1;
+  ioctl(m_fd, FIONBIO, &flag);
 #endif
   m_cbkon = TRUE;
   m_processing = FALSE;
 #endif
   m_cbkon = TRUE;
   m_processing = FALSE;
@@ -925,6 +973,20 @@ void wxSocketBase::DestroyCallbacks()
 #ifdef __WINDOWS__
   WSAAsyncSelect(m_fd, m_handler->GetHWND(), 0, 0);
 #endif
 #ifdef __WINDOWS__
   WSAAsyncSelect(m_fd, m_handler->GetHWND(), 0, 0);
 #endif
+#ifdef __WXMAC__
+  GUSISetReference( m_fd , 0 , 0 ) ;
+  int bottom = wxMacNetEventsBottom ;
+  while ( wxMacNetEventsTop != bottom )
+  {
+    // set all events that reference this socket to nil
+    if ( wxMacNetEventsReferences[bottom] == (void*) this )
+      wxMacNetEventsReferences[bottom] = NULL ;
+    bottom++ ;
+    if ( bottom == kwxMacNetEventsMax )
+      bottom = 0 ;
+  }
+  SetFlags( m_flags ) ;
+#endif
 }
 
 void wxSocketBase::Notify(bool notify)
 }
 
 void wxSocketBase::Notify(bool notify)
@@ -1173,7 +1235,7 @@ void wxSocketBase::WantSpeedBuffer(char *buffer, size_t nbytes,
 }
 
 void wxSocketBase::WantBuffer(char *buffer, size_t nbytes,
 }
 
 void wxSocketBase::WantBuffer(char *buffer, size_t nbytes,
-                             wxRequestEvent evt)
+            wxRequestEvent evt)
 {
   bool buf_timed_out;
 
 {
   bool buf_timed_out;
 
@@ -1230,7 +1292,7 @@ void wxSocketBase::WantBuffer(char *buffer, size_t nbytes,
 // --------------------------------------------------------------
 
 wxSocketServer::wxSocketServer(wxSockAddress& addr_man,
 // --------------------------------------------------------------
 
 wxSocketServer::wxSocketServer(wxSockAddress& addr_man,
-                              wxSockFlags flags) :
+             wxSockFlags flags) :
   wxSocketBase(flags, SOCK_SERVER)
 {
   m_fd = socket(addr_man.GetFamily(), SOCK_STREAM, 0);
   wxSocketBase(flags, SOCK_SERVER)
 {
   m_fd = socket(addr_man.GetFamily(), SOCK_STREAM, 0);
@@ -1321,7 +1383,7 @@ void wxSocketServer::OnRequest(wxRequestEvent evt)
 // --------- wxSocketClient CONSTRUCTOR -------------------------
 // --------------------------------------------------------------
 wxSocketClient::wxSocketClient(wxSockFlags _flags) :
 // --------- wxSocketClient CONSTRUCTOR -------------------------
 // --------------------------------------------------------------
 wxSocketClient::wxSocketClient(wxSockFlags _flags) :
-       wxSocketBase(_flags, SOCK_CLIENT)
+  wxSocketBase(_flags, SOCK_CLIENT)
 {
 }
 
 {
 }
 
@@ -1430,6 +1492,64 @@ static int win_initialized = 0;
 // --------------------------------------------------------------
 // --------- wxSocketHandler CONSTRUCTOR ------------------------
 // --------------------------------------------------------------
 // --------------------------------------------------------------
 // --------- wxSocketHandler CONSTRUCTOR ------------------------
 // --------------------------------------------------------------
+#ifdef __WXMAC__
+
+extern "C" int updatestatus(int s) ;
+
+void wxMacSocketOnRequestProc( void *refcon , short event )
+{
+  if ( refcon )
+  {
+    wxSocketBase *sock = (wxSocketBase *) refcon ;  
+    
+    wxSocketBase::wxRequestEvent sk_req;
+    
+    int canRead ;
+    int canWrite ;
+    int exception ;
+    
+    switch (event) {
+    case FD_READ:
+      sk_req = wxSocketBase::EVT_READ;
+     sock->OnRequest(sk_req);
+      break;
+    case FD_WRITE:
+      sk_req = wxSocketBase::EVT_WRITE;
+      sock->OnRequest(sk_req);
+      break;
+    case FD_CLOSE:
+      sk_req = wxSocketBase::EVT_LOST;
+     sock->OnRequest(sk_req);
+      break;
+    case FD_ACCEPT:
+      sk_req = wxSocketBase::EVT_ACCEPT;
+      sock->OnRequest(sk_req);
+      break;
+    case FD_CONNECT:
+      sk_req = wxSocketBase::EVT_CONNECT;
+      sock->OnRequest(sk_req);
+      break;
+    case FD_READY :
+      break ;
+    }
+    updatestatus ( sock->m_fd ) ;
+  }
+}
+
+void wxMacSocketHandlerProc( void *refcon , short event )
+{
+  wxMacNetEventsReferences[wxMacNetEventsTop] = refcon ;
+  wxMacNetEventsEvents[wxMacNetEventsTop] = event ;
+
+  // clumsy construct in order to never have a incorrect wxMacNetEventsTop (above limits)
+
+  if ( wxMacNetEventsTop + 1 == kwxMacNetEventsMax )
+    wxMacNetEventsTop = 0 ;
+  else
+    wxMacNetEventsTop++ ;
+}
+
+#endif
 #ifdef __WINDOWS__
 
 extern char wxPanelClassName[];
 #ifdef __WINDOWS__
 
 extern char wxPanelClassName[];
@@ -1439,8 +1559,8 @@ LRESULT APIENTRY _EXPORT wxSocketHandlerWndProc(HWND hWnd, UINT message,
 {
   if(message==WM_DESTROY)
   {
 {
   if(message==WM_DESTROY)
   {
-         ::SetWindowLong(hWnd, GWL_WNDPROC, (LONG) DefWindowProc);
-         return DefWindowProc(hWnd, message, wParam, lParam);
+    ::SetWindowLong(hWnd, GWL_WNDPROC, (LONG) DefWindowProc);
+    return DefWindowProc(hWnd, message, wParam, lParam);
   }
   wxSocketHandler *h_sock = (wxSocketHandler *)GetWindowLong(hWnd, GWL_USERDATA);
   wxNode *node = h_sock->smsg_list->Find(message);
   }
   wxSocketHandler *h_sock = (wxSocketHandler *)GetWindowLong(hWnd, GWL_USERDATA);
   wxNode *node = h_sock->smsg_list->Find(message);
@@ -1491,8 +1611,8 @@ wxSocketHandler::wxSocketHandler()
   }
   internal = new wxSockHandlerInternal;
   internal->sockWin = ::CreateWindow(wxPanelClassName, NULL, 0,
   }
   internal = new wxSockHandlerInternal;
   internal->sockWin = ::CreateWindow(wxPanelClassName, NULL, 0,
-               0, 0, 0, 0, NULL, (HMENU) NULL,
-               wxhInstance, 0);
+    0, 0, 0, 0, NULL, (HMENU) NULL,
+    wxhInstance, 0);
 
   // Subclass the window
   if (!wxSocketSubClassProc)
 
   // Subclass the window
   if (!wxSocketSubClassProc)
@@ -1592,8 +1712,8 @@ unsigned long wxSocketHandler::Count() const
 // --------- wxSocketHandler "big" wait functions ---------------
 // --------------------------------------------------------------
 void handler_cbk(wxSocketBase& sock,
 // --------- wxSocketHandler "big" wait functions ---------------
 // --------------------------------------------------------------
 void handler_cbk(wxSocketBase& sock,
-                wxSocketBase::wxRequestEvent WXUNUSED(flags),
-                char *cdata)
+     wxSocketBase::wxRequestEvent WXUNUSED(flags),
+     char *cdata)
 {
   int *a_wait = (int *)cdata;
 
 {
   int *a_wait = (int *)cdata;
 
@@ -1662,7 +1782,7 @@ void wxSocketHandler::YieldSock()
 // --------- wxSocketHandler: create and register the socket ----
 // --------------------------------------------------------------
 wxSocketServer *wxSocketHandler::CreateServer(wxSockAddress& addr,
 // --------- wxSocketHandler: create and register the socket ----
 // --------------------------------------------------------------
 wxSocketServer *wxSocketHandler::CreateServer(wxSockAddress& addr,
-                                             wxSocketBase::wxSockFlags flags)
+                wxSocketBase::wxSockFlags flags)
 {
   wxSocketServer *serv = new wxSocketServer(addr, flags);
 
 {
   wxSocketServer *serv = new wxSocketServer(addr, flags);
 
@@ -1715,5 +1835,26 @@ void wxSocketModule::OnExit()
   wxSocketHandler::master = NULL;
 }
 
   wxSocketHandler::master = NULL;
 }
 
+#ifdef __WXMAC__
+void wxMacProcessSocketEvents() ;
+void wxMacProcessEvents()
+{
+  wxMacProcessSocketEvents() ;
+   (*GUSISpin)(SP_MISC, 0) ;
+}
+
+void wxMacProcessSocketEvents()
+{
+  while ( wxMacNetEventsTop != wxMacNetEventsBottom )
+  {
+    // consume event at wxMacNetEventsBottom
+    wxMacSocketOnRequestProc(wxMacNetEventsReferences[wxMacNetEventsBottom] , wxMacNetEventsEvents[wxMacNetEventsBottom]  ) ;
+    wxMacNetEventsBottom++ ;
+    if ( wxMacNetEventsBottom == kwxMacNetEventsMax )
+      wxMacNetEventsBottom = 0 ;
+  }
+}
+#endif
+
 #endif
   // __WXSTUBS__
 #endif
   // __WXSTUBS__
index f3fdb5b041d2c6d2e0291cab92540489c74aaec0..ca30cb5be1d37cc0f823afb70e9ca96bbc1ee061 100644 (file)
@@ -33,7 +33,9 @@
 #endif
 
 #include <time.h>
 #endif
 
 #include <time.h>
+#ifndef __WXMAC__
 #include <sys/types.h>
 #include <sys/types.h>
+#endif
 
 #if (!defined(__SC__) && !defined(__SGI__) && !defined(__GNUWIN32__) && !defined(__MWERKS__)) || defined(__MINGW32__)
 #include <sys/timeb.h>
 
 #if (!defined(__SC__) && !defined(__SGI__) && !defined(__GNUWIN32__) && !defined(__MWERKS__)) || defined(__MINGW32__)
 #include <sys/timeb.h>
index c5e8204954558a1c5cc87e7a2649beb1e9cb7e31..f516c32e4399c8560b1b65ea978ab08035f5cb32 100644 (file)
 
 extern char *wxBuffer;
 
 
 extern char *wxBuffer;
 
+#ifdef __WXMAC__
+int strcasecmp(const char *str_1, const char *str_2)
+{
+  register char c1, c2;
+  do {
+    c1 = tolower(*str_1++);
+    c2 = tolower(*str_2++);
+  } while ( c1 && (c1 == c2) );
+
+  return c1 - c2;
+}
+
+int strncasecmp(const char *str_1, const char *str_2, size_t maxchar)
+{
+
+  register char c1, c2;
+  while( maxchar--) 
+  {
+    c1 = tolower(*str_1++);
+    c2 = tolower(*str_2++);
+    
+    if ( !c1 || c1!=c2 )
+               return c1 - c2;
+                   
+  } ;
+
+  return 0 ;
+
+}
+#endif
 #ifdef __VMS__
 // we have no strI functions under VMS, therefore I have implemented
 // an inefficient but portable version: convert copies of strings to lowercase
 #ifdef __VMS__
 // we have no strI functions under VMS, therefore I have implemented
 // an inefficient but portable version: convert copies of strings to lowercase
index 4694f6b261fc5d9da3413dbc37d6b3984ef126be..ac6bffe7dd3da8ad46cbe77bdae59da05fd5d2f9 100644 (file)
@@ -40,7 +40,9 @@
 #include <windows.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <windows.h>
 #include <stdio.h>
 #include <stdlib.h>
+#ifndef __MWERKS__
 #include <memory.h>
 #include <memory.h>
+#endif
 
 #include "wx/msw/dib.h"
 
 
 #include "wx/msw/dib.h"
 
index b337129663d0e4368bfdcab3abd682e1a51fb8df..5ad72da4f4fe95665443d25dffeba14f95cc7751 100644 (file)
@@ -32,7 +32,9 @@
 #include <wx/msw/dibutils.h>
 
 #if defined(__WIN32__)
 #include <wx/msw/dibutils.h>
 
 #if defined(__WIN32__)
+#ifndef __MWERKS__
     #include <memory.h>             // for _fmemcpy()
     #include <memory.h>             // for _fmemcpy()
+#endif
         #define _huge
 #ifndef hmemcpy
     #define hmemcpy memcpy
         #define _huge
 #ifndef hmemcpy
     #define hmemcpy memcpy
index c8c1ad14b55377ebd33fa1b04d4455d56e8c7de8..8039c2fd78def4fc5dcb9bb2a0b444d0088a4d4d 100644 (file)
@@ -88,7 +88,7 @@ wxMiniFrame::~wxMiniFrame(void)
 
 #include <string.h>
 
 
 #include <string.h>
 
-#ifndef __WATCOMC__
+#if !defined( __WATCOMC__ ) && !defined( __MWERKS__ )
 #include <memory.h>
 #endif
 
 #include <memory.h>
 #endif
 
index 99104456ffcc3626f01b90ab930414ebfa3a4185..aed6d11a7419896bcaee5d734232749e51ecfc10 100644 (file)
@@ -30,7 +30,9 @@
 #include "malloc.h"
 #endif
 
 #include "malloc.h"
 #endif
 
+#ifndef __MWERKS__
 #include <memory.h>
 #include <memory.h>
+#endif
 #include <stdlib.h>
 
 #include "wx/tbarmsw.h"
 #include <stdlib.h>
 
 #include "wx/tbarmsw.h"
index 0f5afa110a0f69bfeebb46909c709dcedfe0e767..13d6c08be1e7286da96dd9a43393ea6f5871c9d3 100644 (file)
 #endif
 
 #include <sys/types.h>
 #endif
 
 #include <sys/types.h>
+#ifndef __MWERKS__
 #include <sys/stat.h>
 #include <sys/stat.h>
+#else
+#include <stat.h>
+#endif
 #if defined(__BORLANDC__) && !defined(__WIN32__)
 #include <alloc.h>
 #else
 #if defined(__BORLANDC__) && !defined(__WIN32__)
 #include <alloc.h>
 #else
index 7a12dc3c2d308225e7ba6ab35ea4937ea1dad990..d655f2805eabd32a4385869bafae9b62397e3564 100644 (file)
@@ -35,7 +35,7 @@
 #include <time.h>
 #include <sys/types.h>
 
 #include <time.h>
 #include <sys/types.h>
 
-#if !defined(__SC__) && !defined(__GNUWIN32__)
+#if !defined(__SC__) && !defined(__GNUWIN32__) && !defined(__MWERKS__)
     #include <sys/timeb.h>
 #endif
 
     #include <sys/timeb.h>
 #endif
 
index 3a114037d9f14d98808d93772742567cbe90098d..6cf42a49ca8c68322e7e68581306c6b3caf99932 100644 (file)
@@ -36,7 +36,9 @@
 
 #ifndef __GNUWIN32__
 #include <direct.h>
 
 #ifndef __GNUWIN32__
 #include <direct.h>
+#ifndef __MWERKS__
 #include <dos.h>
 #include <dos.h>
+#endif
 #endif  //GNUWIN32
 
 #ifdef __GNUWIN32__
 #endif  //GNUWIN32
 
 #ifdef __GNUWIN32__
@@ -979,7 +981,9 @@ To download dbwin32, see e.g.:
 http://ftp.digital.com/pub/micro/NT/WinSite/programr/dbwin32.zip
 */
 
 http://ftp.digital.com/pub/micro/NT/WinSite/programr/dbwin32.zip
 */
 
+#ifndef __MWERKS__
 #include <process.h>
 #include <process.h>
+#endif
 
 void OutputDebugStringW95(const char* lpOutputString, ...)
 {
 
 void OutputDebugStringW95(const char* lpOutputString, ...)
 {
@@ -1056,7 +1060,7 @@ void OutputDebugStringW95(const char* lpOutputString, ...)
     WaitForSingleObject(heventDBWIN, INFINITE);
 
     /* write it to the shared memory */
     WaitForSingleObject(heventDBWIN, INFINITE);
 
     /* write it to the shared memory */
-#ifdef __BORLANDC__
+#if defined( __BORLANDC__ ) || defined( __MWERKS__ )
     *((LPDWORD)lpszSharedMem) = getpid();
 #else
     *((LPDWORD)lpszSharedMem) = _getpid();
     *((LPDWORD)lpszSharedMem) = getpid();
 #else
     *((LPDWORD)lpszSharedMem) = _getpid();
index aae349314dc22cf48e2d3c28f0b527491fee3c7e..4140571003f559d7529eb616dfad6cf3ab4ebb02 100644 (file)
 
 #ifndef __GNUWIN32__
 #include <direct.h>
 
 #ifndef __GNUWIN32__
 #include <direct.h>
+#ifndef __MWERKS__
 #include <dos.h>
 #endif
 #include <dos.h>
 #endif
+#endif
 
 #ifdef __GNUWIN32__
 #include <sys/unistd.h>
 
 #ifdef __GNUWIN32__
 #include <sys/unistd.h>