X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d0200d9effdaeb721c4a952ff363c275bfd74815..007bea23c3245bac82c24c0f783a7baa5ac672cc:/src/common/filesys.cpp?ds=sidebyside diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp index e86b88cea1..6892ca1ecf 100644 --- a/src/common/filesys.cpp +++ b/src/common/filesys.cpp @@ -7,7 +7,7 @@ // Licence: wxWindows Licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "filesys.h" #endif @@ -28,7 +28,6 @@ #include "wx/log.h" - //-------------------------------------------------------------------------------- // wxFileSystemHandler //-------------------------------------------------------------------------------- @@ -187,11 +186,23 @@ wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& if (!wxFileExists(fullpath)) return (wxFSFile*) NULL; - return new wxFSFile(new wxFFileInputStream(fullpath), + // we need to check whether we can really read from this file, otherwise + // wxFSFile is not going to work + wxFFileInputStream *is = new wxFFileInputStream(fullpath); + if ( !is->Ok() ) + { + delete is; + return (wxFSFile*) NULL; + } + + return new wxFSFile(is, right, GetMimeTypeFromExt(location), - GetAnchor(location), - wxDateTime(wxFileModificationTime(fullpath))); + GetAnchor(location) +#if wxUSE_DATETIME + ,wxDateTime(wxFileModificationTime(fullpath)) +#endif // wxUSE_DATETIME + ); } wxString wxLocalFSHandler::FindFirst(const wxString& spec, int flags) @@ -320,7 +331,7 @@ wxFSFile* wxFileSystem::OpenFile(const wxString& location) unsigned i, ln; char meta; wxFSFile *s = NULL; - wxNode *node; + wxList::compatibility_iterator node; ln = loc.Length(); meta = 0; @@ -374,7 +385,7 @@ wxFSFile* wxFileSystem::OpenFile(const wxString& location) wxString wxFileSystem::FindFirst(const wxString& spec, int flags) { - wxNode *node; + wxList::compatibility_iterator node; wxString spec2(spec); m_FindFileHandler = NULL; @@ -421,8 +432,7 @@ void wxFileSystem::AddHandler(wxFileSystemHandler *handler) void wxFileSystem::CleanUpHandlers() { - m_Handlers.DeleteContents(TRUE); - m_Handlers.Clear(); + WX_CLEAR_LIST(wxList, m_Handlers); } const static wxString g_unixPathString(wxT("/"));