summaryrefslogtreecommitdiffstats
path: root/src/hex
diff options
context:
space:
mode:
authorCanop <cano.petrole@gmail.com>2020-08-06 21:08:51 +0200
committerCanop <cano.petrole@gmail.com>2020-08-06 21:08:51 +0200
commit21a6a182e9d7c6db2a67cbb07f952907f181010d (patch)
treeff7bcdd8a9a6d25cb4de63aa79b9283a63ec487b /src/hex
parentb5ef92d0f52c983e7f25a82a8cdbed12b714baa0 (diff)
:preview_image, :preview_binary, and :preview_text
Diffstat (limited to 'src/hex')
-rw-r--r--src/hex/hex_view.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/hex/hex_view.rs b/src/hex/hex_view.rs
index d2decbf..19a6e88 100644
--- a/src/hex/hex_view.rs
+++ b/src/hex/hex_view.rs
@@ -70,15 +70,17 @@ impl HexView {
start_line_idx: usize,
line_count: usize,
) -> io::Result<Vec<HexLine>> {
- // I'm not sure a memmap is the best solution here but at least it's easy
let file = File::open(&self.path)?;
+ let mut lines = Vec::new();
+ if self.len == 0 {
+ return Ok(lines);
+ }
let mmap = unsafe { Mmap::map(&file)? };
let new_len = mmap.len();
if new_len != self.len {
warn!("previewed file len changed from {} to {}", self.len, new_len);
self.len = new_len;
}
- let mut lines = Vec::new();
let mut start_idx = 16 * start_line_idx;
while start_idx < self.len {
let line_len = 16.min(self.len - start_idx);