X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec67cff1f6e63b3b27613a085f0492958e66a28e..e69d5138dc8f95e294ae6d03beb4f321406f4e34:/src/msw/mslu.cpp diff --git a/src/msw/mslu.cpp b/src/msw/mslu.cpp index 354a88b649..df0b4634ee 100644 --- a/src/msw/mslu.cpp +++ b/src/msw/mslu.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: msw/mslu.cpp +// Name: src/msw/mslu.cpp // Purpose: Fixes for bugs in MSLU // Author: Vaclav Slavik // Modified by: @@ -9,22 +9,36 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop -#include + #pragma hdrstop + #include #endif #ifndef WX_PRECOMP - #include "wx/defs.h" + #include "wx/utils.h" #endif +//------------------------------------------------------------------------ +// Check for use of MSLU +//------------------------------------------------------------------------ + +#if wxUSE_BASE + +bool WXDLLIMPEXP_BASE wxUsingUnicowsDll() +{ +#if wxUSE_UNICODE_MSLU + return (wxGetOsVersion() == wxOS_WINDOWS_9X); +#else + return false; +#endif +} + +#endif // wxUSE_BASE + + #if wxUSE_UNICODE_MSLU //------------------------------------------------------------------------ @@ -133,7 +147,8 @@ WXDLLEXPORT int wxMSLU_GetSaveFileNameW(void *ofn) #if wxUSE_BASE -WXDLLEXPORT int wxMSLU__trename(const wxChar *oldname, const wxChar *newname) +WXDLLIMPEXP_BASE int wxMSLU__trename(const wxChar *oldname, + const wxChar *newname) { if ( wxUsingUnicowsDll() ) return rename(wxConvFile.cWX2MB(oldname), wxConvFile.cWX2MB(newname)); @@ -141,7 +156,7 @@ WXDLLEXPORT int wxMSLU__trename(const wxChar *oldname, const wxChar *newname) return _trename(oldname, newname); } -WXDLLEXPORT int wxMSLU__tremove(const wxChar *name) +WXDLLIMPEXP_BASE int wxMSLU__tremove(const wxChar *name) { if ( wxUsingUnicowsDll() ) return remove(wxConvFile.cWX2MB(name)); @@ -149,12 +164,20 @@ WXDLLEXPORT int wxMSLU__tremove(const wxChar *name) return _tremove(name); } +WXDLLIMPEXP_BASE FILE* wxMSLU__tfopen(const wxChar *name,const wxChar* mode) +{ + if ( wxUsingUnicowsDll() ) + return fopen(wxConvFile.cWX2MB(name),wxConvFile.cWX2MB(mode)); + else + return _tfopen(name,mode); +} + #if defined( __VISUALC__ ) \ || ( defined(__MINGW32__) && wxCHECK_W32API_VERSION( 0, 5 ) ) \ || ( defined(__MWERKS__) && defined(__WXMSW__) ) \ || ( defined(__BORLANDC__) && (__BORLANDC__ > 0x460) ) -WXDLLEXPORT int wxMSLU__wopen(const wxChar *name, int flags, int mode) +WXDLLIMPEXP_BASE int wxMSLU__wopen(const wxChar *name, int flags, int mode) { if ( wxUsingUnicowsDll() ) #ifdef __BORLANDC__ @@ -166,7 +189,7 @@ WXDLLEXPORT int wxMSLU__wopen(const wxChar *name, int flags, int mode) return _wopen(name, flags, mode); } -WXDLLEXPORT int wxMSLU__waccess(const wxChar *name, int mode) +WXDLLIMPEXP_BASE int wxMSLU__waccess(const wxChar *name, int mode) { if ( wxUsingUnicowsDll() ) return _access(wxConvFile.cWX2MB(name), mode); @@ -174,7 +197,7 @@ WXDLLEXPORT int wxMSLU__waccess(const wxChar *name, int mode) return _waccess(name, mode); } -WXDLLEXPORT int wxMSLU__wmkdir(const wxChar *name) +WXDLLIMPEXP_BASE int wxMSLU__wmkdir(const wxChar *name) { if ( wxUsingUnicowsDll() ) return _mkdir(wxConvFile.cWX2MB(name)); @@ -182,7 +205,7 @@ WXDLLEXPORT int wxMSLU__wmkdir(const wxChar *name) return _wmkdir(name); } -WXDLLEXPORT int wxMSLU__wrmdir(const wxChar *name) +WXDLLIMPEXP_BASE int wxMSLU__wrmdir(const wxChar *name) { if ( wxUsingUnicowsDll() ) return _rmdir(wxConvFile.cWX2MB(name)); @@ -190,7 +213,7 @@ WXDLLEXPORT int wxMSLU__wrmdir(const wxChar *name) return _wrmdir(name); } -WXDLLEXPORT int wxMSLU__wstat(const wxChar *name, struct _stat *buffer) +WXDLLIMPEXP_BASE int wxMSLU__wstat(const wxChar *name, struct _stat *buffer) { if ( wxUsingUnicowsDll() ) return _stat((const char*)wxConvFile.cWX2MB(name), buffer); @@ -198,6 +221,26 @@ WXDLLEXPORT int wxMSLU__wstat(const wxChar *name, struct _stat *buffer) return _wstat(name, buffer); } +#ifdef __BORLANDC__ +//here _stati64 is defined as stati64, see msw/mslu.h line 62 +#undef _stati64 +WXDLLIMPEXP_BASE int wxMSLU__wstati64(const wxChar *name, struct _stati64 *buffer) + { + if ( wxUsingUnicowsDll() ) + return _stati64((const char*)wxConvFile.cWX2MB(name), (stati64 *) buffer); + else + return _wstati64(name, (stati64 *) buffer); +} +#else +WXDLLIMPEXP_BASE int wxMSLU__wstati64(const wxChar *name, struct _stati64 *buffer) +{ + if ( wxUsingUnicowsDll() ) + return _stati64((const char*)wxConvFile.cWX2MB(name), buffer); + else + return _wstati64(name, buffer); +} +#endif //__BORLANDC__ + #endif // compilers having wopen() &c #endif // wxUSE_BASE