From 5aa7a0962a2728e6b2164c4531d3995b33cb71b8 Mon Sep 17 00:00:00 2001
From: Lukas Fleischer <lfleischer@calcurse.org>
Date: Sat, 11 Feb 2017 11:50:32 +0100
Subject: Fix another error in the notification code

In addition to checking whether a recurrent item predates the current
next appointment, we need to check that the actual occurrence of the
item predates the current appointment as well.

Fixes GitHub issue #26.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
---
 src/recur.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

(limited to 'src')

diff --git a/src/recur.c b/src/recur.c
index 95a45ca..2a62e94 100644
--- a/src/recur.c
+++ b/src/recur.c
@@ -943,9 +943,14 @@ struct notify_app *recur_apoint_check_next(struct notify_app *app,
 			      recur_apoint_starts_before, i) {
 		struct recur_apoint *rapt = LLIST_TS_GET_DATA(i);
 
+		/*
+		 * Check whether the recurrent appointment contains an
+		 * occurrence which is the next item to be notified.
+		 */
 		if (recur_apoint_find_occurrence
 		    (rapt, day, &real_recur_start_time)
-		    && real_recur_start_time > start) {
+		    && real_recur_start_time > start
+		    && real_recur_start_time < app->time) {
 			app->time = real_recur_start_time;
 			app->txt = mem_strdup(rapt->mesg);
 			app->state = rapt->state;
-- 
cgit v1.2.3-70-g09d2