Update to 7-Zip Version 21.07

See: https://sourceforge.net/p/sevenzip/discussion/45797/thread/0a7b47970b/
This commit is contained in:
Tino Reichardt
2022-08-07 09:51:50 +02:00
parent e3067bf67b
commit 6a4fe97fc3
89 changed files with 3476 additions and 441 deletions

View File

@@ -21,12 +21,20 @@
#include "../Compress/CopyCoder.h"
#include "../Compress/LzmaDecoder.h"
#include "../Compress/LzmaEncoder.h"
#include "../Compress/ZlibDecoder.h"
#include "../Compress/ZlibEncoder.h"
#include "Common/DummyOutStream.h"
// #define SWF_UPDATE
#ifdef SWF_UPDATE
#include "../Compress/LzmaEncoder.h"
#include "../Compress/ZlibEncoder.h"
#include "Common/HandlerOut.h"
#endif
using namespace NWindows;
@@ -152,8 +160,10 @@ struct CItem
class CHandler:
public IInArchive,
public IArchiveOpenSeq,
#ifdef SWF_UPDATE
public IOutArchive,
public ISetProperties,
#endif
public CMyUnknownImp
{
CItem _item;
@@ -162,16 +172,22 @@ class CHandler:
CMyComPtr<ISequentialInStream> _seqStream;
CMyComPtr<IInStream> _stream;
#ifdef SWF_UPDATE
CSingleMethodProps _props;
bool _lzmaMode;
#endif
public:
CHandler(): _lzmaMode(false) {}
#ifdef SWF_UPDATE
MY_UNKNOWN_IMP4(IInArchive, IArchiveOpenSeq, IOutArchive, ISetProperties)
INTERFACE_IInArchive(;)
CHandler(): _lzmaMode(false) {}
INTERFACE_IOutArchive(;)
STDMETHOD(OpenSeq)(ISequentialInStream *stream);
STDMETHOD(SetProperties)(const wchar_t * const *names, const PROPVARIANT *values, UInt32 numProps);
#else
MY_UNKNOWN_IMP2(IInArchive, IArchiveOpenSeq)
#endif
INTERFACE_IInArchive(;)
STDMETHOD(OpenSeq)(ISequentialInStream *stream);
};
static const Byte kProps[] =
@@ -416,6 +432,9 @@ STDMETHODIMP CHandler::Extract(const UInt32 *indices, UInt32 numItems,
COM_TRY_END
}
#ifdef SWF_UPDATE
static HRESULT UpdateArchive(ISequentialOutStream *outStream, UInt64 size,
bool lzmaMode, const CSingleMethodProps &props,
IArchiveUpdateCallback *updateCallback)
@@ -576,11 +595,14 @@ STDMETHODIMP CHandler::SetProperties(const wchar_t * const *names, const PROPVAR
return S_OK;
}
#endif
static const Byte k_Signature[] = {
3, 'C', 'W', 'S',
3, 'Z', 'W', 'S' };
REGISTER_ARC_IO(
REGISTER_ARC_I(
"SWFc", "swf", "~.swf", 0xD8,
k_Signature,
0,