X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/505710ca37aa323c286b1def350ee3e5d7887e5d..61ecf6d34ffb087e4a02d1c4e29e1f155875eba0:/src/common/fs_zip.cpp diff --git a/src/common/fs_zip.cpp b/src/common/fs_zip.cpp index 97cfa0bb1b..18d421b7be 100644 --- a/src/common/fs_zip.cpp +++ b/src/common/fs_zip.cpp @@ -15,7 +15,7 @@ #include "wx/wxprec.h" -#ifdef __BORDLANDC__ +#ifdef __BORLANDC__ #pragma hdrstop #endif @@ -89,8 +89,10 @@ wxFSFile* wxZipFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& l if (right.GetChar(0) == wxT('/')) right = right.Mid(1); - s = new wxZipInputStream(left, right); - if (s && (s->LastError() == wxStream_NOERROR)) + wxString leftFilename = wxFileSystem::URLToNativePath(left); + + s = new wxZipInputStream(leftFilename, right); + if (s && s->IsOk() ) { return new wxFSFile(s, left + wxT("#zip:") + right, @@ -179,8 +181,8 @@ wxString wxZipFSHandler::DoFind() while (match == wxEmptyString) { unzGetCurrentFileInfo((unzFile)m_Archive, NULL, namebuf, 1024, NULL, 0, NULL, 0); - for (c = namebuf; *c; c++) if (*c == wxT('\\')) *c = wxT('/'); - namestr = namebuf; + for (c = namebuf; *c; c++) if (*c == '\\') *c = '/'; + namestr = wxString::FromAscii( namebuf ); // TODO what encoding does ZIP use? if (m_AllowDirs) {