From 5ac3d43e9af1d901b0db6967999413a6e3364cc5 Mon Sep 17 00:00:00 2001
From: Lukas Fleischer <calcurse@cryptocrack.de>
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 <jerning@home.se>
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
---
 src/day.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

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-70-g09d2