X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/51acf83bd6029aeb8fbd8af9c316c03565c715d2..2f36b4d22beeb7f4f0cedf922c0c26d037f54477:/src/common/zstream.cpp?ds=sidebyside diff --git a/src/common/zstream.cpp b/src/common/zstream.cpp index 57bed6a6a3..e10e3d774e 100644 --- a/src/common/zstream.cpp +++ b/src/common/zstream.cpp @@ -4,7 +4,6 @@ // Author: Guilhem Lavaux // Modified by: Mike Wetherell // Created: 11/07/98 -// RCS-ID: $Id$ // Copyright: (c) Guilhem Lavaux // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -19,6 +18,7 @@ #if wxUSE_ZLIB && wxUSE_STREAMS #include "wx/zstream.h" +#include "wx/versioninfo.h" #ifndef WX_PRECOMP #include "wx/intl.h" @@ -31,7 +31,7 @@ // apparently not the case for all MSW makefiles and so, unless we use // configure (which defines __WX_SETUP_H__) or it is explicitly overridden by // the user (who can define wxUSE_ZLIB_H_IN_PATH), we hardcode the path here -#if defined(__WXMSW__) && !defined(__WX_SETUP_H__) && !defined(wxUSE_ZLIB_H_IN_PATH) +#if defined(__WINDOWS__) && !defined(__WX_SETUP_H__) && !defined(wxUSE_ZLIB_H_IN_PATH) #include "../zlib/zlib.h" #else #include "zlib.h" @@ -44,6 +44,22 @@ enum { }; +wxVersionInfo wxGetZlibVersionInfo() +{ + int major, + minor, + build; + + if ( sscanf(zlibVersion(), "%d.%d.%d", &major, &minor, &build) != 3 ) + { + major = + minor = + build = 0; + } + + return wxVersionInfo("zlib", major, minor, build); +} + ///////////////////////////////////////////////////////////////////////////// // Zlib Class factory @@ -60,8 +76,8 @@ wxZlibClassFactory::wxZlibClassFactory() const wxChar * const * wxZlibClassFactory::GetProtocols(wxStreamProtocolType type) const { - static const wxChar *mimes[] = { _T("application/x-deflate"), NULL }; - static const wxChar *encs[] = { _T("deflate"), NULL }; + static const wxChar *mimes[] = { wxT("application/x-deflate"), NULL }; + static const wxChar *encs[] = { wxT("deflate"), NULL }; static const wxChar *empty[] = { NULL }; switch (type) { @@ -88,14 +104,14 @@ wxGzipClassFactory::wxGzipClassFactory() const wxChar * const * wxGzipClassFactory::GetProtocols(wxStreamProtocolType type) const { - static const wxChar *protos[] = - { _T("gzip"), NULL }; - static const wxChar *mimes[] = - { _T("application/gzip"), _T("application/x-gzip"), NULL }; - static const wxChar *encs[] = - { _T("gzip"), NULL }; - static const wxChar *exts[] = - { _T(".gz"), _T(".gzip"), NULL }; + static const wxChar *protos[] = + { wxT("gzip"), NULL }; + static const wxChar *mimes[] = + { wxT("application/gzip"), wxT("application/x-gzip"), NULL }; + static const wxChar *encs[] = + { wxT("gzip"), NULL }; + static const wxChar *exts[] = + { wxT(".gz"), wxT(".gzip"), NULL }; static const wxChar *empty[] = { NULL }; @@ -224,7 +240,9 @@ size_t wxZlibInputStream::OnSysRead(void *buffer, size_t size) // by the parent strean, m_lasterror = wxSTREAM_READ_ERROR; if (m_parent_i_stream->Eof()) + { wxLogError(_("Can't read inflate stream: unexpected EOF in underlying stream.")); + } break; default: @@ -333,11 +351,8 @@ bool wxZlibOutputStream::Close() { DoFlush(true); deflateEnd(m_deflate); - delete m_deflate; - - m_deflate = NULL; - delete[] m_z_buffer; - m_z_buffer = NULL; + wxDELETE(m_deflate); + wxDELETEA(m_z_buffer); return wxFilterOutputStream::Close() && IsOk(); }