From 714d514451a0005b505acfb1611a23da31e97837 Mon Sep 17 00:00:00 2001 From: Tino Reichardt Date: Sat, 17 Nov 2018 11:00:41 +0100 Subject: [PATCH] Make zstd:long behave like in zstd cli - adjust version information to current date - maybe I release this as the next version --- C/7zVersion.h | 2 +- C/7zVersionTr.h | 2 +- CPP/7zip/Compress/ZstdEncoder.cpp | 22 +++++++++++++--------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/C/7zVersion.h b/C/7zVersion.h index d4db5505..d90113c4 100644 --- a/C/7zVersion.h +++ b/C/7zVersion.h @@ -10,7 +10,7 @@ #define MY_VERSION_CPU MY_VERSION #endif -#define MY_DATE "2018-10-28" +#define MY_DATE "2018-11-17" #undef MY_COPYRIGHT #undef MY_VERSION_COPYRIGHT_DATE #define MY_AUTHOR_NAME "Igor Pavlov, Tino Reichardt" diff --git a/C/7zVersionTr.h b/C/7zVersionTr.h index a7a83afa..f9761998 100644 --- a/C/7zVersionTr.h +++ b/C/7zVersionTr.h @@ -3,7 +3,7 @@ #define MY_VER_BUILD 0 #define MY_VERSION_NUMBERS "1.3.7 R3" #define MY_VERSION MY_VERSION_NUMBERS -#define MY_DATE "2018-10-28" +#define MY_DATE "2018-11-17" #undef MY_COPYRIGHT #undef MY_VERSION_COPYRIGHT_DATE #define MY_AUTHOR_NAME "Tino Reichardt" diff --git a/CPP/7zip/Compress/ZstdEncoder.cpp b/CPP/7zip/Compress/ZstdEncoder.cpp index 881d5bc3..19cebab7 100644 --- a/CPP/7zip/Compress/ZstdEncoder.cpp +++ b/CPP/7zip/Compress/ZstdEncoder.cpp @@ -23,7 +23,7 @@ CEncoder::CEncoder(): _processedIn(0), _processedOut(0), _numThreads(NWindows::NSystem::GetNumberOfProcessors()), - _Long(1), + _Long(-1), _Strategy(-1), _WindowLog(-1), _HashLog(-1), @@ -139,14 +139,18 @@ STDMETHODIMP CEncoder::SetCoderProperties(const PROPID * propIDs, const PROPVARI } case NCoderPropID::kLong: { - /* not exact like --long in zstd cli program */ - if (v == 0) _Long = 0; // disable - else if (v == 1) _Long = 1; // just enable - else if (v >= 10 && v <= ZSTD_WINDOWLOG_MAX) { - // enable and resize WindowLog - _Long = 1; - _WindowLog = v; - } else return E_INVALIDARG; + /* exact like --long in zstd cli program */ + if (v == 0) { + // m0=zstd:long:tlen=x + _Long = 1; + _WindowLog = 27; + } else if (v < 10) { + _Long = 1; + _WindowLog = 10; + } else if (v > ZSTD_WINDOWLOG_MAX) { + _Long = 1; + _WindowLog = ZSTD_WINDOWLOG_MAX; + } break; } case NCoderPropID::kLdmHashLog: