Update to 7-Zip Version 21.02

This commit is contained in:
Tino Reichardt
2021-05-13 16:39:14 +02:00
parent 3724ecfedc
commit 48fa49f76c
620 changed files with 35032 additions and 10925 deletions

View File

@@ -481,6 +481,10 @@ SOURCE=..\..\..\Common\NewHandler.h
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\Sha256Prepare.cpp
# End Source File
# Begin Source File
SOURCE=..\..\..\Common\StdInStream.cpp
# End Source File
# Begin Source File
@@ -888,6 +892,11 @@ SOURCE=..\..\..\..\C\Sha256.h
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Sha256Opt.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File
# Begin Source File
SOURCE=..\..\..\..\C\Threads.c
# SUBTRACT CPP /YX /Yc /Yu
# End Source File

View File

@@ -13,8 +13,10 @@
#ifdef _WIN32
#include "../../../Windows/DLL.h"
#include "../../../Windows/FileDir.h"
#else
#include "../../../Common/StringConvert.h"
#endif
#include "../../../Windows/FileDir.h"
#include "../../../Windows/FileName.h"
#include "../../UI/Common/ExitCode.h"
@@ -82,14 +84,20 @@ static const char kImmediateNameID = '!';
static const char kSomeCludePostStringMinSize = 2; // at least <@|!><N>ame must be
static const char kSomeCludeAfterRecursedPostStringMinSize = 2; // at least <@|!><N>ame must be
*/
#define SWFRM_3(t, mu, mi) t, mu, mi, NULL
#define SWFRM_1(t) SWFRM_3(t, false, 0)
#define SWFRM_SIMPLE SWFRM_1(NSwitchType::kSimple)
#define SWFRM_STRING_SINGL(mi) SWFRM_3(NSwitchType::kString, false, mi)
static const CSwitchForm kSwitchForms[kNumSwitches] =
{
{ "?", NSwitchType::kSimple },
{ "H", NSwitchType::kSimple },
{ "BD", NSwitchType::kSimple },
{ "Y", NSwitchType::kSimple },
{ "P", NSwitchType::kString, false, 1 },
{ "O", NSwitchType::kString, false, 1 },
{ "?", SWFRM_SIMPLE },
{ "H", SWFRM_SIMPLE },
{ "BD", SWFRM_SIMPLE },
{ "Y", SWFRM_SIMPLE },
{ "P", SWFRM_STRING_SINGL(1) },
{ "O", SWFRM_STRING_SINGL(1) },
};
static const int kNumCommandForms = 3;
@@ -103,7 +111,6 @@ static const NRecursedType::EEnum kCommandRecursedDefault[kNumCommandForms] =
// static const bool kAddRecursedDefault = false;
static const char * const kUniversalWildcard = "*";
static const int kCommandIndex = 0;
static const char * const kHelpString =
"\nUsage: 7zSFX [<command>] [<switches>...] [<file_name>...]\n"
@@ -152,7 +159,7 @@ struct CArchiveCommand
NRecursedType::EEnum DefaultRecursedType() const;
};
bool ParseArchiveCommand(const UString &commandString, CArchiveCommand &command)
static bool ParseArchiveCommand(const UString &commandString, CArchiveCommand &command)
{
UString s = commandString;
s.MakeLower_Ascii();
@@ -172,17 +179,19 @@ NRecursedType::EEnum CArchiveCommand::DefaultRecursedType() const
return kCommandRecursedDefault[CommandType];
}
void PrintHelp(void)
static void PrintHelp(void)
{
g_StdOut << kHelpString;
}
MY_ATTR_NORETURN
static void ShowMessageAndThrowException(const char *message, NExitCode::EEnum code)
{
g_StdOut << message << endl;
throw code;
}
MY_ATTR_NORETURN
static void PrintHelpAndExit() // yyy
{
PrintHelp();
@@ -218,7 +227,7 @@ static bool AddNameToCensor(NWildcard::CCensor &wildcardCensor,
return true;
}
void AddCommandLineWildcardToCensor(NWildcard::CCensor &wildcardCensor,
static void AddCommandLineWildcardToCensor(NWildcard::CCensor &wildcardCensor,
const UString &name, bool include, NRecursedType::EEnum type)
{
if (!AddNameToCensor(wildcardCensor, name, include, type))
@@ -227,7 +236,7 @@ void AddCommandLineWildcardToCensor(NWildcard::CCensor &wildcardCensor,
#ifndef _WIN32
static void GetArguments(int numArgs, const char *args[], UStringVector &parts)
static void GetArguments(int numArgs, char *args[], UStringVector &parts)
{
parts.Clear();
for (int i = 0; i < numArgs; i++)
@@ -238,9 +247,15 @@ static void GetArguments(int numArgs, const char *args[], UStringVector &parts)
}
#endif
int Main2(
#ifndef _WIN32
int numArgs, const char *args[]
int numArgs, char *args[]
#endif
);
int Main2(
#ifndef _WIN32
int numArgs, char *args[]
#endif
)
{
@@ -253,6 +268,10 @@ int Main2(
SetFileApisToOEM();
#endif
#ifdef ENV_HAVE_LOCALE
MY_SetLocale();
#endif
g_StdOut << kCopyrightString;
UStringVector commandStrings;
@@ -277,7 +296,10 @@ int Main2(
#else
UString arcPath = commandStrings.Front();
if (commandStrings.IsEmpty())
return NExitCode::kFatalError;
const FString arcPath = us2fs(commandStrings.Front());
#endif
@@ -356,7 +378,7 @@ int Main2(
if (passwordEnabled)
password = parser[NKey::kPassword].PostStrings[0];
if (!NFind::DoesFileExist(arcPath))
if (!NFind::DoesFileExist_FollowLink(arcPath))
throw kCantFindSFX;
FString outputDir;

View File

@@ -29,8 +29,8 @@ COMMON_OBJS = \
$O\StdInStream.obj \
$O\StdOutStream.obj \
$O\StringConvert.obj \
$O\Wildcard.obj \
$O\UTFConvert.obj \
$O\Wildcard.obj \
WIN_OBJS = \
$O\DLL.obj \
@@ -64,9 +64,9 @@ UI_COMMON_OBJS = \
$O\ArchiveExtractCallback.obj \
$O\ArchiveOpenCallback.obj \
$O\DefaultName.obj \
$O\LoadCodecs.obj \
$O\Extract.obj \
$O\ExtractingFilePath.obj \
$O\LoadCodecs.obj \
$O\OpenArchive.obj \
$O\PropIDUtils.obj \
@@ -79,7 +79,6 @@ AR_COMMON_OBJS = \
$O\MultiStream.obj \
$O\OutStreamWithCRC.obj \
7Z_OBJS = \
$O\7zDecode.obj \
$O\7zExtract.obj \
@@ -124,12 +123,12 @@ C_OBJS = \
$O\MtDec.obj \
$O\Ppmd7.obj \
$O\Ppmd7Dec.obj \
$O\Sha256.obj \
$O\Threads.obj \
!include "../../Aes.mak"
!include "../../Crc.mak"
!include "../../LzmaDec.mak"
!include "../../Sha256.mak"
COMPRESS_OBJS = $(COMPRESS_OBJS) \
$O\ZstdDecoder.obj \

View File

@@ -0,0 +1,204 @@
PROG = 7zCon
# IS_X64 = 1
# USE_ASM = 1
# ST_MODE = 1
include ../../LzmaDec_gcc.mak
LOCAL_FLAGS_ST =
MT_OBJS =
ifdef ST_MODE
LOCAL_FLAGS_ST = -D_7ZIP_ST
ifdef SystemDrive
MT_OBJS = \
$O/Threads.o \
endif
else
MT_OBJS = \
$O/StreamBinder.o \
$O/Synchronization.o \
$O/VirtThread.o \
$O/Threads.o \
endif
LOCAL_FLAGS_SYS =
ifdef SystemDrive
LOCAL_FLAGS_SYS = \
SYS_OBJS = \
$O/DLL.o \
$O/DllSecur.o \
$O/resource.o \
else
SYS_OBJS = \
$O/MyWindows.o \
endif
LOCAL_FLAGS = \
$(LOCAL_FLAGS_ST) \
$(LOCAL_FLAGS_SYS) \
-DEXTRACT_ONLY \
-DNO_READ_FROM_CODER \
-D_SFX \
CURRENT_OBJS = \
$O/SfxCon.o \
CONSOLE_OBJS = \
$O/ConsoleClose.o \
$O/ExtractCallbackConsole.o \
$O/List.o \
$O/MainAr.o \
$O/OpenCallbackConsole.o \
$O/PercentPrinter.o \
$O/UserInputUtils.o \
COMMON_OBJS = \
$O/CommandLineParser.o \
$O/CRC.o \
$O/IntToString.o \
$O/MyString.o \
$O/MyVector.o \
$O/NewHandler.o \
$O/Sha256Prepare.o \
$O/StdInStream.o \
$O/StdOutStream.o \
$O/StringConvert.o \
$O/UTFConvert.o \
$O/Wildcard.o \
WIN_OBJS = \
\
$O/ErrorMsg.o \
$O/FileDir.o \
$O/FileFind.o \
$O/FileIO.o \
$O/FileName.o \
$O/PropVariant.o \
$O/PropVariantConv.o \
\
$O/System.o \
$O/TimeUtils.o \
7ZIP_COMMON_OBJS = \
$O/CreateCoder.o \
$O/CWrappers.o \
$O/FilePathAutoRename.o \
$O/FileStreams.o \
$O/InBuffer.o \
$O/FilterCoder.o \
$O/LimitedStreams.o \
$O/OutBuffer.o \
$O/ProgressUtils.o \
$O/PropId.o \
\
$O/StreamObjects.o \
$O/StreamUtils.o \
\
UI_COMMON_OBJS = \
$O/ArchiveExtractCallback.o \
$O/ArchiveOpenCallback.o \
$O/DefaultName.o \
$O/Extract.o \
$O/ExtractingFilePath.o \
$O/LoadCodecs.o \
$O/OpenArchive.o \
$O/PropIDUtils.o \
AR_OBJS = \
$O/SplitHandler.o \
AR_COMMON_OBJS = \
$O/CoderMixer2.o \
$O/ItemNameUtils.o \
$O/MultiStream.o \
$O/OutStreamWithCRC.o \
7Z_OBJS = \
$O/7zDecode.o \
$O/7zExtract.o \
$O/7zHandler.o \
$O/7zIn.o \
$O/7zRegister.o \
COMPRESS_OBJS = \
$O/Bcj2Coder.o \
$O/Bcj2Register.o \
$O/BcjCoder.o \
$O/BcjRegister.o \
$O/BranchMisc.o \
$O/BranchRegister.o \
$O/CopyCoder.o \
$O/CopyRegister.o \
$O/DeltaFilter.o \
$O/Lzma2Decoder.o \
$O/Lzma2Register.o \
$O/LzmaDecoder.o \
$O/LzmaRegister.o \
$O/PpmdDecoder.o \
$O/PpmdRegister.o \
CRYPTO_OBJS = \
$O/7zAes.o \
$O/7zAesRegister.o \
$O/MyAes.o \
C_OBJS = \
$O/Alloc.o \
$O/Bcj2.o \
$O/Bra.o \
$O/Bra86.o \
$O/BraIA64.o \
$O/CpuArch.o \
$O/Delta.o \
\
$O/Lzma2Dec.o \
$O/Lzma2DecMt.o \
$O/LzmaDec.o \
$O/MtDec.o \
$O/Ppmd7.o \
$O/Ppmd7Dec.o \
$O/Sha256.o \
$O/Sha256Opt.o \
$O/7zCrc.o \
$O/7zCrcOpt.o \
$O/Aes.o \
$O/AesOpt.o \
OBJS = \
$(LZMA_DEC_OPT_OBJS) \
$(C_OBJS) \
$(MT_OBJS) \
$(SYS_OBJS) \
$(COMMON_OBJS) \
$(WIN_OBJS) \
$(COMPRESS_OBJS) \
$(CRYPTO_OBJS) \
$(7ZIP_COMMON_OBJS) \
$(AR_OBJS) \
$(AR_COMMON_OBJS) \
$(7Z_OBJS) \
$(UI_COMMON_OBJS) \
$(CONSOLE_OBJS) \
$(CURRENT_OBJS) \
include ../../7zip_gcc.mak