summaryrefslogtreecommitdiffstats
path: root/src/history.rs
diff options
context:
space:
mode:
authorNoah Too <krivahtoo@gmail.com>2022-10-17 19:39:53 +0300
committerGitHub <noreply@github.com>2022-10-17 12:39:53 -0400
commitbe452d4c9abf7891111138000fe7683f169d69a5 (patch)
tree75d9967795d601f7dc7eacd5e3dede155bd36d1f /src/history.rs
parent02c7e941566a2d828e77dd33a6dda74c8a0c42ef (diff)
add `filter` command (#205)
* add `filter` command * cargo fmt
Diffstat (limited to 'src/history.rs')
-rw-r--r--src/history.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/history.rs b/src/history.rs
index 162c3bd..076f59c 100644
--- a/src/history.rs
+++ b/src/history.rs
@@ -155,7 +155,7 @@ pub fn create_dirlist_with_history(
tab_options: &TabDisplayOption,
) -> io::Result<JoshutoDirList> {
let filter_func = options.filter_func();
- let mut contents = read_directory(path, filter_func, options)?;
+ let mut contents = read_directory(path, filter_func, options, tab_options)?;
// re-use directory size information on reload
for entry in contents.iter_mut() {
@@ -246,12 +246,13 @@ pub fn read_directory<F>(
path: &Path,
filter_func: F,
options: &DisplayOption,
+ tab_options: &TabDisplayOption,
) -> io::Result<Vec<JoshutoDirEntry>>
where
- F: Fn(&Result<fs::DirEntry, io::Error>) -> bool,
+ F: Fn(&Result<fs::DirEntry, io::Error>, &DisplayOption, &TabDisplayOption) -> bool,
{
let results: Vec<JoshutoDirEntry> = fs::read_dir(path)?
- .filter(filter_func)
+ .filter(|res| filter_func(res, options, tab_options))
.filter_map(|res| JoshutoDirEntry::from(&res.ok()?, options).ok())
.collect();