diff options
| author | Wiimm <wiimm@wiimm.de> | 2024-03-26 10:35:38 +0100 |
|---|---|---|
| committer | Wiimm <wiimm@wiimm.de> | 2024-03-26 10:35:38 +0100 |
| commit | 246fdb38d7c2fb3054b8f8528e11dc8f17691750 (patch) | |
| tree | c106adbb6c640ab93c4b3f19864fde6046b1a759 /project/src/lib-lzma.c | |
| parent | b8aca433e32346c9293acc34a9e2242809ac5692 (diff) | |
SZS 2.42a
Diffstat (limited to 'project/src/lib-lzma.c')
| -rw-r--r-- | project/src/lib-lzma.c | 27 |
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 |
