summaryrefslogtreecommitdiffstats
path: root/src/file_browser.rs
diff options
context:
space:
mode:
authorrabite <rabite@posteo.de>2019-04-07 14:00:50 +0200
committerrabite <rabite@posteo.de>2019-04-07 14:00:50 +0200
commit63fe77c997fe8a5807fde1836a85d72b7694021d (patch)
treebb9a0529c8cc697609f64e45f00dea2e58cb5c1e /src/file_browser.rs
parent7f70fa29046e09be414b52ba572eb9675979cd46 (diff)
parent62474ff6bcbd78745a66a753cb5d3578ba52bc05 (diff)
Merge branch 'master' into evilv1.0-evil
Diffstat (limited to 'src/file_browser.rs')
-rw-r--r--src/file_browser.rs24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/file_browser.rs b/src/file_browser.rs
index 9458da7..dc24fa8 100644
--- a/src/file_browser.rs
+++ b/src/file_browser.rs
@@ -148,9 +148,7 @@ impl Tabbable for TabView<FileBrowser> {
.widgets
.iter()
.map(|w| {
- w.selected_files()
- .map_err(|_| Vec::<Files>::new())
- .unwrap()
+ w.selected_files().unwrap_or(vec![])
}).collect();
self.widgets[self.active].exec_cmd(tab_dirs, selected_files)
@@ -838,21 +836,29 @@ impl FileBrowser {
tab_files: Vec<Vec<File>>) -> HResult<()> {
let cwd = self.cwd()?.clone();
- let selected_file = self.selected_file()?;
- let selected_files = self.selected_files()?;
+ let selected_file = self.selected_file().ok();
+ let selected_files = self.selected_files().ok();
let cmd = self.minibuffer("exec")?.trim_start().to_string() + " ";
- let cwd_files = if selected_files.len() == 0 {
- vec![selected_file]
- } else { selected_files };
+ let cwd_files = selected_files.map(|selected_files| {
+ if selected_files.len() == 0 {
+ if selected_file.is_some() {
+ vec![selected_file.unwrap()]
+ } else {
+ selected_files
+ }
+ } else {
+ selected_files
+ }
+ });
let cmd = crate::proclist::Cmd {
cmd: OsString::from(cmd),
short_cmd: None,
args: None,
cwd: cwd,
- cwd_files: Some(cwd_files),
+ cwd_files: cwd_files,
tab_files: Some(tab_files),
tab_paths: Some(tab_dirs)
};