summaryrefslogtreecommitdiffstats
path: root/src/preview/preview.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/preview/preview.rs')
-rw-r--r--src/preview/preview.rs10
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;