From e489bf3c814824b5b650af1d8fc5f5b53065627b Mon Sep 17 00:00:00 2001 From: sxyazi Date: Thu, 28 Dec 2023 00:23:03 +0800 Subject: [PATCH] Fix escape --- yazi-core/src/tab/commands/escape.rs | 2 +- yazi-core/src/tab/commands/filter.rs | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/yazi-core/src/tab/commands/escape.rs b/yazi-core/src/tab/commands/escape.rs index 9e856672..fd552244 100644 --- a/yazi-core/src/tab/commands/escape.rs +++ b/yazi-core/src/tab/commands/escape.rs @@ -46,7 +46,7 @@ impl Tab { #[inline] fn escape_filter(&mut self) -> bool { - self.filter_do(super::filter::Opt { query: None, ..Default::default() }) + self.filter_do(super::filter::Opt { query: "", ..Default::default() }) } #[inline] diff --git a/yazi-core/src/tab/commands/filter.rs b/yazi-core/src/tab/commands/filter.rs index 223b7384..c471b40f 100644 --- a/yazi-core/src/tab/commands/filter.rs +++ b/yazi-core/src/tab/commands/filter.rs @@ -9,13 +9,13 @@ use crate::{folder::{Filter, FilterCase}, input::Input, manager::Manager, tab::T #[derive(Default)] pub struct Opt<'a> { - pub query: Option<&'a str>, + pub query: &'a str, pub case: FilterCase, } impl<'a> From<&'a Exec> for Opt<'a> { fn from(e: &'a Exec) -> Self { - Self { query: e.args.first().map(|s| s.as_str()), case: e.into() } + Self { query: e.args.first().map(|s| s.as_str()).unwrap_or_default(), case: e.into() } } } @@ -43,13 +43,10 @@ impl Tab { pub fn filter_do<'a>(&mut self, opt: impl Into>) -> bool { let opt = opt.into() as Opt; - let Some(query) = opt.query else { - return false; - }; - let filter = if query.is_empty() { + let filter = if opt.query.is_empty() { None - } else if let Ok(f) = Filter::new(query, opt.case) { + } else if let Ok(f) = Filter::new(opt.query, opt.case) { Some(f) } else { return false;