diff options
author | rabite <rabite@posteo.de> | 2019-03-20 15:49:41 +0100 |
---|---|---|
committer | rabite <rabite@posteo.de> | 2019-03-20 17:44:41 +0100 |
commit | 118aeac6e0e4a10b2728fd13920a2c6c3808a6ff (patch) | |
tree | 6c663984f0ea2c7a3c29b6f5a1ec5bdbf01bf5b3 /src/file_browser.rs | |
parent | d65ee9253d81d9d497a6d7f35566f3bcb7e0fcea (diff) |
faster read permission checking
Diffstat (limited to 'src/file_browser.rs')
-rw-r--r-- | src/file_browser.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/file_browser.rs b/src/file_browser.rs index ce4a843..bc01f37 100644 --- a/src/file_browser.rs +++ b/src/file_browser.rs @@ -19,6 +19,7 @@ use crate::fail::{HResult, HError, ErrorLog}; use crate::widget::{Events, WidgetCore}; use crate::proclist::ProcView; use crate::bookmarks::BMPopup; +use crate::term; use crate::term::ScreenExt; use crate::foldview::LogView; use crate::coordinates::Coordinates; @@ -271,9 +272,16 @@ impl FileBrowser { } pub fn main_widget_goto(&mut self, dir: &File) -> HResult<()> { - if dir.read_dir().is_err() { - self.show_status("Can't enter! Permission denied!").log(); - return Ok(()); + match dir.is_readable() { + Ok(true) => {}, + Ok(false) => { + let status = + format!("{}Stop right there, cowboy! Check your permisions!", + term::color_red()); + self.show_status(&status).log(); + return Ok(()); + } + err @ Err(_) => err.log() } let dir = dir.clone(); |