mirror of
https://github.com/Xevion/easy7zip.git
synced 2026-02-01 02:24:22 -06:00
Update to 7-Zip Version 21.04
- first test... no release!!!
This commit is contained in:
@@ -71,6 +71,9 @@ extern const CCodecInfo *g_Codecs[];
|
||||
extern unsigned g_NumHashers;
|
||||
extern const CHasherInfo *g_Hashers[];
|
||||
|
||||
#ifdef EXTERNAL_CODECS
|
||||
const CExternalCodecs *g_ExternalCodecs_Ptr;
|
||||
#endif
|
||||
|
||||
#if defined(PROG_VARIANT_Z)
|
||||
#define PROG_POSTFIX "z"
|
||||
@@ -859,9 +862,11 @@ int Main2(
|
||||
codecs->CaseSensitiveChange = options.CaseSensitiveChange;
|
||||
codecs->CaseSensitive = options.CaseSensitive;
|
||||
ThrowException_if_Error(codecs->Load());
|
||||
Codecs_AddHashArcHandler(codecs);
|
||||
|
||||
#ifdef EXTERNAL_CODECS
|
||||
{
|
||||
g_ExternalCodecs_Ptr = &__externalCodecs;
|
||||
UString s;
|
||||
codecs->GetCodecsErrorMessage(s);
|
||||
if (!s.IsEmpty())
|
||||
@@ -872,8 +877,7 @@ int Main2(
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
bool isExtractGroupCommand = options.Command.IsFromExtractGroup();
|
||||
const bool isExtractGroupCommand = options.Command.IsFromExtractGroup();
|
||||
|
||||
if (codecs->Formats.Size() == 0 &&
|
||||
(isExtractGroupCommand
|
||||
@@ -888,13 +892,15 @@ int Main2(
|
||||
throw s;
|
||||
}
|
||||
#endif
|
||||
|
||||
throw kNoFormats;
|
||||
}
|
||||
|
||||
CObjectVector<COpenType> types;
|
||||
if (!ParseOpenTypes(*codecs, options.ArcType, types))
|
||||
{
|
||||
throw kUnsupportedArcTypeMessage;
|
||||
}
|
||||
|
||||
|
||||
CIntVector excludedFormats;
|
||||
FOR_VECTOR (k, options.ExcludedArcTypes)
|
||||
@@ -903,13 +909,16 @@ int Main2(
|
||||
if (!codecs->FindFormatForArchiveType(options.ExcludedArcTypes[k], tempIndices)
|
||||
|| tempIndices.Size() != 1)
|
||||
throw kUnsupportedArcTypeMessage;
|
||||
|
||||
|
||||
|
||||
excludedFormats.AddToUniqueSorted(tempIndices[0]);
|
||||
// excludedFormats.Sort();
|
||||
}
|
||||
|
||||
|
||||
#ifdef EXTERNAL_CODECS
|
||||
if (isExtractGroupCommand
|
||||
|| options.Command.IsFromUpdateGroup()
|
||||
|| options.Command.CommandType == NCommandType::kHash
|
||||
|| options.Command.CommandType == NCommandType::kBenchmark)
|
||||
ThrowException_if_Error(__externalCodecs.Load());
|
||||
@@ -943,7 +952,7 @@ int Main2(
|
||||
|
||||
so << endl << "Formats:" << endl;
|
||||
|
||||
const char * const kArcFlags = "KSNFMGOPBELHX";
|
||||
const char * const kArcFlags = "KSNFMGOPBELHXC";
|
||||
const unsigned kNumArcFlags = (unsigned)strlen(kArcFlags);
|
||||
|
||||
for (i = 0; i < codecs->Formats.Size(); i++)
|
||||
@@ -953,7 +962,7 @@ int Main2(
|
||||
#ifdef EXTERNAL_CODECS
|
||||
PrintLibIndex(so, arc.LibIndex);
|
||||
#else
|
||||
so << " ";
|
||||
so << " ";
|
||||
#endif
|
||||
|
||||
so << (char)(arc.UpdateEnabled ? 'C' : ' ');
|
||||
@@ -989,6 +998,8 @@ int Main2(
|
||||
if (arc.SignatureOffset != 0)
|
||||
so << "offset=" << arc.SignatureOffset << ' ';
|
||||
|
||||
// so << "numSignatures = " << arc.Signatures.Size() << " ";
|
||||
|
||||
FOR_VECTOR(si, arc.Signatures)
|
||||
{
|
||||
if (si != 0)
|
||||
@@ -1030,6 +1041,7 @@ int Main2(
|
||||
|
||||
so << (char)(cod.CreateEncoder ? 'E' : ' ');
|
||||
so << (char)(cod.CreateDecoder ? 'D' : ' ');
|
||||
so << (char)(cod.IsFilter ? 'F' : ' ');
|
||||
|
||||
so << ' ';
|
||||
PrintHexId(so, cod.Id);
|
||||
@@ -1053,6 +1065,12 @@ int Main2(
|
||||
|
||||
so << (char)(codecs->GetCodec_EncoderIsAssigned(j) ? 'E' : ' ');
|
||||
so << (char)(codecs->GetCodec_DecoderIsAssigned(j) ? 'D' : ' ');
|
||||
{
|
||||
bool isFilter_Assigned;
|
||||
const bool isFilter = codecs->GetCodec_IsFilter(j, isFilter_Assigned);
|
||||
so << (char)(isFilter ? 'F' : isFilter_Assigned ? ' ' : '*');
|
||||
}
|
||||
|
||||
|
||||
so << ' ';
|
||||
UInt64 id;
|
||||
@@ -1215,6 +1233,7 @@ int Main2(
|
||||
}
|
||||
|
||||
hresultMain = Extract(
|
||||
// EXTERNAL_CODECS_VARS_L
|
||||
codecs,
|
||||
types,
|
||||
excludedFormats,
|
||||
@@ -1329,7 +1348,12 @@ int Main2(
|
||||
|
||||
// options.ExtractNtOptions.StoreAltStreams = true, if -sns[-] is not definmed
|
||||
|
||||
CListOptions lo;
|
||||
lo.ExcludeDirItems = options.Censor.ExcludeDirItems;
|
||||
lo.ExcludeFileItems = options.Censor.ExcludeFileItems;
|
||||
|
||||
hresultMain = ListArchives(
|
||||
lo,
|
||||
codecs,
|
||||
types,
|
||||
excludedFormats,
|
||||
@@ -1429,6 +1453,7 @@ int Main2(
|
||||
|
||||
callback.Init(g_StdStream, g_ErrStream, percentsStream);
|
||||
callback.PrintHeaders = options.EnableHeaders;
|
||||
callback.PrintFields = options.ListFields;
|
||||
|
||||
AString errorInfoString;
|
||||
hresultMain = HashCalc(EXTERNAL_CODECS_VARS_L
|
||||
|
||||
Reference in New Issue
Block a user