#pragma hdrstop
#endif
-#if wxUSE_FS_ZIP
+#if wxUSE_FILESYSTEM && wxUSE_FS_ZIP && wxUSE_ZIPSTREAM
#ifndef WXPRECOMP
#include "wx/wx.h"
bool wxZipFSHandler::CanOpen(const wxString& location)
{
wxString p = GetProtocol(location);
- return (p == "zip");
+ return (p == wxT("zip") );
}
wxString left = GetLeftLocation(location);
wxInputStream *s;
- if (GetProtocol(left) != "file") {
+ if (GetProtocol(left) != wxT("file")) {
return NULL;
}
s = new wxZipInputStream(left, right);
if (s && (s -> LastError() == wxStream_NOERROR)) {
return new wxFSFile(s,
- left + "#zip:" + right,
+ left + wxT("#zip:") + right,
GetMimeTypeFromExt(location),
- GetAnchor(location));
+ GetAnchor(location),
+ wxDateTime(wxFileModificationTime(left)));
}
- else return NULL;
+
+ delete s;
+ return NULL;
}
m_Archive = NULL;
}
- if (GetProtocol(left) != "file") {
+ if (GetProtocol(left) != wxT("file")) {
return wxEmptyString;
}
}
m_ZipFile = left;
- m_Archive = (void*) unzOpen(m_ZipFile.fn_str());
+ m_Archive = (void*) unzOpen(m_ZipFile.mb_str());
m_Pattern = right.AfterLast(wxT('/'));
m_BaseDir = right.BeforeLast(wxT('/'));
while (match == wxEmptyString)
{
unzGetCurrentFileInfo((unzFile)m_Archive, NULL, namebuf, 1024, NULL, 0, NULL, 0);
- for (c = namebuf; *c; c++) if (*c == '\\') *c = '/';
+ for (c = namebuf; *c; c++) if (*c == wxT('\\')) *c = wxT('/');
fn = namebuf;
if (fn.Last() == wxT('/')) {
fn.RemoveLast();
-#endif // wxUSE_FS_ZIP
+#endif
+ //wxUSE_FILESYSTEM && wxUSE_FS_ZIP && wxUSE_ZIPSTREAM