X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/55420742a101b2963c40694cb879ea3de4fb6bb2..af7e24c33e1e6e00a7687ee965b921dbe60cdb36:/src/common/zstream.cpp?ds=sidebyside diff --git a/src/common/zstream.cpp b/src/common/zstream.cpp index 3ba96cf3cb..8283811fbb 100644 --- a/src/common/zstream.cpp +++ b/src/common/zstream.cpp @@ -60,8 +60,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,23 +88,23 @@ 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 }; switch (type) { - case wxSTREAM_PROTOCOL: return protos; - case wxSTREAM_MIMETYPE: return mimes; - case wxSTREAM_ENCODING: return encs; - case wxSTREAM_FILEEXTENSION: return exts; - default: return empty; + case wxSTREAM_PROTOCOL: return protos; + case wxSTREAM_MIMETYPE: return mimes; + case wxSTREAM_ENCODING: return encs; + case wxSTREAM_FILEEXT: return exts; + default: return empty; } } @@ -132,13 +132,6 @@ void wxZlibInputStream::Init(int flags) m_z_size = ZSTREAM_BUFFER_SIZE; m_pos = 0; -#if WXWIN_COMPATIBILITY_2_4 - // treat compatibility mode as auto - m_24compatibilty = flags == wxZLIB_24COMPATIBLE; - if (m_24compatibilty) - flags = wxZLIB_AUTO; -#endif - // if gzip is asked for but not supported... if ((flags == wxZLIB_GZIP || flags == wxZLIB_AUTO) && !CanHandleGZip()) { if (flags == wxZLIB_AUTO) { @@ -231,12 +224,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()) -#if WXWIN_COMPATIBILITY_2_4 - if (m_24compatibilty) - m_lasterror = wxSTREAM_EOF; - else -#endif + { wxLogError(_("Can't read inflate stream: unexpected EOF in underlying stream.")); + } break; default: @@ -260,6 +250,16 @@ size_t wxZlibInputStream::OnSysRead(void *buffer, size_t size) return major > 1 || (major == 1 && minor >= 2); } +bool wxZlibInputStream::SetDictionary(const char *data, const size_t datalen) +{ + return (inflateSetDictionary(m_inflate, (Bytef*)data, datalen) == Z_OK); +} + +bool wxZlibInputStream::SetDictionary(const wxMemoryBuffer &buf) +{ + return SetDictionary((char*)buf.GetData(), buf.GetDataLen()); +} + ////////////////////// // wxZlibOutputStream @@ -424,5 +424,15 @@ size_t wxZlibOutputStream::OnSysWrite(const void *buffer, size_t size) return wxZlibInputStream::CanHandleGZip(); } +bool wxZlibOutputStream::SetDictionary(const char *data, const size_t datalen) +{ + return (deflateSetDictionary(m_deflate, (Bytef*)data, datalen) == Z_OK); +} + +bool wxZlibOutputStream::SetDictionary(const wxMemoryBuffer &buf) +{ + return SetDictionary((char*)buf.GetData(), buf.GetDataLen()); +} + #endif // wxUSE_ZLIB && wxUSE_STREAMS