From 5ac3d43e9af1d901b0db6967999413a6e3364cc5 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Fri, 10 Apr 2015 09:24:15 +0200 Subject: Fix slice computation of recurring appointments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reported-by: HÃ¥kan Jerning Signed-off-by: Lukas Fleischer --- src/day.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/day.c') diff --git a/src/day.c b/src/day.c index 131119f..219d8a6 100644 --- a/src/day.c +++ b/src/day.c @@ -565,10 +565,15 @@ unsigned day_chk_busy_slices(struct date day, int slicesno, int *slices) LLIST_TS_LOCK(&recur_alist_p); LLIST_TS_FIND_FOREACH(&recur_alist_p, (time_t *)&t, recur_apoint_inday, i) { - struct apoint *rapt = LLIST_TS_GET_DATA(i); - long start = get_item_time(rapt->start); + struct recur_apoint *rapt = LLIST_TS_GET_DATA(i); + time_t occurrence; + long start; long end = get_item_time(rapt->start + rapt->dur); + if (!recur_apoint_find_occurrence(rapt, t, &occurrence)) + continue; + start = get_item_time(occurrence); + if (rapt->start < t) start = 0; if (rapt->start + rapt->dur >= t + DAYINSEC) -- cgit v1.2.3