X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a1b806b98241ab649c169aaa1f134df85e80fb8b..afab8b85c4bdeb11a248c57d13e9bcfa14149ef8:/src/common/filesys.cpp diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp index f94b3f5d91..06edca28a2 100644 --- a/src/common/filesys.cpp +++ b/src/common/filesys.cpp @@ -3,7 +3,6 @@ // Purpose: wxFileSystem class - interface for opening files // Author: Vaclav Slavik // Copyright: (c) 1999 Vaclav Slavik -// CVS-ID: $Id$ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -262,7 +261,7 @@ wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& } return new wxFSFile(is, - right, + location, wxEmptyString, GetAnchor(location) #if wxUSE_DATETIME @@ -635,11 +634,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 +755,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