From 295cb656bfeca09bfad66d0bda5342d2c127cfb2 Mon Sep 17 00:00:00 2001 From: Amos Wenger Date: Fri, 26 Jan 2024 17:16:53 +0100 Subject: [PATCH] Add Deflate64 method + test file (doesn't support it yet) --- crates/jean/src/main.rs | 4 +++- crates/rc-zip/src/format/archive.rs | 3 +++ crates/rc-zip/src/format/directory_header.rs | 1 - .../rc-zip/testdata/test-zips/found-me-bzip2.zip | Bin 0 -> 260 bytes .../testdata/test-zips/found-me-deflate64.zip | Bin 0 -> 697 bytes .../rc-zip/testdata/test-zips/found-me-lzma.zip | Bin 0 -> 279 bytes 6 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 crates/rc-zip/testdata/test-zips/found-me-bzip2.zip create mode 100644 crates/rc-zip/testdata/test-zips/found-me-deflate64.zip create mode 100644 crates/rc-zip/testdata/test-zips/found-me-lzma.zip diff --git a/crates/jean/src/main.rs b/crates/jean/src/main.rs index 750099e..569419f 100644 --- a/crates/jean/src/main.rs +++ b/crates/jean/src/main.rs @@ -78,7 +78,9 @@ fn do_main(cli: Cli) -> Result<(), Box> { println!("Comment:\n{}", comment); } let has_zip64 = archive.entries().any(|entry| entry.inner.is_zip64); - println!("{}", if has_zip64 { "Zip64" } else { "Zip32" }); + if has_zip64 { + println!("Found Zip64 end of central directory locator") + } let mut creator_versions = HashSet::::new(); let mut reader_versions = HashSet::::new(); diff --git a/crates/rc-zip/src/format/archive.rs b/crates/rc-zip/src/format/archive.rs index d131b31..2f75494 100644 --- a/crates/rc-zip/src/format/archive.rs +++ b/crates/rc-zip/src/format/archive.rs @@ -288,6 +288,9 @@ pub enum Method { /// [DEFLATE (RFC 1951)](https://www.ietf.org/rfc/rfc1951.txt) Deflate = 8, + /// [DEFLATE64]( + Deflate64 = 9, + /// [BZIP-2](https://github.com/dsnet/compress/blob/master/doc/bzip2-format.pdf) Bzip2 = 12, diff --git a/crates/rc-zip/src/format/directory_header.rs b/crates/rc-zip/src/format/directory_header.rs index 85d2da0..6d80a14 100644 --- a/crates/rc-zip/src/format/directory_header.rs +++ b/crates/rc-zip/src/format/directory_header.rs @@ -142,7 +142,6 @@ impl DirectoryHeader { needs_uncompressed_size: self.uncompressed_size == !0u32, needs_header_offset: self.header_offset == !0u32, }; - trace!("extra field settings: {:#?}", settings); let mut slice = &self.extra.0[..]; while !slice.is_empty() { diff --git a/crates/rc-zip/testdata/test-zips/found-me-bzip2.zip b/crates/rc-zip/testdata/test-zips/found-me-bzip2.zip new file mode 100644 index 0000000000000000000000000000000000000000..73707adcf8c0d6563fcda461008733c356a9bac9 GIT binary patch literal 260 zcmWIWW@gc2U|`^3xYTJCFEQ(HvUv-j*V{5(&tTIAo4$Nl!B1i>(;HT_K2(YCtO4GPO!f@8l939?r$C?pCQ%a=7gUsyL4u(^XX}BYfLn}EWpFCM To0Sd3VFbcBAngiFpbQKE4C{tl literal 0 HcmV?d00001 diff --git a/crates/rc-zip/testdata/test-zips/found-me-lzma.zip b/crates/rc-zip/testdata/test-zips/found-me-lzma.zip new file mode 100644 index 0000000000000000000000000000000000000000..8f6398cdc101e47bd1888d1d4d6825ffdd6ce8b7 GIT binary patch literal 279 zcmWIWW@fQxU}E57xYTJCFdu_>+`D$mT4d#qJzk@8n{Oi9sgtWUSDlF36Kl6Y`A5R5 z74K{J7H*g||Ns4;2N(jp8JX-Ea5+*1=u8k$0F$Ur=7NecGDtAg=WIPt6mW|XstisA Rc(byBIE+9T2c#E+WdO