From 08e64d246dd0d6092c295ea50cb740b630acd24b Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 21 Mar 2020 12:44:56 +1000 Subject: [PATCH] don't require wildcard for unicode case folding in search --- rslib/src/text.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rslib/src/text.rs b/rslib/src/text.rs index f7a770cc7..0a799c5df 100644 --- a/rslib/src/text.rs +++ b/rslib/src/text.rs @@ -5,6 +5,7 @@ use lazy_static::lazy_static; use regex::{Captures, Regex}; use std::borrow::Cow; use std::ptr; +use unicase::eq as uni_eq; use unicode_normalization::{is_nfc, UnicodeNormalization}; #[derive(Debug, PartialEq)] @@ -219,14 +220,14 @@ pub(crate) fn normalize_to_nfc(s: &str) -> Cow { } } -/// True if search is equal to text, folding ascii case. +/// True if search is equal to text, folding case. /// Supports '*' to match 0 or more characters. pub(crate) fn matches_wildcard(text: &str, search: &str) -> bool { if search.contains('*') { let search = format!("^(?i){}$", regex::escape(search).replace(r"\*", ".*")); Regex::new(&search).unwrap().is_match(text) } else { - text.eq_ignore_ascii_case(search) + uni_eq(text, search) } }