From d354a4a05d1f280a3ab4e011b7f954c409a3229e Mon Sep 17 00:00:00 2001
From: Lukas Fleischer <calcurse@cryptocrack.de>
Date: Fri, 10 Apr 2015 16:18:38 +0200
Subject: Fix range checks in day_chk_busy_slices()

Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
---
 src/day.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

(limited to 'src')

diff --git a/src/day.c b/src/day.c
index 219d8a6..75719a6 100644
--- a/src/day.c
+++ b/src/day.c
@@ -567,16 +567,19 @@ unsigned day_chk_busy_slices(struct date day, int slicesno, int *slices)
 			      recur_apoint_inday, i) {
 		struct recur_apoint *rapt = LLIST_TS_GET_DATA(i);
 		time_t occurrence;
-		long start;
-		long end = get_item_time(rapt->start + rapt->dur);
+		long start, end;
 
 		if (!recur_apoint_find_occurrence(rapt, t, &occurrence))
 			continue;
-		start = get_item_time(occurrence);
 
-		if (rapt->start < t)
+		if (occurrence >= t)
+			start = get_item_time(occurrence);
+		else
 			start = 0;
-		if (rapt->start + rapt->dur >= t + DAYINSEC)
+
+		if (occurrence + rapt->dur < t + DAYINSEC)
+			end = get_item_time(occurrence + rapt->dur);
+		else
 			end = DAYINSEC - 1;
 
 		if (!fill_slices
-- 
cgit v1.2.3-70-g09d2