commit d74e882f5b7d2191be54e3eca5e95e06d8693b90 from: witcher date: Sun Jan 8 19:29:15 2023 UTC Fix `rec` regex not escaping literal `+` commit - 157d7b0f7b1b8381c16b9761abcec10f6293ee6b commit + d74e882f5b7d2191be54e3eca5e95e06d8693b90 blob - fa1c40275e9928bd2409742be8755c5d93652204 blob + e004bcc68b32e79909d9e4cd509f7c317fa980bc --- README.md +++ README.md @@ -8,7 +8,7 @@ The following tag extensions are supported. The format a regular expression: - `due:\d{4}-\d{2}-\d{2}`: Specify a due date in YYYY-MM-DD format -- `rec:+?\d+[dwmy]`: Allow recurring tasks. `+` marks strict, `d`, `w`, `m`, and +- `rec:\+?\d+[dwmy]`: Allow recurring tasks. `+` marks strict, `d`, `w`, `m`, and `y` resemble day, week, month, and year. More tag extensions are planned. blob - e002717c0474fd7c83aa1dfd3f960e2057da5db4 blob + f56b69375d1a7f1da89b96ad36c235df0a6dff6f --- src/types.rs +++ src/types.rs @@ -439,7 +439,7 @@ impl<'a> Task<'a> { /// If the [`Recurring`] rule is already set, it modifies it in place, setting the new rule. #[must_use] pub fn set_rec(&'a self, rec: Recurring) -> Task<'a> { - let re = crate::regex!(r"(rec:)+?\d+[dwmy]"); + let re = crate::regex!(r"(rec:)\+?\d+[dwmy]"); if re.is_match(self.description.as_ref()) { let description = re.replace(self.description.as_ref(), format!("${{1}}{rec}"));