diff options
author | Suman Manjunath <msuman@src.gnome.org> | 2008-11-28 16:04:21 +0800 |
---|---|---|
committer | Suman Manjunath <msuman@src.gnome.org> | 2008-11-28 16:04:21 +0800 |
commit | 4f015ce67a104d6c9476356394dc78443d6eb06f (patch) | |
tree | 8ef3944a1976292328190033b7d88b0f55b63de0 /plugins/itip-formatter | |
parent | a75b727efee43acf8e4975b264a85ea743529526 (diff) | |
download | gsoc2013-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/itip-formatter')
-rw-r--r-- | plugins/itip-formatter/ChangeLog | 8 | ||||
-rw-r--r-- | plugins/itip-formatter/itip-formatter.c | 22 |
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); |