X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/86b3203fb156247bae38d7c67a3a00fe27c5db11..3baaf31317b1380ba9f33f8a23ff04bd20356d63:/src/common/filesys.cpp diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp index c06e2bebc2..f350965e66 100644 --- a/src/common/filesys.cpp +++ b/src/common/filesys.cpp @@ -24,7 +24,7 @@ #include "wx/module.h" #include "wx/filesys.h" #include "wx/mimetype.h" - +#include "wx/filename.h" @@ -138,15 +138,8 @@ wxString wxFileSystemHandler::FindNext() // wxLocalFSHandler //-------------------------------------------------------------------------------- -class wxLocalFSHandler : public wxFileSystemHandler -{ - public: - virtual bool CanOpen(const wxString& location); - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location); - virtual wxString FindFirst(const wxString& spec, int flags = 0); - virtual wxString FindNext(); -}; +wxString wxLocalFSHandler::ms_root; bool wxLocalFSHandler::CanOpen(const wxString& location) { @@ -155,21 +148,24 @@ bool wxLocalFSHandler::CanOpen(const wxString& location) wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& location) { - wxString right = GetRightLocation(location); - if (!wxFileExists(right)) + // location has Unix path separators + wxString right = ms_root + GetRightLocation(location); + wxFileName fn(right, wxPATH_UNIX); + + if (!wxFileExists(fn.GetFullPath())) return (wxFSFile*) NULL; - - return new wxFSFile(new wxFileInputStream(right), + + return new wxFSFile(new wxFileInputStream(fn.GetFullPath()), right, GetMimeTypeFromExt(location), GetAnchor(location), - wxDateTime(wxFileModificationTime(right))); + wxDateTime(wxFileModificationTime(fn.GetFullPath()))); } wxString wxLocalFSHandler::FindFirst(const wxString& spec, int flags) { - wxString right = GetRightLocation(spec); + wxString right = ms_root + GetRightLocation(spec); return wxFindFirstFile(right, flags); }