unified to use ASCII for ZIP entries and fn_str() when passing archive name to unzip.c

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25015 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík 2003-12-27 08:52:05 +00:00
parent dac3065d25
commit 9d1f22e7c2
3 changed files with 16 additions and 4 deletions

View File

@ -221,6 +221,17 @@ Checking in src/msw/regconf.cpp;
/pack/cvsroots/wxwindows/wxWindows/src/msw/regconf.cpp,v <-- regconf.cpp
new revision: 1.48; previous revision: 1.47
31. Cleanup of ZIP charset conversion in Unicode build
Checking in fs_zip.cpp;
/pack/cvsroots/wxwindows/wxWindows/src/common/fs_zip.cpp,v <-- fs_zip.cpp
new revision: 1.27; previous revision: 1.26
done
Checking in zipstrm.cpp;
/pack/cvsroots/wxwindows/wxWindows/src/common/zipstrm.cpp,v <-- zipstrm.cpp
new revision: 1.10; previous revision: 1.9
done
TODO for 2.4 (items that are not backports)
===========================================

View File

@ -151,7 +151,7 @@ wxString wxZipFSHandler::FindFirst(const wxString& spec, int flags)
m_ZipFile = left;
wxString nativename = wxFileSystem::URLToFileName(m_ZipFile).GetFullPath();
m_Archive = (void*) unzOpen(nativename.mb_str());
m_Archive = (void*) unzOpen(nativename.fn_str());
m_Pattern = right.AfterLast(wxT('/'));
m_BaseDir = right.BeforeLast(wxT('/'));
@ -196,7 +196,7 @@ wxString wxZipFSHandler::DoFind()
{
unzGetCurrentFileInfo((unzFile)m_Archive, NULL, namebuf, 1024, NULL, 0, NULL, 0);
for (c = namebuf; *c; c++) if (*c == '\\') *c = '/';
namestr = wxString::FromAscii( namebuf ); // TODO what encoding does ZIP use?
namestr = wxString::FromAscii(namebuf); // TODO what encoding does ZIP use?
if (m_AllowDirs)
{

View File

@ -40,13 +40,14 @@ wxZipInputStream::wxZipInputStream(const wxString& archive, const wxString& file
m_Pos = 0;
m_Size = 0;
m_Archive = (void*) unzOpen(archive.mb_str());
m_Archive = (void*) unzOpen(archive.fn_str());
if (m_Archive == NULL)
{
m_lasterror = wxSTREAM_READ_ERROR;
return;
}
if (unzLocateFile((unzFile)m_Archive, file.mb_str(), 0) != UNZ_OK)
// TODO what encoding does ZIP use?
if (unzLocateFile((unzFile)m_Archive, file.ToAscii(), 0) != UNZ_OK)
{
m_lasterror = wxSTREAM_READ_ERROR;
return;