diff options
author | Canop <cano.petrole@gmail.com> | 2020-11-05 17:09:18 +0100 |
---|---|---|
committer | Canop <cano.petrole@gmail.com> | 2020-11-05 17:09:18 +0100 |
commit | e47ce676b0fe285f782d3a5282b8658b9b3568e5 (patch) | |
tree | 01a4be68305fd1ab85844fe1c5b8d105fb035a3d /src/preview/preview.rs | |
parent | cf6eab4a8ad7f1cd8881a9f4203bb8aaddb20e28 (diff) |
preview now supports opening zero length "files"v1.0.5
(for exemple the ones of /proc)
Diffstat (limited to 'src/preview/preview.rs')
-rw-r--r-- | src/preview/preview.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/preview/preview.rs b/src/preview/preview.rs index ecf6850..19c444e 100644 --- a/src/preview/preview.rs +++ b/src/preview/preview.rs @@ -1,6 +1,5 @@ - use { - super::PreviewMode, + super::*, crate::{ app::{AppContext, LineNumber}, command::{ScrollCommand}, @@ -25,6 +24,7 @@ pub enum Preview { Image(ImageView), Syntactic(SyntacticView), Hex(HexView), + ZeroLen(ZeroLenFileView), IOError(io::Error), } @@ -87,6 +87,10 @@ impl Preview { ) -> Self { match SyntacticView::new(path, InputPattern::none(), &mut Dam::unlimited(), con) { Ok(Some(sv)) => Self::Syntactic(sv), + Err(ProgramError::ZeroLenFile) => { + debug!("zero len file - check if system file"); + Self::ZeroLen(ZeroLenFileView::new(path.to_path_buf())) + } // not previewable as UTF8 text // we'll try reading it as binary _ => Self::hex(path), @@ -136,6 +140,7 @@ impl Preview { match self { Self::Image(_) => Some(PreviewMode::Image), Self::Syntactic(_) => Some(PreviewMode::Text), + Self::ZeroLen(_) => Some(PreviewMode::Text), Self::Hex(_) => Some(PreviewMode::Hex), Self::IOError(_) => None, } @@ -226,6 +231,7 @@ impl Preview { match self { Self::Image(iv) => iv.display(w, screen, panel_skin, area, con), Self::Syntactic(sv) => sv.display(w, screen, panel_skin, area, con), + Self::ZeroLen(zlv) => zlv.display(w, screen, panel_skin, area), Self::Hex(hv) => hv.display(w, screen, panel_skin, area), Self::IOError(err) => { let mut y = area.top; |