From 828fb210ce1332a10eda5cf94426fe66e9b27b70 Mon Sep 17 00:00:00 2001 From: Sharif Haason Date: Sat, 5 Nov 2022 12:08:13 -0400 Subject: [PATCH] Use repeat byte when discovering squeeze --- src/lib.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index c271ad4..e75531b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -529,11 +529,15 @@ impl<'a, Writer: Write> Printer<'a, Writer> { self.squeezer = Squeezer::Delete; } + let repeat_byte = (self.line_buf[0] as usize) * (usize::MAX / 255); if !matches!(self.squeezer, Squeezer::Disabled | Squeezer::Delete) - && self.line_buf.windows(2).all(|w| w[0] == w[1]) + && self + .line_buf + .chunks_exact(std::mem::size_of::()) + .all(|w| usize::from_ne_bytes(w.try_into().unwrap()) == repeat_byte) { self.squeezer = Squeezer::Print; - self.squeeze_byte = (self.line_buf[0] as usize) * (usize::MAX / 255); + self.squeeze_byte = repeat_byte; }; };