diff options
-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 } } |