Avoid unnecessary start time calculations

Rename recur_*_inday() to recur_*_find_occurrence() and use the new
functions whenever we actually care about the start time of an
occurrence.

Reintroduce recur_*_inday() as wrappers to recur_*_find_occurrence() and
pass NULL as start time buffer (which means "skip start time
calculation"). Keep using these when we only want to know if a recurrent
item belongs to a specific day but do not care about the actual start
time.

Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
Lukas Fleischer
2011-10-11 13:06:55 +02:00
parent 28c98f7d01
commit 2bf0249338
5 changed files with 70 additions and 23 deletions

View File

@@ -432,6 +432,7 @@ app_arg (int add_line, struct date *day, long date, int print_note,
{
struct apoint *apt = LLIST_TS_GET_DATA (i);
struct recur_apoint *ra = LLIST_TS_GET_DATA (j);
unsigned occurrence;
while (i && regex && regexec (regex, apt->mesg, 0, 0, 0) != 0)
{
@@ -447,7 +448,8 @@ app_arg (int add_line, struct date *day, long date, int print_note,
if (apt && ra)
{
if (apt->start <= recur_apoint_inday (ra, today))
if (recur_apoint_find_occurrence (ra, today, &occurrence) &&
apt->start <= occurrence)
ra = NULL;
else
apt = NULL;