X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6636ef8ddf9eda0d0352c29d98cb141676a51a2d..8626e0b73de21463908bf855700c31e41c661b30:/src/common/filesys.cpp diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp index bf6fbc2efe..ad395361ce 100644 --- a/src/common/filesys.cpp +++ b/src/common/filesys.cpp @@ -255,14 +255,14 @@ wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& #else #error One of wxUSE_FILE or wxUSE_FFILE must be set to 1 for wxFSHandler to work #endif - if ( !is->Ok() ) + if ( !is->IsOk() ) { delete is; return NULL; } return new wxFSFile(is, - right, + location, wxEmptyString, GetAnchor(location) #if wxUSE_DATETIME @@ -635,11 +635,11 @@ wxFileName wxFileSystem::URLToFileName(const wxString& url) path = wxURI::Unescape(path); -#ifdef __WXMSW__ +#ifdef __WINDOWS__ // file urls either start with a forward slash (local harddisk), // otherwise they have a servername/sharename notation, // which only exists on msw and corresponds to a unc - if ( path[0u] == wxT('/') && path [1u] != wxT('/')) + if ( path.length() > 1 && (path[0u] == wxT('/') && path [1u] != wxT('/')) ) { path = path.Mid(1); } @@ -756,5 +756,29 @@ class wxFileSystemModule : public wxModule IMPLEMENT_DYNAMIC_CLASS(wxFileSystemModule, wxModule) +//// wxFSInputStream + +wxFSInputStream::wxFSInputStream(const wxString& filename, int flags) +{ + wxFileSystem fs; + m_file = fs.OpenFile(filename, flags | wxFS_READ); + + if ( m_file ) + { + wxInputStream* const stream = m_file->GetStream(); + if ( stream ) + { + // Notice that we pass the stream by reference: it shouldn't be + // deleted by us as it's owned by m_file already. + InitParentStream(*stream); + } + } +} + +wxFSInputStream::~wxFSInputStream() +{ + delete m_file; +} + #endif // wxUSE_FILESYSTEM