From a99ee0edbf3877c7013b750c73addbe83b26c4b8 Mon Sep 17 00:00:00 2001 From: n4n5 Date: Thu, 5 Feb 2026 18:52:18 -0700 Subject: [PATCH 1/3] fix: calculate header size for offeset column --- src/lib.rs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index be196698..2f656730 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -445,16 +445,28 @@ impl<'a, Writer: Write> Printer<'a, Writer> { 1 + group_sz * group_per_panel } + fn get_byte_index(&self) -> ([u8; 8], usize) { + let byte_index: [u8; 8] = (self.idx + self.display_offset).to_be_bytes(); + let mut i = 0; + while i < 4 && byte_index[i] == 0x00 { + i += 1; + } + (byte_index, i) + } + fn write_border(&mut self, border_elements: BorderElements) -> io::Result<()> { let h = border_elements.horizontal_line; let c = border_elements.column_separator; let l = border_elements.left_corner; let r = border_elements.right_corner; + let (_, len) = self.get_byte_index(); + let len = (8 - len) * 2; + let header_offset = h.to_string().repeat(len); let h8 = h.to_string().repeat(8); let h_repeat = h.to_string().repeat(self.panel_sz()); if self.show_position_panel { - write!(self.writer, "{l}{h8}{c}")?; + write!(self.writer, "{l}{header_offset}{c}")?; } else { write!(self.writer, "{l}")?; } @@ -514,11 +526,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> { self.writer.write_all(b" ")?; } Squeezer::Ignore | Squeezer::Disabled | Squeezer::Delete => { - let byte_index: [u8; 8] = (self.idx + self.display_offset).to_be_bytes(); - let mut i = 0; - while byte_index[i] == 0x0 && i < 4 { - i += 1; - } + let (byte_index, i) = self.get_byte_index(); for &byte in byte_index.iter().skip(i) { self.writer .write_all(self.byte_hex_panel_g[byte as usize].as_bytes())?; From da63ecc146ce9c48bf840687a671edc67e97c43f Mon Sep 17 00:00:00 2001 From: n4n5 Date: Thu, 5 Feb 2026 19:23:07 -0700 Subject: [PATCH 2/3] use size_of() --- src/lib.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 2f656730..d65d6198 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -445,8 +445,8 @@ impl<'a, Writer: Write> Printer<'a, Writer> { 1 + group_sz * group_per_panel } - fn get_byte_index(&self) -> ([u8; 8], usize) { - let byte_index: [u8; 8] = (self.idx + self.display_offset).to_be_bytes(); + fn get_byte_index(&self) -> ([u8; size_of::()], usize) { + let byte_index: [u8; size_of::()] = (self.idx + self.display_offset).to_be_bytes(); let mut i = 0; while i < 4 && byte_index[i] == 0x00 { i += 1; @@ -460,8 +460,8 @@ impl<'a, Writer: Write> Printer<'a, Writer> { let l = border_elements.left_corner; let r = border_elements.right_corner; let (_, len) = self.get_byte_index(); - let len = (8 - len) * 2; - let header_offset = h.to_string().repeat(len); + let hex_len = (size_of::() - len) * 2; + let header_offset = h.to_string().repeat(hex_len); let h8 = h.to_string().repeat(8); let h_repeat = h.to_string().repeat(self.panel_sz()); From 5c6600db4fc4c9646a788e9e92994b28fd4a0580 Mon Sep 17 00:00:00 2001 From: n4n5 Date: Thu, 5 Feb 2026 19:23:49 -0700 Subject: [PATCH 3/3] fix: rename --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index d65d6198..24b85440 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -461,12 +461,12 @@ impl<'a, Writer: Write> Printer<'a, Writer> { let r = border_elements.right_corner; let (_, len) = self.get_byte_index(); let hex_len = (size_of::() - len) * 2; - let header_offset = h.to_string().repeat(hex_len); + let header_len = h.to_string().repeat(hex_len); let h8 = h.to_string().repeat(8); let h_repeat = h.to_string().repeat(self.panel_sz()); if self.show_position_panel { - write!(self.writer, "{l}{header_offset}{c}")?; + write!(self.writer, "{l}{header_len}{c}")?; } else { write!(self.writer, "{l}")?; }