#include "wx/fs_arc.h"
-#ifndef WXPRECOMP
+#ifndef WX_PRECOMP
#include "wx/intl.h"
#include "wx/log.h"
#endif
-#include "wx/archive.h"
+#if WXWIN_COMPATIBILITY_2_6 && wxUSE_ZIPSTREAM
+ #include "wx/zipstrm.h"
+#else
+ #include "wx/archive.h"
+#endif
+
#include "wx/private/fileback.h"
//---------------------------------------------------------------------------
}
wxArchiveInputStream *s = factory->NewStream(leftStream);
+ if ( !s )
+ return NULL;
+
s->OpenEntry(*entry);
- if (s && s->IsOk())
- return new wxFSFile(s,
- key + right,
- GetMimeTypeFromExt(location),
- GetAnchor(location)
+ if (!s->IsOk())
+ {
+ delete s;
+ return NULL;
+ }
+
+#if WXWIN_COMPATIBILITY_2_6 && wxUSE_ZIPSTREAM
+ if (factory->IsKindOf(CLASSINFO(wxZipClassFactory)))
+ ((wxZipInputStream*)s)->m_allowSeeking = true;
+#endif // WXWIN_COMPATIBILITY_2_6
+
+ return new wxFSFile(s,
+ key + right,
+ wxEmptyString,
+ GetAnchor(location)
#if wxUSE_DATETIME
- , entry->GetDateTime()
+ , entry->GetDateTime()
#endif // wxUSE_DATETIME
- );
-
- delete s;
- return NULL;
+ );
}
wxString wxArchiveFSHandler::FindFirst(const wxString& spec, int flags)