aboutsummaryrefslogtreecommitdiff
path: root/project/src/lib-lzma.c
diff options
context:
space:
mode:
authorWiimm <wiimm@wiimm.de>2024-03-26 10:35:38 +0100
committerWiimm <wiimm@wiimm.de>2024-03-26 10:35:38 +0100
commit246fdb38d7c2fb3054b8f8528e11dc8f17691750 (patch)
treec106adbb6c640ab93c4b3f19864fde6046b1a759 /project/src/lib-lzma.c
parentb8aca433e32346c9293acc34a9e2242809ac5692 (diff)
SZS 2.42a
Diffstat (limited to '')
-rw-r--r--project/src/lib-lzma.c27
1 files changed, 27 insertions, 0 deletions
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