aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-01-20 14:43:27 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-01-20 14:43:27 +0100
commitd9f0325deabf76e73a333007d48a4a18b6498002 (patch)
treec72bd5ebbaca6c21b9a48b64a7781c224cdc8113
parent4b34e0b3853dd880cd13f7d7101726a79b60379c (diff)
fix hanging if there are no search results
-rw-r--r--src/main.rs23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/main.rs b/src/main.rs
index 3e1f172..9cdaefe 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -552,18 +552,17 @@ impl Instance {
KeyCode::Delete => self.search.clear(),
KeyCode::Enter => {
if let Some(selected) = self.list_state.selected() {
- if let Some(fmatch) = self
- .files
- .iter()
- .enumerate()
- .cycle()
- .skip(selected + 1)
- .find(|(_, file)| {
- file.to_str()
- .unwrap()
- .to_lowercase()
- .contains(&self.search.to_lowercase())
- })
+ if let Some(fmatch) =
+ std::iter::repeat(self.files.iter().enumerate())
+ .take(2)
+ .flatten()
+ .skip(selected + 1)
+ .find(|(_, file)| {
+ file.to_str()
+ .unwrap()
+ .to_lowercase()
+ .contains(&self.search.to_lowercase())
+ })
{
self.list_state.select(Some(fmatch.0));
}