mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-10 14:07:11 -06:00
4.57
This commit is contained in:
committed by
Kornel Lesiński
parent
acd742622d
commit
bd1fa36322
@@ -109,6 +109,7 @@ namespace NFileHeader
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const UInt32 kDataDescriptorSize = 16;
|
const UInt32 kDataDescriptorSize = 16;
|
||||||
|
// const UInt32 kDataDescriptor64Size = 16 + 8;
|
||||||
/*
|
/*
|
||||||
struct CDataDescriptor
|
struct CDataDescriptor
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -437,8 +437,21 @@ HRESULT CInArchive::ReadLocalItemAfterCdItemFull(CItemEx &item)
|
|||||||
if (ReadUInt32() != NSignature::kDataDescriptor)
|
if (ReadUInt32() != NSignature::kDataDescriptor)
|
||||||
return S_FALSE;
|
return S_FALSE;
|
||||||
UInt32 crc = ReadUInt32();
|
UInt32 crc = ReadUInt32();
|
||||||
UInt32 packSize = ReadUInt32();
|
UInt64 packSize, unpackSize;
|
||||||
UInt32 unpackSize = ReadUInt32();
|
|
||||||
|
/*
|
||||||
|
if (IsZip64)
|
||||||
|
{
|
||||||
|
packSize = ReadUInt64();
|
||||||
|
unpackSize = ReadUInt64();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
packSize = ReadUInt32();
|
||||||
|
unpackSize = ReadUInt32();
|
||||||
|
}
|
||||||
|
|
||||||
if (crc != item.FileCRC || item.PackSize != packSize || item.UnPackSize != unpackSize)
|
if (crc != item.FileCRC || item.PackSize != packSize || item.UnPackSize != unpackSize)
|
||||||
return S_FALSE;
|
return S_FALSE;
|
||||||
}
|
}
|
||||||
@@ -681,6 +694,7 @@ HRESULT CInArchive::ReadHeaders(CObjectVector<CItemEx> &items, CProgressVirt *pr
|
|||||||
// kEndOfCentralDirSignature
|
// kEndOfCentralDirSignature
|
||||||
// m_Position points to next byte after signature
|
// m_Position points to next byte after signature
|
||||||
|
|
||||||
|
IsZip64 = false;
|
||||||
items.Clear();
|
items.Clear();
|
||||||
if (progress != 0)
|
if (progress != 0)
|
||||||
{
|
{
|
||||||
@@ -722,7 +736,7 @@ HRESULT CInArchive::ReadHeaders(CObjectVector<CItemEx> &items, CProgressVirt *pr
|
|||||||
UInt64 zip64EcdStartOffset = m_Position - 4 - m_ArchiveInfo.Base;
|
UInt64 zip64EcdStartOffset = m_Position - 4 - m_ArchiveInfo.Base;
|
||||||
if(m_Signature == NSignature::kZip64EndOfCentralDir)
|
if(m_Signature == NSignature::kZip64EndOfCentralDir)
|
||||||
{
|
{
|
||||||
isZip64 = true;
|
IsZip64 = isZip64 = true;
|
||||||
UInt64 recordSize = ReadUInt64();
|
UInt64 recordSize = ReadUInt64();
|
||||||
/* UInt16 versionMade = */ ReadUInt16();
|
/* UInt16 versionMade = */ ReadUInt16();
|
||||||
/* UInt16 versionNeedExtract = */ ReadUInt16();
|
/* UInt16 versionNeedExtract = */ ReadUInt16();
|
||||||
|
|||||||
@@ -95,6 +95,7 @@ class CInArchive
|
|||||||
HRESULT ReadLocalsAndCd(CObjectVector<CItemEx> &items, CProgressVirt *progress, UInt64 &cdOffset);
|
HRESULT ReadLocalsAndCd(CObjectVector<CItemEx> &items, CProgressVirt *progress, UInt64 &cdOffset);
|
||||||
public:
|
public:
|
||||||
CInArchiveInfo m_ArchiveInfo;
|
CInArchiveInfo m_ArchiveInfo;
|
||||||
|
bool IsZip64;
|
||||||
|
|
||||||
HRESULT ReadHeaders(CObjectVector<CItemEx> &items, CProgressVirt *progress);
|
HRESULT ReadHeaders(CObjectVector<CItemEx> &items, CProgressVirt *progress);
|
||||||
HRESULT ReadLocalItemAfterCdItem(CItemEx &item);
|
HRESULT ReadLocalItemAfterCdItem(CItemEx &item);
|
||||||
|
|||||||
@@ -18,6 +18,11 @@ public:
|
|||||||
UInt64 GetLocalFullSize() const
|
UInt64 GetLocalFullSize() const
|
||||||
{ return FileHeaderWithNameSize + LocalExtraSize + PackSize +
|
{ return FileHeaderWithNameSize + LocalExtraSize + PackSize +
|
||||||
(HasDescriptor() ? NFileHeader::kDataDescriptorSize : 0); };
|
(HasDescriptor() ? NFileHeader::kDataDescriptorSize : 0); };
|
||||||
|
/*
|
||||||
|
UInt64 GetLocalFullSize(bool isZip64) const
|
||||||
|
{ return FileHeaderWithNameSize + LocalExtraSize + PackSize +
|
||||||
|
(HasDescriptor() ? (isZip64 ? NFileHeader::kDataDescriptor64Size : NFileHeader::kDataDescriptorSize) : 0); };
|
||||||
|
*/
|
||||||
UInt64 GetLocalExtraPosition() const
|
UInt64 GetLocalExtraPosition() const
|
||||||
{ return LocalHeaderPosition + FileHeaderWithNameSize; };
|
{ return LocalHeaderPosition + FileHeaderWithNameSize; };
|
||||||
UInt64 GetDataPosition() const
|
UInt64 GetDataPosition() const
|
||||||
|
|||||||
@@ -267,6 +267,7 @@ void CMtProgressMixer2::Create(IProgress *progress, bool inSizeIsMain)
|
|||||||
void CMtProgressMixer2::SetProgressOffset(UInt64 progressOffset)
|
void CMtProgressMixer2::SetProgressOffset(UInt64 progressOffset)
|
||||||
{
|
{
|
||||||
CriticalSection.Enter();
|
CriticalSection.Enter();
|
||||||
|
InSizes[1] = OutSizes[1] = 0;
|
||||||
ProgressOffset = progressOffset;
|
ProgressOffset = progressOffset;
|
||||||
CriticalSection.Leave();
|
CriticalSection.Leave();
|
||||||
}
|
}
|
||||||
@@ -323,7 +324,9 @@ STDMETHODIMP CMtProgressMixer::SetRatioInfo(const UInt64 *inSize, const UInt64 *
|
|||||||
|
|
||||||
static HRESULT UpdateItemOldData(COutArchive &archive,
|
static HRESULT UpdateItemOldData(COutArchive &archive,
|
||||||
IInStream *inStream,
|
IInStream *inStream,
|
||||||
const CUpdateItem &updateItem, CItemEx &item, ICompressProgressInfo *progress,
|
const CUpdateItem &updateItem, CItemEx &item,
|
||||||
|
/* bool izZip64, */
|
||||||
|
ICompressProgressInfo *progress,
|
||||||
UInt64 &complexity)
|
UInt64 &complexity)
|
||||||
{
|
{
|
||||||
if (updateItem.NewProperties)
|
if (updateItem.NewProperties)
|
||||||
|
|||||||
@@ -40,11 +40,11 @@ static const UInt32 kMatchArrayLimit = kMatchArraySize - kMatchMaxLen * 4 * size
|
|||||||
static const UInt32 kBlockUncompressedSizeThreshold = kMaxUncompressedBlockSize -
|
static const UInt32 kBlockUncompressedSizeThreshold = kMaxUncompressedBlockSize -
|
||||||
kMatchMaxLen - kNumOpts;
|
kMatchMaxLen - kNumOpts;
|
||||||
|
|
||||||
static const int kMaxCodeBitLength = 15;
|
static const int kMaxCodeBitLength = 12;
|
||||||
static const int kMaxLevelBitLength = 7;
|
static const int kMaxLevelBitLength = 7;
|
||||||
|
|
||||||
static Byte kNoLiteralStatPrice = 13;
|
static Byte kNoLiteralStatPrice = 12;
|
||||||
static Byte kNoLenStatPrice = 13;
|
static Byte kNoLenStatPrice = 12;
|
||||||
static Byte kNoPosStatPrice = 6;
|
static Byte kNoPosStatPrice = 6;
|
||||||
|
|
||||||
static Byte g_LenSlots[kNumLenSymbolsMax];
|
static Byte g_LenSlots[kNumLenSymbolsMax];
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#define MY_VER_MAJOR 4
|
#define MY_VER_MAJOR 4
|
||||||
#define MY_VER_MINOR 56
|
#define MY_VER_MINOR 57
|
||||||
#define MY_VER_BUILD 0
|
#define MY_VER_BUILD 0
|
||||||
#define MY_VERSION "4.56 beta"
|
#define MY_VERSION "4.57"
|
||||||
#define MY_7ZIP_VERSION "7-Zip 4.56 beta"
|
#define MY_7ZIP_VERSION "7-Zip 4.57"
|
||||||
#define MY_DATE "2007-10-24"
|
#define MY_DATE "2007-12-06"
|
||||||
#define MY_COPYRIGHT "Copyright (c) 1999-2007 Igor Pavlov"
|
#define MY_COPYRIGHT "Copyright (c) 1999-2007 Igor Pavlov"
|
||||||
#define MY_VERSION_COPYRIGHT_DATE MY_VERSION " " MY_COPYRIGHT " " MY_DATE
|
#define MY_VERSION_COPYRIGHT_DATE MY_VERSION " " MY_COPYRIGHT " " MY_DATE
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ void UpdateProduce(
|
|||||||
pair2.ArchiveItemIndex = pair.ArchiveItemIndex;
|
pair2.ArchiveItemIndex = pair.ArchiveItemIndex;
|
||||||
pair2.DirItemIndex = pair.DirItemIndex;
|
pair2.DirItemIndex = pair.DirItemIndex;
|
||||||
pair2.ExistInArchive = (pair.State != NPairState::kOnlyOnDisk);
|
pair2.ExistInArchive = (pair.State != NPairState::kOnlyOnDisk);
|
||||||
pair2.ExistOnDisk = (pair.State != NPairState::kOnlyInArchive);
|
pair2.ExistOnDisk = (pair.State != NPairState::kOnlyInArchive && pair.State != NPairState::kNotMasked);
|
||||||
switch(actionSet.StateActions[pair.State])
|
switch(actionSet.StateActions[pair.State])
|
||||||
{
|
{
|
||||||
case NPairAction::kIgnore:
|
case NPairAction::kIgnore:
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ static const wchar_t *kStartExtensions[] =
|
|||||||
{
|
{
|
||||||
L"exe", L"bat", L"com",
|
L"exe", L"bat", L"com",
|
||||||
L"chm",
|
L"chm",
|
||||||
L"msi", L"doc", L"xls", L"ppt",
|
L"msi", L"doc", L"xls", L"ppt", L"wps", L"wpt", L"wks", L"xlr", L"wdb",
|
||||||
L"odt", L"ods",
|
L"odt", L"ods",
|
||||||
L"pdf"
|
L"pdf"
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
;Defines
|
;Defines
|
||||||
|
|
||||||
!define VERSION_MAJOR 4
|
!define VERSION_MAJOR 4
|
||||||
!define VERSION_MINOR 56
|
!define VERSION_MINOR 57
|
||||||
!define VERSION_POSTFIX_FULL " beta"
|
!define VERSION_POSTFIX_FULL ""
|
||||||
!ifdef WIN64
|
!ifdef WIN64
|
||||||
!ifdef IA64
|
!ifdef IA64
|
||||||
!define VERSION_SYS_POSTFIX_FULL " for Windows IA-64"
|
!define VERSION_SYS_POSTFIX_FULL " for Windows IA-64"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
<?define VerMajor = "4" ?>
|
<?define VerMajor = "4" ?>
|
||||||
<?define VerMinor = "56" ?>
|
<?define VerMinor = "57" ?>
|
||||||
<?define VerBuild = "00" ?>
|
<?define VerBuild = "00" ?>
|
||||||
<?define MmVer = "$(var.VerMajor).$(var.VerMinor)" ?>
|
<?define MmVer = "$(var.VerMajor).$(var.VerMinor)" ?>
|
||||||
<?define MmHex = "0$(var.VerMajor)$(var.VerMinor)" ?>
|
<?define MmHex = "0$(var.VerMajor)$(var.VerMinor)" ?>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
7-Zip 4.56 Sources
|
7-Zip 4.57 Sources
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
7-Zip is a file archiver for Windows 95/98/ME/NT/2000/2003/XP/Vista.
|
7-Zip is a file archiver for Windows 95/98/ME/NT/2000/2003/XP/Vista.
|
||||||
|
|||||||
Reference in New Issue
Block a user