]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/filefn.cpp
Fixes for GNUPro 00r1
[wxWidgets.git] / src / common / filefn.cpp
index fc22b03128b011fa8f68633451895c808a9401fc..79c63f4bade52bbc06c08b246cde8471097c3137 100644 (file)
     #endif
 #endif
 
+#if defined(__WXMAC__)
+  #include  "wx/mac/private.h"  // includes mac headers
+#endif
+
 #include <time.h>
 
 #ifndef __MWERKS__
@@ -1519,11 +1523,9 @@ wxString wxGetOSDirectory()
 
 bool wxEndsWithPathSeparator(const wxChar *pszFileName)
 {
-  size_t len = wxStrlen(pszFileName);
-  if ( len == 0 )
-    return FALSE;
-  else
-    return wxIsPathSeparator(pszFileName[len - 1]);
+    size_t len = wxStrlen(pszFileName);
+
+    return len && wxIsPathSeparator(pszFileName[len - 1]);
 }
 
 // find a file in a list of directories, returns false if not found
@@ -1764,3 +1766,28 @@ bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special )
 #ifdef __VISUALC__
     #pragma warning(default:4706)   // assignment within conditional expression
 #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