summaryrefslogtreecommitdiffstats
path: root/src/file_browser.rs
diff options
context:
space:
mode:
authorrabite <rabite@posteo.de>2019-03-20 15:49:41 +0100
committerrabite <rabite@posteo.de>2019-03-20 17:44:41 +0100
commit118aeac6e0e4a10b2728fd13920a2c6c3808a6ff (patch)
tree6c663984f0ea2c7a3c29b6f5a1ec5bdbf01bf5b3 /src/file_browser.rs
parentd65ee9253d81d9d497a6d7f35566f3bcb7e0fcea (diff)
faster read permission checking
Diffstat (limited to 'src/file_browser.rs')
-rw-r--r--src/file_browser.rs14
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();