// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-
-
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "fs_zip.h"
-#endif
-
#include "wx/wxprec.h"
#ifdef __BORLANDC__
wxZipFSHandler::~wxZipFSHandler()
{
- if (m_Archive)
- delete m_Archive;
- if (m_DirsFound)
- delete m_DirsFound;
+ Cleanup();
}
+void wxZipFSHandler::Cleanup()
+{
+ wxDELETE(m_Archive);
+ wxDELETE(m_DirsFound);
+}
+
+
bool wxZipFSHandler::CanOpen(const wxString& location)
{
s = new wxZipFSInputStream(leftFile);
if (s && s->IsOk())
{
+#if wxUSE_DATETIME
+ wxDateTime dtMod;
+#endif // wxUSE_DATETIME
+
bool found = false;
while (!found)
{
wxZipEntry *ent = s->GetNextEntry();
if (!ent)
break;
+
if (ent->GetInternalName() == right)
+ {
found = true;
+ dtMod = ent->GetDateTime();
+ }
+
delete ent;
}
if (found)
+ {
return new wxFSFile(s,
left + wxT("#zip:") + right,
GetMimeTypeFromExt(location),
GetAnchor(location)
#if wxUSE_DATETIME
- , wxDateTime(wxFileModificationTime(left))
+ , dtMod
#endif // wxUSE_DATETIME
);
+ }
}
delete s;