Subject: | Specifying start sometimes causing recurring events to be lost |
Date: | Sun, 23 Aug 2020 16:55:07 -0400 |
To: | bug-iCal-Parser [...] rt.cpan.org |
From: | Jonathan Kamens <jik [...] kamens.us> |
When the attached calendar file is parsed using iCal::Parser with no
options, it parses the calendar into a bunch of recurring events going
years into the future.
However, when a "start" option of "20200801" is specified, it doesn't
parse the calendar into /any/ events, despite the fact that there are
definitely events going into the future that it should return.
The problem appears to be that this line in Parser.pm breaks the set:
$set=$set->intersection($self->{span}) if $self->{span};
When "start" is set to "20200801", after the line above is executed,
evaluating $set->count prints this:
Can't call method "is_infinite" on an undefined value at
/usr/share/perl5/DateTime/Set.pm line 658, <GEN0> line 47.
I can't figure out why so I don't know the correct fix, but I did figure
out a workaround, which is shown in the attached patch.
In addition, I noticed while debugging this that the code immediately
above it constructs $exset but then doesn't use it. I've included in my
patch what I believe to be the correct fix for this as well.
Jonathan Kamens
Message body is not shown because sender requested not to inline it.
Message body is not shown because sender requested not to inline it.