aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorSuman Manjunath <msuman@src.gnome.org>2008-11-28 16:04:21 +0800
committerSuman Manjunath <msuman@src.gnome.org>2008-11-28 16:04:21 +0800
commit4f015ce67a104d6c9476356394dc78443d6eb06f (patch)
tree8ef3944a1976292328190033b7d88b0f55b63de0 /plugins
parenta75b727efee43acf8e4975b264a85ea743529526 (diff)
downloadgsoc2013-evolution-4f015ce67a104d6c9476356394dc78443d6eb06f.tar
gsoc2013-evolution-4f015ce67a104d6c9476356394dc78443d6eb06f.tar.gz
gsoc2013-evolution-4f015ce67a104d6c9476356394dc78443d6eb06f.tar.bz2
gsoc2013-evolution-4f015ce67a104d6c9476356394dc78443d6eb06f.tar.lz
gsoc2013-evolution-4f015ce67a104d6c9476356394dc78443d6eb06f.tar.xz
gsoc2013-evolution-4f015ce67a104d6c9476356394dc78443d6eb06f.tar.zst
gsoc2013-evolution-4f015ce67a104d6c9476356394dc78443d6eb06f.zip
Fix for bug #561467 - some changes in the core code needed for evolution-mapi.
svn path=/trunk/; revision=36818
Diffstat (limited to 'plugins')
-rw-r--r--plugins/itip-formatter/ChangeLog8
-rw-r--r--plugins/itip-formatter/itip-formatter.c22
2 files changed, 30 insertions, 0 deletions
diff --git a/plugins/itip-formatter/ChangeLog b/plugins/itip-formatter/ChangeLog
index 966cc611e7..c04825312f 100644
--- a/plugins/itip-formatter/ChangeLog
+++ b/plugins/itip-formatter/ChangeLog
@@ -1,3 +1,11 @@
+2008-11-28 Suman Manjunath <msuman@novell.com>
+
+ ** Fix for bug #561467
+
+ * itip-formatter.c (update_x), (update_attendee_status): Copy
+ required X-* properties . This might be needed for special cases
+ in certain backends.
+
2008-11-06 Patrick Ohly <patrick.ohly@gmx.de>
** Fix for bug #541121
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c
index ae7190174b..61d2234bd8 100644
--- a/plugins/itip-formatter/itip-formatter.c
+++ b/plugins/itip-formatter/itip-formatter.c
@@ -1186,6 +1186,26 @@ remove_delegate (struct _itip_puri *pitip, const char *delegate, const char *del
}
+static void
+update_x (ECalComponent *pitip_comp, ECalComponent *comp)
+{
+ icalcomponent *itip_icalcomp = e_cal_component_get_icalcomponent (pitip_comp);
+ icalcomponent *icalcomp = e_cal_component_get_icalcomponent (comp);
+
+ icalproperty *prop = icalcomponent_get_first_property (itip_icalcomp, ICAL_X_PROPERTY);
+ while (prop) {
+ const char *name = icalproperty_get_x_name (prop);
+ if (!g_ascii_strcasecmp (name, "X-EVOLUTION-IS-REPLY")) {
+ icalproperty *new_prop = icalproperty_new_x (icalproperty_get_x (prop));
+ icalproperty_set_x_name (new_prop, "X-EVOLUTION-IS-REPLY");
+ icalcomponent_add_property (icalcomp, new_prop);
+ }
+ prop = icalcomponent_get_next_property (itip_icalcomp, ICAL_X_PROPERTY);
+ }
+
+ e_cal_component_set_icalcomponent (comp, icalcomp);
+}
+
static void
update_attendee_status (struct _itip_puri *pitip)
{
@@ -1286,6 +1306,8 @@ update_attendee_status (struct _itip_puri *pitip)
}
}
+ update_x (pitip->comp, comp);
+
if (itip_view_get_update (ITIP_VIEW (pitip->view))) {
e_cal_component_commit_sequence (comp);
itip_send_comp (E_CAL_COMPONENT_METHOD_REQUEST, comp, pitip->current_ecal, NULL, NULL, NULL);