From 246fdb38d7c2fb3054b8f8528e11dc8f17691750 Mon Sep 17 00:00:00 2001 From: Wiimm Date: Tue, 26 Mar 2024 10:35:38 +0100 Subject: SZS 2.42a --- project/src/lib-lzma.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'project/src/lib-lzma.c') diff --git a/project/src/lib-lzma.c b/project/src/lib-lzma.c index 887d8a0..cb007b2 100644 --- a/project/src/lib-lzma.c +++ b/project/src/lib-lzma.c @@ -92,6 +92,33 @@ int IsLZ /////////////////////////////////////////////////////////////////////////////// +int IsYLZ +( + // returns + // -1: not LZ data + // 0: seems to be YLZ; compression level is unknown + // 1..9: seems to be YLZ; compression level is returned + + cvp data, // NULL or data to investigate + uint size // size of 'data' +) +{ + const uint delta = sizeof(ylz_header_t); + const u8 *d = data; + if ( !d || size < delta+1 || memcmp(d,YLZ_MAGIC,4) ) + { + return -1; + } + + const u32 magic = be24(d+delta); + if ( magic != LZMA_MAGIC_NUM3 ) + return -1; + + return GetComprLevelLZMA(le32(d+delta+1)); +} + +/////////////////////////////////////////////////////////////////////////////// + int IsLZMA ( // returns -- cgit v1.3.1