From 95c90ef66e452f74dd9299337589cec6a34df35b Mon Sep 17 00:00:00 2001 From: Anna Date: Tue, 27 Sep 2022 05:17:47 -0400 Subject: [PATCH] fix: handle a textools bug explicitly --- src/error.rs | 2 ++ src/ttmp_extractor.rs | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/error.rs b/src/error.rs index efdc92e..439d239 100644 --- a/src/error.rs +++ b/src/error.rs @@ -16,4 +16,6 @@ pub enum Error { SqPackError(#[from] sqpack::binrw::Error), #[error("error writing to output")] BinRwWrite(sqpack::binrw::Error), + #[error("a bug in textools corrupted this mod pack")] + TexToolsBug, } diff --git a/src/ttmp_extractor.rs b/src/ttmp_extractor.rs index 79e6757..5d526fb 100644 --- a/src/ttmp_extractor.rs +++ b/src/ttmp_extractor.rs @@ -347,6 +347,9 @@ impl TtmpExtractor { let mut reader = (&mut reader).take(header.uncompressed_size as u64); let read = std::io::copy(&mut reader, &mut writer).map_err(Error::Io)?; (read, read) + } else if header.compressed_size == 0 { + // https://github.com/TexTools/xivModdingFramework/issues/51 + return Err(Error::TexToolsBug); } else { // compressed let reader = (&mut reader).take(header.compressed_size as u64);