X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/00375592f92f68c4ca3f44d8e839bcfd47adc4e1..18c8dd2be24fb5dcdb2a23e27a98abd67a1e0bde:/src/common/archive.cpp diff --git a/src/common/archive.cpp b/src/common/archive.cpp index 6420d94852..e6962a7784 100644 --- a/src/common/archive.cpp +++ b/src/common/archive.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: archive.cpp +// Name: src/common/archive.cpp // Purpose: Streams for archive formats // Author: Mike Wetherell // RCS-ID: $Id$ @@ -7,30 +7,19 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "archive.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/defs.h" + #pragma hdrstop #endif -#if wxUSE_ZLIB && wxUSE_STREAMS && wxUSE_ZIPSTREAM +#if wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS #include "wx/archive.h" -#include "wx/html/forcelnk.h" IMPLEMENT_ABSTRACT_CLASS(wxArchiveEntry, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxArchiveClassFactory, wxObject) - -FORCE_LINK(zipstrm) +IMPLEMENT_ABSTRACT_CLASS(wxArchiveClassFactory, wxFilterClassFactoryBase) ///////////////////////////////////////////////////////////////////////////// @@ -43,6 +32,13 @@ wxArchiveInputStream::wxArchiveInputStream(wxInputStream& stream, { } +wxArchiveInputStream::wxArchiveInputStream(wxInputStream *stream, + wxMBConv& conv) + : wxFilterInputStream(stream), + m_conv(conv) +{ +} + ///////////////////////////////////////////////////////////////////////////// // wxArchiveOutputStream @@ -54,6 +50,13 @@ wxArchiveOutputStream::wxArchiveOutputStream(wxOutputStream& stream, { } +wxArchiveOutputStream::wxArchiveOutputStream(wxOutputStream *stream, + wxMBConv& conv) + : wxFilterOutputStream(stream), + m_conv(conv) +{ +} + ///////////////////////////////////////////////////////////////////////////// // wxArchiveEntry @@ -65,10 +68,31 @@ void wxArchiveEntry::SetNotifier(wxArchiveNotifier& notifier) m_notifier->OnEntryUpdated(*this); } -wxArchiveEntry& wxArchiveEntry::operator=(const wxArchiveEntry& entry) +wxArchiveEntry& wxArchiveEntry::operator=(const wxArchiveEntry& WXUNUSED(e)) { - m_notifier = entry.m_notifier; + m_notifier = NULL; return *this; } -#endif + +///////////////////////////////////////////////////////////////////////////// +// wxArchiveClassFactory + +wxArchiveClassFactory *wxArchiveClassFactory::sm_first = NULL; + +void wxArchiveClassFactory::Remove() +{ + if (m_next != this) + { + wxArchiveClassFactory **pp = &sm_first; + + while (*pp != this) + pp = &(*pp)->m_next; + + *pp = m_next; + + m_next = this; + } +} + +#endif // wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS