From 955c1bafb9c194ed4dcfe65a7256ec27b9470286 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Tue, 29 Sep 2020 21:18:19 +1000 Subject: [PATCH] fix * handling in unqualifed text as well https://forums.ankiweb.net/t/anki-2-1-desktop-searching-with-only-when-limited-to-a-field/3789/4 --- rslib/src/search/sqlwriter.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rslib/src/search/sqlwriter.rs b/rslib/src/search/sqlwriter.rs index c86cf46c6..611f3adce 100644 --- a/rslib/src/search/sqlwriter.rs +++ b/rslib/src/search/sqlwriter.rs @@ -167,7 +167,7 @@ impl SqlWriter<'_> { fn write_unqualified(&mut self, text: &str) { // implicitly wrap in % - let text = format!("%{}%", text); + let text = format!("%{}%", convert_glob_char(text)); self.args.push(text); write!( self.sql, @@ -595,15 +595,16 @@ mod test { // unqualified search assert_eq!( - s(ctx, "test"), + s(ctx, "te*st"), ( "((n.sfld like ?1 escape '\\' or n.flds like ?1 escape '\\'))".into(), - vec!["%test%".into()] + vec!["%te%st%".into()] ) ); assert_eq!(s(ctx, "te%st").1, vec!["%te%st%".to_string()]); // user should be able to escape sql wildcards assert_eq!(s(ctx, r#"te\%s\_t"#).1, vec!["%te\\%s\\_t%".to_string()]); + assert_eq!(s(ctx, r#"te\*s\_t"#).1, vec!["%te\\*s\\_t%".to_string()]); // qualified search assert_eq!(