X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/916af76f40555e9d2548a1538e2a5563222ea373..ce457f1245754243f17b4efde9ec773a8b3c3067:/src/common/fs_arc.cpp diff --git a/src/common/fs_arc.cpp b/src/common/fs_arc.cpp index 357c2f7479..a00e6accd7 100644 --- a/src/common/fs_arc.cpp +++ b/src/common/fs_arc.cpp @@ -22,7 +22,12 @@ #include "wx/log.h" #endif -#include "wx/archive.h" +#if WXWIN_COMPATIBILITY_2_6 + #include "wx/zipstrm.h" +#else + #include "wx/archive.h" +#endif + #include "wx/private/fileback.h" //--------------------------------------------------------------------------- @@ -119,7 +124,7 @@ wxArchiveFSCacheDataImpl::~wxArchiveFSCacheDataImpl() wxArchiveFSEntry *wxArchiveFSCacheDataImpl::AddToCache(wxArchiveEntry *entry) { - m_hash[entry->GetName()] = entry; + m_hash[entry->GetName(wxPATH_UNIX)] = entry; wxArchiveFSEntry *fse = new wxArchiveFSEntry; *m_endptr = fse; (*m_endptr)->entry = entry; @@ -152,7 +157,7 @@ wxArchiveEntry *wxArchiveFSCacheDataImpl::Get(const wxString& name) { AddToCache(entry); - if (entry->GetName() == name) + if (entry->GetName(wxPATH_UNIX) == name) return entry; } @@ -393,6 +398,12 @@ wxFSFile* wxArchiveFSHandler::OpenFile( s->OpenEntry(*entry); if (s && s->IsOk()) + { +#if WXWIN_COMPATIBILITY_2_6 + if (factory->IsKindOf(CLASSINFO(wxZipClassFactory))) + ((wxZipInputStream*)s)->m_allowSeeking = true; +#endif // WXWIN_COMPATIBILITY_2_6 + return new wxFSFile(s, key + right, GetMimeTypeFromExt(location), @@ -401,6 +412,7 @@ wxFSFile* wxArchiveFSHandler::OpenFile( , entry->GetDateTime() #endif // wxUSE_DATETIME ); + } delete s; return NULL;