diff options
-rw-r--r-- | plugins/itip-formatter/ChangeLog | 5 | ||||
-rw-r--r-- | plugins/itip-formatter/itip-formatter.c | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/plugins/itip-formatter/ChangeLog b/plugins/itip-formatter/ChangeLog index 6e6c2e1041..ea5c47085f 100644 --- a/plugins/itip-formatter/ChangeLog +++ b/plugins/itip-formatter/ChangeLog @@ -1,5 +1,10 @@ 2005-01-07 JP Rosevear <jpr@novell.com> + * itip-formatter.c (view_response_cb): ensure there is only one + attendee in the RSVP even if the user is duplicated + +2005-01-07 JP Rosevear <jpr@novell.com> + * itip-view.h: protos * itip-view.c (rsvp_toggled_cb): set comment sensitivity 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); } |