added workaround for Unicode functions not working under MSLU
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13258 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -80,7 +80,11 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString;
|
|||||||
#define wxTell _tell
|
#define wxTell _tell
|
||||||
|
|
||||||
#if wxUSE_UNICODE
|
#if wxUSE_UNICODE
|
||||||
#define wxOpen _wopen
|
#if wxUSE_UNICODE_MSLU
|
||||||
|
WXDLLEXPORT int wxOpen(const wxChar *name, int flags, int mode);
|
||||||
|
#else
|
||||||
|
#define wxOpen _wopen
|
||||||
|
#endif
|
||||||
#define wxAccess _waccess
|
#define wxAccess _waccess
|
||||||
|
|
||||||
#define wxMkDir _wmkdir
|
#define wxMkDir _wmkdir
|
||||||
|
@@ -1764,3 +1764,28 @@ bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special )
|
|||||||
#ifdef __VISUALC__
|
#ifdef __VISUALC__
|
||||||
#pragma warning(default:4706) // assignment within conditional expression
|
#pragma warning(default:4706) // assignment within conditional expression
|
||||||
#endif // VC++
|
#endif // VC++
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
// Missing functions in Unicode for Win9x
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// NB: MSLU only covers Win32 API, it doesn't provide Unicode implementation of
|
||||||
|
// libc functions. Unfortunately, some of MSVCRT wchar_t functions
|
||||||
|
// (e.g. _wopen) don't work on Windows 9x, so we have to workaround it
|
||||||
|
// by calling the char version. We still want to use wchar_t version on
|
||||||
|
// NT/2000/XP, though, because they allow for Unicode file names.
|
||||||
|
#if wxUSE_UNICODE_MSLU
|
||||||
|
|
||||||
|
#if defined( __VISUALC__ ) \
|
||||||
|
|| ( defined(__MINGW32__) && wxCHECK_W32API_VERSION( 0, 5 ) ) \
|
||||||
|
|| ( defined(__MWERKS__) && defined(__WXMSW__) )
|
||||||
|
WXDLLEXPORT int wxOpen(const wxChar *name, int flags, int mode)
|
||||||
|
{
|
||||||
|
if ( wxGetOsVersion() == wxWINDOWS_NT )
|
||||||
|
return _wopen(name, flags, mode);
|
||||||
|
else
|
||||||
|
return _open(wxConvFile.cWX2MB(name), flags, mode);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // wxUSE_UNICODE_MSLU
|
||||||
|
Reference in New Issue
Block a user