diff --git a/CPP/7zip/Archive/7z/7zHandler.cpp b/CPP/7zip/Archive/7z/7zHandler.cpp index be7e46a0..d306b18b 100644 --- a/CPP/7zip/Archive/7z/7zHandler.cpp +++ b/CPP/7zip/Archive/7z/7zHandler.cpp @@ -450,18 +450,66 @@ HRESULT CHandler::SetMethodToProp(CNum folderIndex, PROPVARIANT *prop) const GetStringForSizeValue(dest, GetUi32(props + 1)); } } - #if 1 - else if (id == k_ZSTD) + else if (id == k_LZHAM) { - name = "ZSTD"; + name = "LZHAM"; + if (propsSize == 5) + { + char *dest = s; + *dest++ = 'v'; + ConvertUInt32ToString(props[0], dest); + dest += MyStringLen(dest); + *dest++ = ','; + *dest++ = 'd'; + ConvertUInt32ToString(props[1], dest); + dest += MyStringLen(dest); + *dest++ = ','; + *dest++ = 'l'; + ConvertUInt32ToString(props[2], dest); + dest += MyStringLen(dest); + } + } + else if (id == k_LZ4) + { + name = "LZ4"; + if (propsSize == 5) + { + char *dest = s; + *dest++ = 'v'; + ConvertUInt32ToString(props[0], dest); + dest += MyStringLen(dest); + *dest++ = '.'; + ConvertUInt32ToString(props[1], dest); + dest += MyStringLen(dest); + *dest++ = ','; + *dest++ = 'l'; + ConvertUInt32ToString(props[2], dest); + dest += MyStringLen(dest); + } + } + else if (id == k_LZ5) + { + name = "LZ5"; + if (propsSize == 5) + { + char *dest = s; + *dest++ = 'v'; + ConvertUInt32ToString(props[0], dest); + dest += MyStringLen(dest); + *dest++ = '.'; + ConvertUInt32ToString(props[1], dest); + dest += MyStringLen(dest); + *dest++ = ','; + *dest++ = 'l'; + ConvertUInt32ToString(props[2], dest); + dest += MyStringLen(dest); + } + } + else if (id == k_ZSTD) + { + name = "ZSTD"; if (propsSize == 5) { - /** - * _ver_major - * _ver_minor - * _level - * _empty[2] - */ char *dest = s; *dest++ = 'v'; ConvertUInt32ToString(props[0], dest); @@ -475,7 +523,6 @@ HRESULT CHandler::SetMethodToProp(CNum folderIndex, PROPVARIANT *prop) const dest += MyStringLen(dest); } } - #endif else if (id == k_Delta) { name = "Delta"; diff --git a/CPP/7zip/Archive/7z/7zHeader.h b/CPP/7zip/Archive/7z/7zHeader.h index fab413ba..545890f5 100644 --- a/CPP/7zip/Archive/7z/7zHeader.h +++ b/CPP/7zip/Archive/7z/7zHeader.h @@ -119,7 +119,10 @@ const UInt32 k_ARM = 0x3030501; const UInt32 k_ARMT = 0x3030701; const UInt32 k_SPARC = 0x3030805; +const UInt32 k_LZHAM = 0x4F71001; const UInt32 k_ZSTD = 0x4F71101; +const UInt32 k_LZ4 = 0x4F71104; +const UInt32 k_LZ5 = 0x4F71105; const UInt32 k_AES = 0x6F10701;