mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-06 13:14:59 -06:00
16.04
This commit is contained in:
committed by
Kornel Lesiński
parent
232ce79574
commit
603abd5528
@@ -1,9 +1,9 @@
|
|||||||
#define MY_VER_MAJOR 16
|
#define MY_VER_MAJOR 16
|
||||||
#define MY_VER_MINOR 03
|
#define MY_VER_MINOR 04
|
||||||
#define MY_VER_BUILD 0
|
#define MY_VER_BUILD 0
|
||||||
#define MY_VERSION_NUMBERS "16.03"
|
#define MY_VERSION_NUMBERS "16.04"
|
||||||
#define MY_VERSION "16.03"
|
#define MY_VERSION "16.04"
|
||||||
#define MY_DATE "2016-09-28"
|
#define MY_DATE "2016-10-04"
|
||||||
#undef MY_COPYRIGHT
|
#undef MY_COPYRIGHT
|
||||||
#undef MY_VERSION_COPYRIGHT_DATE
|
#undef MY_VERSION_COPYRIGHT_DATE
|
||||||
#define MY_AUTHOR_NAME "Igor Pavlov"
|
#define MY_AUTHOR_NAME "Igor Pavlov"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/* DllSecur.c -- DLL loading security
|
/* DllSecur.c -- DLL loading security
|
||||||
2016-09-15 : Igor Pavlov : Public domain */
|
2016-10-04 : Igor Pavlov : Public domain */
|
||||||
|
|
||||||
#include "Precomp.h"
|
#include "Precomp.h"
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ void LoadSecurityDlls()
|
|||||||
// at Vista (ver 6.0) : CoCreateInstance(CLSID_ShellLink, ...) doesn't work after SetDefaultDllDirectories() : Check it ???
|
// at Vista (ver 6.0) : CoCreateInstance(CLSID_ShellLink, ...) doesn't work after SetDefaultDllDirectories() : Check it ???
|
||||||
OSVERSIONINFO vi;
|
OSVERSIONINFO vi;
|
||||||
vi.dwOSVersionInfoSize = sizeof(vi);
|
vi.dwOSVersionInfoSize = sizeof(vi);
|
||||||
if (!GetVersionEx(&vi) || vi.dwMajorVersion != 6 || vi.dwMajorVersion != 0)
|
if (!GetVersionEx(&vi) || vi.dwMajorVersion != 6 || vi.dwMinorVersion != 0)
|
||||||
{
|
{
|
||||||
Func_SetDefaultDllDirectories setDllDirs = (Func_SetDefaultDllDirectories)
|
Func_SetDefaultDllDirectories setDllDirs = (Func_SetDefaultDllDirectories)
|
||||||
GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "SetDefaultDllDirectories");
|
GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "SetDefaultDllDirectories");
|
||||||
|
|||||||
@@ -231,6 +231,18 @@ bool CItem::Is_CopyLink() const
|
|||||||
return FindExtra_Link(link) && link.Type == NLinkType::kFileCopy;
|
return FindExtra_Link(link) && link.Type == NLinkType::kFileCopy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CItem::Is_HardLink() const
|
||||||
|
{
|
||||||
|
CLinkInfo link;
|
||||||
|
return FindExtra_Link(link) && link.Type == NLinkType::kHardLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CItem::Is_CopyLink_or_HardLink() const
|
||||||
|
{
|
||||||
|
CLinkInfo link;
|
||||||
|
return FindExtra_Link(link) && (link.Type == NLinkType::kFileCopy || link.Type == NLinkType::kHardLink);
|
||||||
|
}
|
||||||
|
|
||||||
void CItem::Link_to_Prop(unsigned linkType, NWindows::NCOM::CPropVariant &prop) const
|
void CItem::Link_to_Prop(unsigned linkType, NWindows::NCOM::CPropVariant &prop) const
|
||||||
{
|
{
|
||||||
CLinkInfo link;
|
CLinkInfo link;
|
||||||
@@ -2587,7 +2599,7 @@ STDMETHODIMP CHandler::Extract(const UInt32 *indices, UInt32 numItems,
|
|||||||
{
|
{
|
||||||
if (testMode)
|
if (testMode)
|
||||||
{
|
{
|
||||||
if (item->Is_CopyLink() && item->PackSize == 0)
|
if (item->NeedUse_as_CopyLink_or_HardLink())
|
||||||
{
|
{
|
||||||
RINOK(extractCallback->PrepareOperation(askMode));
|
RINOK(extractCallback->PrepareOperation(askMode));
|
||||||
RINOK(extractCallback->SetOperationResult(NExtract::NOperationResult::kOK));
|
RINOK(extractCallback->SetOperationResult(NExtract::NOperationResult::kOK));
|
||||||
@@ -2599,6 +2611,9 @@ STDMETHODIMP CHandler::Extract(const UInt32 *indices, UInt32 numItems,
|
|||||||
if (item->IsService())
|
if (item->IsService())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (item->NeedUse_as_HardLink())
|
||||||
|
continue;
|
||||||
|
|
||||||
bool needDecode = false;
|
bool needDecode = false;
|
||||||
|
|
||||||
for (unsigned n = i + 1; n < _refs.Size(); n++)
|
for (unsigned n = i + 1; n < _refs.Size(); n++)
|
||||||
@@ -2639,7 +2654,7 @@ STDMETHODIMP CHandler::Extract(const UInt32 *indices, UInt32 numItems,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item->Is_CopyLink() && item->PackSize == 0)
|
if (item->NeedUse_as_CopyLink())
|
||||||
{
|
{
|
||||||
RINOK(extractCallback->SetOperationResult(
|
RINOK(extractCallback->SetOperationResult(
|
||||||
realOutStream ?
|
realOutStream ?
|
||||||
|
|||||||
@@ -262,8 +262,12 @@ struct CItem
|
|||||||
bool FindExtra_Link(CLinkInfo &link) const;
|
bool FindExtra_Link(CLinkInfo &link) const;
|
||||||
void Link_to_Prop(unsigned linkType, NWindows::NCOM::CPropVariant &prop) const;
|
void Link_to_Prop(unsigned linkType, NWindows::NCOM::CPropVariant &prop) const;
|
||||||
bool Is_CopyLink() const;
|
bool Is_CopyLink() const;
|
||||||
|
bool Is_HardLink() const;
|
||||||
|
bool Is_CopyLink_or_HardLink() const;
|
||||||
|
|
||||||
bool NeedUse_as_CopyLink() const { return PackSize == 0 && Is_CopyLink(); }
|
bool NeedUse_as_CopyLink() const { return PackSize == 0 && Is_CopyLink(); }
|
||||||
|
bool NeedUse_as_HardLink() const { return PackSize == 0 && Is_HardLink(); }
|
||||||
|
bool NeedUse_as_CopyLink_or_HardLink() const { return PackSize == 0 && Is_CopyLink_or_HardLink(); }
|
||||||
|
|
||||||
bool GetAltStreamName(AString &name) const;
|
bool GetAltStreamName(AString &name) const;
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,8 @@ static const UInt32 kHistorySize = 1 << 20;
|
|||||||
static const UInt32 kWindowReservSize = (1 << 22) + 256;
|
static const UInt32 kWindowReservSize = (1 << 22) + 256;
|
||||||
|
|
||||||
CDecoder::CDecoder():
|
CDecoder::CDecoder():
|
||||||
m_IsSolid(false)
|
m_IsSolid(false),
|
||||||
|
m_TablesOK(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -100,6 +101,8 @@ UInt32 CDecoder::ReadBits(unsigned numBits) { return m_InBitStream.ReadBits(numB
|
|||||||
|
|
||||||
bool CDecoder::ReadTables(void)
|
bool CDecoder::ReadTables(void)
|
||||||
{
|
{
|
||||||
|
m_TablesOK = false;
|
||||||
|
|
||||||
Byte levelLevels[kLevelTableSize];
|
Byte levelLevels[kLevelTableSize];
|
||||||
Byte newLevels[kMaxTableSize];
|
Byte newLevels[kMaxTableSize];
|
||||||
m_AudioMode = (ReadBits(1) == 1);
|
m_AudioMode = (ReadBits(1) == 1);
|
||||||
@@ -170,6 +173,9 @@ bool CDecoder::ReadTables(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
memcpy(m_LastLevels, newLevels, kMaxTableSize);
|
memcpy(m_LastLevels, newLevels, kMaxTableSize);
|
||||||
|
|
||||||
|
m_TablesOK = true;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -340,10 +346,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
|
|||||||
return S_FALSE;
|
return S_FALSE;
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
if (!ReadTables())
|
ReadTables();
|
||||||
return S_FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!m_TablesOK)
|
||||||
|
return S_FALSE;
|
||||||
|
|
||||||
UInt64 startPos = m_OutWindowStream.GetProcessedSize();
|
UInt64 startPos = m_OutWindowStream.GetProcessedSize();
|
||||||
while (pos < unPackSize)
|
while (pos < unPackSize)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -119,26 +119,29 @@ class CDecoder :
|
|||||||
{
|
{
|
||||||
CLzOutWindow m_OutWindowStream;
|
CLzOutWindow m_OutWindowStream;
|
||||||
CBitDecoder m_InBitStream;
|
CBitDecoder m_InBitStream;
|
||||||
|
|
||||||
|
UInt32 m_RepDistPtr;
|
||||||
|
UInt32 m_RepDists[kNumRepDists];
|
||||||
|
|
||||||
|
UInt32 m_LastLength;
|
||||||
|
|
||||||
|
bool m_IsSolid;
|
||||||
|
bool m_TablesOK;
|
||||||
|
bool m_AudioMode;
|
||||||
|
|
||||||
NHuffman::CDecoder<kNumHuffmanBits, kMainTableSize> m_MainDecoder;
|
NHuffman::CDecoder<kNumHuffmanBits, kMainTableSize> m_MainDecoder;
|
||||||
NHuffman::CDecoder<kNumHuffmanBits, kDistTableSize> m_DistDecoder;
|
NHuffman::CDecoder<kNumHuffmanBits, kDistTableSize> m_DistDecoder;
|
||||||
NHuffman::CDecoder<kNumHuffmanBits, kLenTableSize> m_LenDecoder;
|
NHuffman::CDecoder<kNumHuffmanBits, kLenTableSize> m_LenDecoder;
|
||||||
NHuffman::CDecoder<kNumHuffmanBits, kMMTableSize> m_MMDecoders[NMultimedia::kNumChanelsMax];
|
NHuffman::CDecoder<kNumHuffmanBits, kMMTableSize> m_MMDecoders[NMultimedia::kNumChanelsMax];
|
||||||
NHuffman::CDecoder<kNumHuffmanBits, kLevelTableSize> m_LevelDecoder;
|
NHuffman::CDecoder<kNumHuffmanBits, kLevelTableSize> m_LevelDecoder;
|
||||||
|
|
||||||
bool m_AudioMode;
|
UInt64 m_PackSize;
|
||||||
|
|
||||||
NMultimedia::CFilter2 m_MmFilter;
|
|
||||||
unsigned m_NumChannels;
|
unsigned m_NumChannels;
|
||||||
|
NMultimedia::CFilter2 m_MmFilter;
|
||||||
UInt32 m_RepDists[kNumRepDists];
|
|
||||||
UInt32 m_RepDistPtr;
|
|
||||||
|
|
||||||
UInt32 m_LastLength;
|
|
||||||
|
|
||||||
Byte m_LastLevels[kMaxTableSize];
|
Byte m_LastLevels[kMaxTableSize];
|
||||||
|
|
||||||
UInt64 m_PackSize;
|
|
||||||
bool m_IsSolid;
|
|
||||||
|
|
||||||
void InitStructures();
|
void InitStructures();
|
||||||
UInt32 ReadBits(unsigned numBits);
|
UInt32 ReadBits(unsigned numBits);
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ AppName = "7-Zip"
|
|||||||
InstallDir = %CE1%\%AppName%
|
InstallDir = %CE1%\%AppName%
|
||||||
|
|
||||||
[Strings]
|
[Strings]
|
||||||
AppVer = "16.03"
|
AppVer = "16.04"
|
||||||
AppDate = "2016-10-28"
|
AppDate = "2016-10-04"
|
||||||
|
|
||||||
[CEDevice]
|
[CEDevice]
|
||||||
; ProcessorType = 2577 ; ARM
|
; ProcessorType = 2577 ; ARM
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
;Defines
|
;Defines
|
||||||
|
|
||||||
!define VERSION_MAJOR 16
|
!define VERSION_MAJOR 16
|
||||||
!define VERSION_MINOR 03
|
!define VERSION_MINOR 04
|
||||||
!define VERSION_POSTFIX_FULL ""
|
!define VERSION_POSTFIX_FULL ""
|
||||||
!ifdef WIN64
|
!ifdef WIN64
|
||||||
!ifdef IA64
|
!ifdef IA64
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
<?define VerMajor = "16" ?>
|
<?define VerMajor = "16" ?>
|
||||||
<?define VerMinor = "03" ?>
|
<?define VerMinor = "04" ?>
|
||||||
<?define VerBuild = "00" ?>
|
<?define VerBuild = "00" ?>
|
||||||
<?define MmVer = "$(var.VerMajor).$(var.VerMinor)" ?>
|
<?define MmVer = "$(var.VerMajor).$(var.VerMinor)" ?>
|
||||||
<?define MmHex = "$(var.VerMajor)$(var.VerMinor)" ?>
|
<?define MmHex = "$(var.VerMajor)$(var.VerMinor)" ?>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
7-Zip 16.02 Sources
|
7-Zip 16.04 Sources
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
7-Zip is a file archiver for Windows.
|
7-Zip is a file archiver for Windows.
|
||||||
|
|||||||
Reference in New Issue
Block a user