From b332c4fb116302117b584cd0cbf440266e00e17e Mon Sep 17 00:00:00 2001 From: rabite Date: Sun, 10 Mar 2019 16:41:57 +0100 Subject: crash fix --- src/file_browser.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/file_browser.rs') diff --git a/src/file_browser.rs b/src/file_browser.rs index bb4a1a7..2c20c21 100644 --- a/src/file_browser.rs +++ b/src/file_browser.rs @@ -243,6 +243,11 @@ impl FileBrowser { let cached_files = self.get_cached_files(&dir).ok(); let main_widget = self.main_widget_mut()?; + if dir.read_dir().is_err() { + self.show_status("Can't enter! Permission denied!").log(); + return Ok(()); + } + main_widget.change_to(Box::new(move |stale, core| { let path = dir.path(); let cached_files = cached_files.clone(); @@ -383,17 +388,17 @@ impl FileBrowser { } } if !watched_dirs.contains(&cwd.path) { - self.watcher.watch(&cwd.path, RecursiveMode::NonRecursive).unwrap(); + self.watcher.watch(&cwd.path, RecursiveMode::NonRecursive)?; self.watches.push(cwd.path); } if !watched_dirs.contains(&left_dir.path) { - self.watcher.watch(&left_dir.path, RecursiveMode::NonRecursive).unwrap(); + self.watcher.watch(&left_dir.path, RecursiveMode::NonRecursive)?; self.watches.push(left_dir.path); } if let Some(preview_dir) = preview_dir { if !watched_dirs.contains(&preview_dir) && preview_dir.is_dir() { - self.watcher.watch(&preview_dir, RecursiveMode::NonRecursive).unwrap(); - self.watches.push(preview_dir); + self.watcher.watch(&preview_dir, RecursiveMode::NonRecursive)?; + self.watches.push(preview_dir); } } Ok(()) -- cgit v1.2.3