aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/itip-formatter/itip-formatter.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/itip-formatter/itip-formatter.c')
-rw-r--r--plugins/itip-formatter/itip-formatter.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c
index 8e22e7d239..03c9b9689a 100644
--- a/plugins/itip-formatter/itip-formatter.c
+++ b/plugins/itip-formatter/itip-formatter.c
@@ -927,7 +927,8 @@ view_response_cb (GtkWidget *widget, ItipViewResponse response, gpointer data)
icalvalue *value;
const char *attendee, *comment;
GSList *l, *list = NULL;
-
+ gboolean found;
+
comp = e_cal_component_clone (pitip->comp);
if (comp == NULL)
return;
@@ -941,6 +942,7 @@ view_response_cb (GtkWidget *widget, ItipViewResponse response, gpointer data)
ical_comp = e_cal_component_get_icalcomponent (comp);
/* Remove all attendees except the one we are responding as */
+ found = FALSE;
for (prop = icalcomponent_get_first_property (ical_comp, ICAL_ATTENDEE_PROPERTY);
prop != NULL;
prop = icalcomponent_get_next_property (ical_comp, ICAL_ATTENDEE_PROPERTY))
@@ -955,8 +957,13 @@ view_response_cb (GtkWidget *widget, ItipViewResponse response, gpointer data)
text = g_strdup (itip_strip_mailto (attendee));
text = g_strstrip (text);
- if (g_strcasecmp (pitip->my_address, text))
+
+ /* We do this to ensure there is at most one
+ * attendee in the response */
+ if (found || g_strcasecmp (pitip->my_address, text))
list = g_slist_prepend (list, prop);
+ else if (!g_strcasecmp (pitip->my_address, text))
+ found = TRUE;
g_free (text);
}