From 94401dcf008f2f83a92b3416aededc70ce5d3486 Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Mon, 2 Oct 2023 19:51:29 -0400 Subject: [PATCH] Allow REST despite no TIME. --- src/parser/timestamp.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/parser/timestamp.rs b/src/parser/timestamp.rs index e34598b..03dd759 100644 --- a/src/parser/timestamp.rs +++ b/src/parser/timestamp.rs @@ -129,6 +129,13 @@ fn active_timestamp<'b, 'g, 'r, 's>( space1, parser_with_context!(time(true))(&time_context), )))(remaining)?; + let remaining = if time.is_none() { + // Upstream org-mode accepts malformed timestamps. For example '<2016-02-14 Sun ++y>'. + let (remain, _) = opt(parser_with_context!(time_rest)(&time_context))(remaining)?; + remain + } else { + remaining + }; let (remaining, repeater) = opt(tuple((space1, parser_with_context!(repeater)(context))))(remaining)?; let (remaining, warning_delay) = opt(tuple(( @@ -173,6 +180,13 @@ fn inactive_timestamp<'b, 'g, 'r, 's>( space1, parser_with_context!(time(true))(&time_context), )))(remaining)?; + let remaining = if time.is_none() { + // Upstream org-mode accepts malformed timestamps. For example '<2016-02-14 Sun ++y>'. + let (remain, _) = opt(parser_with_context!(time_rest)(&time_context))(remaining)?; + remain + } else { + remaining + }; let (remaining, repeater) = opt(tuple((space1, parser_with_context!(repeater)(context))))(remaining)?; let (remaining, warning_delay) = opt(tuple((