X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/aaa66113dfa36c1636a646e3feb748c298806ccb..6342bd1ab36c1957684c00d408d09fba65d33db6:/src/common/fs_zip.cpp diff --git a/src/common/fs_zip.cpp b/src/common/fs_zip.cpp index a9939637d2..e78ce297a0 100644 --- a/src/common/fs_zip.cpp +++ b/src/common/fs_zip.cpp @@ -11,16 +11,16 @@ #pragma implementation #endif -#include +#include "wx/wxprec.h" #ifdef __BORDLANDC__ #pragma hdrstop #endif -#if wxUSE_FS_ZIP +#if wxUSE_FILESYSTEM && wxUSE_FS_ZIP && wxUSE_ZIPSTREAM #ifndef WXPRECOMP -#include +#include "wx/wx.h" #endif #include "wx/filesys.h" @@ -61,7 +61,7 @@ wxZipFSHandler::~wxZipFSHandler() bool wxZipFSHandler::CanOpen(const wxString& location) { wxString p = GetProtocol(location); - return (p == "zip"); + return (p == wxT("zip") ); } @@ -73,18 +73,21 @@ wxFSFile* wxZipFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& l 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; } @@ -101,7 +104,7 @@ wxString wxZipFSHandler::FindFirst(const wxString& spec, int flags) m_Archive = NULL; } - if (GetProtocol(left) != "file") { + if (GetProtocol(left) != wxT("file")) { return wxEmptyString; } @@ -112,7 +115,7 @@ wxString wxZipFSHandler::FindFirst(const wxString& spec, int flags) } 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('/')); @@ -146,7 +149,7 @@ wxString wxZipFSHandler::DoFind() 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(); @@ -176,4 +179,5 @@ wxString wxZipFSHandler::DoFind() -#endif // wxUSE_FS_ZIP +#endif + //wxUSE_FILESYSTEM && wxUSE_FS_ZIP && wxUSE_ZIPSTREAM