From ce720741f0a5e465a10457771decbea79573cbfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Fri, 19 Sep 2003 21:51:44 +0000 Subject: [PATCH] Fix wxZipFSHandler behaviour when used with relative filenames with .. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@23721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/fs_zip.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/common/fs_zip.cpp b/src/common/fs_zip.cpp index 27ed0b6a55..945d402af6 100644 --- a/src/common/fs_zip.cpp +++ b/src/common/fs_zip.cpp @@ -39,9 +39,9 @@ #endif -//-------------------------------------------------------------------------------- +//---------------------------------------------------------------------------- // wxZipFSHandler -//-------------------------------------------------------------------------------- +//---------------------------------------------------------------------------- @@ -87,6 +87,14 @@ wxFSFile* wxZipFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& l return NULL; } + if (right.Contains(wxT("./"))) + { + if (right.GetChar(0) != wxT('/')) right = wxT('/') + right; + wxFileName rightPart(right, wxPATH_UNIX); + rightPart.Normalize(wxPATH_NORM_DOTS, wxT("/"), wxPATH_UNIX); + right = rightPart.GetFullPath(wxPATH_UNIX); + } + if (right.GetChar(0) == wxT('/')) right = right.Mid(1); wxFileName leftFilename = wxFileSystem::URLToFileName(left);