From 10e3535999abfcc684170d05105b7232ff6f7e4b Mon Sep 17 00:00:00 2001 From: Matthew Ziter Date: Tue, 5 Feb 2019 18:53:52 -0500 Subject: [PATCH] Fixes #47 with header printing before data in some scenarios --- src/main.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 7bf1d6b..bbb0f8a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -88,6 +88,7 @@ struct Printer<'a> { buffer_line: Vec, stdout: StdoutLock<'a>, show_color: bool, + header_was_printed: bool, byte_hex_table: Vec, byte_char_table: Vec, } @@ -100,6 +101,7 @@ impl<'a> Printer<'a> { buffer_line: vec![], stdout, show_color, + header_was_printed: false, byte_hex_table: (0u8..=u8::max_value()) .map(|i| { let byte_hex = format!("{:02x} ", i); @@ -160,7 +162,12 @@ impl<'a> Printer<'a> { 8 => { let _ = write!(&mut self.buffer_line, "┊ "); } - 0 => self.print_textline()?, + 0 => { + if !self.header_was_printed { + self.header(); + } + self.print_textline()?; + } _ => {} } @@ -286,7 +293,6 @@ fn run() -> Result<(), Box<::std::error::Error>> { let stdout = io::stdout(); let mut printer = Printer::new(stdout.lock(), show_color); - printer.header(); let mut buffer = [0; BUFFER_SIZE]; 'mainloop: loop {