[evolution/gnome-2-28] Bug #581602 - Purge calendar function not working
- From: Milan Crha <mcrha src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [evolution/gnome-2-28] Bug #581602 - Purge calendar function not working
- Date: Tue, 8 Sep 2009 09:12:15 +0000 (UTC)
commit f61372d9d72e93cee5692128a24dc847fda0f9d1
Author: Milan Crha <mcrha redhat com>
Date: Tue Sep 8 11:13:38 2009 +0200
Bug #581602 - Purge calendar function not working
calendar/gui/gnome-cal.c | 24 +++++++++++++++++++-----
1 files changed, 19 insertions(+), 5 deletions(-)
---
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index 576dfc8..cfdfb6d 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -3979,17 +3979,23 @@ gnome_calendar_delete_selected_occurrence (GnomeCalendar *gcal)
}
}
+struct purge_data {
+ gboolean remove;
+ time_t older_than;
+};
+
static gboolean
check_instance_cb (ECalComponent *comp,
time_t instance_start,
time_t instance_end,
gpointer data)
{
- gboolean *remove = data;
+ struct purge_data *pd = data;
- *remove = FALSE;
+ if (instance_end >= pd->older_than)
+ pd->remove = FALSE;
- return FALSE;
+ return pd->remove;
}
void
@@ -4032,11 +4038,19 @@ gnome_calendar_purge (GnomeCalendar *gcal, time_t older_than)
/* FIXME write occur-before and occur-after
* sexp funcs so we don't have to use the max
* gint */
- if (!e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_RECURRENCES_NO_MASTER))
+ if (!e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_RECURRENCES_NO_MASTER)) {
+ struct purge_data pd;
+
+ pd.remove = TRUE;
+ pd.older_than = older_than;
+
e_cal_generate_instances_for_object (client, m->data,
older_than, G_MAXINT32,
(ECalRecurInstanceFn) check_instance_cb,
- &remove);
+ &pd);
+
+ remove = pd.remove;
+ }
/* FIXME Better error handling */
if (remove) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]