aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/conduits
diff options
context:
space:
mode:
authorChenthill Palanisamy <pchen@src.gnome.org>2005-07-11 10:35:49 +0800
committerChenthill Palanisamy <pchen@src.gnome.org>2005-07-11 10:35:49 +0800
commit24c212a1e2f400804387484b7515823dde4fce4b (patch)
tree192f1987c49aec88e54618e764c889abe167a49c /calendar/conduits
parentd964dd2e8fe1add89fd6a4788501da6d4ae92375 (diff)
downloadgsoc2013-evolution-24c212a1e2f400804387484b7515823dde4fce4b.tar
gsoc2013-evolution-24c212a1e2f400804387484b7515823dde4fce4b.tar.gz
gsoc2013-evolution-24c212a1e2f400804387484b7515823dde4fce4b.tar.bz2
gsoc2013-evolution-24c212a1e2f400804387484b7515823dde4fce4b.tar.lz
gsoc2013-evolution-24c212a1e2f400804387484b7515823dde4fce4b.tar.xz
gsoc2013-evolution-24c212a1e2f400804387484b7515823dde4fce4b.tar.zst
gsoc2013-evolution-24c212a1e2f400804387484b7515823dde4fce4b.zip
Use e_cal_remove_object for non-recurring appointments. Fixed some memory leaks.
svn path=/trunk/; revision=29703
Diffstat (limited to 'calendar/conduits')
-rw-r--r--calendar/conduits/calendar/calendar-conduit.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/calendar/conduits/calendar/calendar-conduit.c b/calendar/conduits/calendar/calendar-conduit.c
index f67a6b6f1e..d84fb72e83 100644
--- a/calendar/conduits/calendar/calendar-conduit.c
+++ b/calendar/conduits/calendar/calendar-conduit.c
@@ -654,7 +654,11 @@ process_multi_day (ECalConduitContext *ctxt, ECalChange *ccc, GList **multi_comp
e_cal_component_get_uid (ccc->comp, &uid);
/* FIXME Error handling */
- e_cal_remove_object (ctxt->client, uid, NULL);
+ if (e_cal_component_is_instance (ccc->comp) || e_cal_component_has_recurrences (ccc->comp))
+ e_cal_remove_object_with_mod (ctxt->client, uid, NULL, CALOBJ_MOD_ALL, NULL);
+ else
+ e_cal_remove_object (ctxt->client, uid, NULL);
+
ccc->type = E_CAL_CHANGE_DELETED;
cleanup:
@@ -1749,7 +1753,10 @@ delete_record (GnomePilotConduitSyncAbs *conduit,
e_pilot_map_remove_by_uid (ctxt->map, uid);
/* FIXME Error handling */
- e_cal_remove_object (ctxt->client, uid, NULL);
+ if (e_cal_component_is_instance (local->comp) || e_cal_component_has_recurrences (local->comp))
+ e_cal_remove_object_with_mod (ctxt->client, uid, NULL, CALOBJ_MOD_ALL, NULL);
+ else
+ e_cal_remove_object (ctxt->client, uid, NULL);
return 0;
}