#endif
#endif
+#if defined(__WXMAC__)
+ #include "wx/mac/private.h" // includes mac headers
+#endif
+
#include <time.h>
#ifndef __MWERKS__
wxString result;
gs_dir->GetFirst(&result, wxFileNameFromPath(spec), dirFlags);
if ( result.IsEmpty() )
+ {
wxDELETE(gs_dir);
+ return result;
+ }
return gs_dirPath + result;
}
gs_dir->GetNext(&result);
if ( result.IsEmpty() )
+ {
wxDELETE(gs_dir);
+ return result;
+ }
return gs_dirPath + result;
}
delete [] cbuf;
}
#endif
+
+#ifdef __DJGPP__
+ // VS: DJGPP is a strange mix of DOS and UNIX API and returns paths with
+ // / deliminers. We don't like that.
+ for (wxChar *ch = buf; *ch; ch++)
+ if (*ch == wxT('/')) *ch = wxT('\\');
+#endif
+
return buf;
}
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
#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