diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2025-01-01 19:00:34 +0100 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2025-01-01 19:00:34 +0100 |
commit | 59758226f37bd8f10afcf135b807bdea15a5d5ff (patch) | |
tree | 0e948badea733b7e5b7aa31d1c46ce9e5b747d09 /src | |
parent | 09280123b1f225b79bd5ff23268c7b1229fd779c (diff) | |
download | icaltool-59758226f37bd8f10afcf135b807bdea15a5d5ff.tar.gz icaltool-59758226f37bd8f10afcf135b807bdea15a5d5ff.tar.bz2 icaltool-59758226f37bd8f10afcf135b807bdea15a5d5ff.zip |
Match against all properties if only regex given.
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index f9c9685..4aeca51 100644 --- a/src/main.rs +++ b/src/main.rs @@ -71,7 +71,12 @@ fn match_event(event: &ical::parser::ical::component::IcalEvent, pattern: &str) } else { let parts: Vec<&str> = pattern.split(':').collect(); - let (key, pat) = (parts[0].to_uppercase(), parts[1]); + + let (key, pat) = if parts.len() == 2 { + (parts[0].to_uppercase(), parts[1]) + } else { + (String::from("*"), parts[0]) + }; let re = RegexBuilder::new(&pat) .case_insensitive(true) @@ -79,7 +84,7 @@ fn match_event(event: &ical::parser::ical::component::IcalEvent, pattern: &str) .unwrap(); event.properties.iter() - .filter(|ref p| p.name == key && re.is_match(&p.value.clone().unwrap())) + .filter(|ref p| (&key == "*" || p.name == key) && re.is_match(&p.value.clone().unwrap())) .count() > 0 } } |