X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b057f88ab8d0d448e094204802c9033fad271ccc..db60c20db8321d7fb0604e33fe7288ddb38c496e:/src/msw/mslu.cpp diff --git a/src/msw/mslu.cpp b/src/msw/mslu.cpp index 3e63d04fb2..c2ee47cf6f 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,32 +9,37 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#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_UNICODE_MSLU +#if wxUSE_BASE -bool wxUsingUnicowsDll() -{ - return false; +bool WXDLLIMPEXP_BASE wxUsingUnicowsDll() +{ +#if wxUSE_UNICODE_MSLU + return (wxGetOsVersion() == wxWIN95); +#else + return false; +#endif } -#else +#endif // wxUSE_BASE + + +#if wxUSE_UNICODE_MSLU //------------------------------------------------------------------------ // @@ -65,13 +70,6 @@ bool wxUsingUnicowsDll() #undef GetOpenFileNameW #undef GetSaveFileNameW -// Returns true if we are running under Unicode emulation in Win9x environment. -// Workaround hacks take effect only if this condition is met -bool wxUsingUnicowsDll() -{ - return (wxGetOsVersion() == wxWIN95); -} - //------------------------------------------------------------------------ // Wrongly implemented functions from unicows.dll //------------------------------------------------------------------------ @@ -166,6 +164,14 @@ WXDLLIMPEXP_BASE 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__) ) \ @@ -215,6 +221,17 @@ WXDLLIMPEXP_BASE 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() ) @@ -222,6 +239,7 @@ WXDLLIMPEXP_BASE int wxMSLU__wstati64(const wxChar *name, struct _stati64 *buffe else return _wstati64(name, buffer); } +#endif //__BORLANDC__ #endif // compilers having wopen() &c