From b12dec1c48fba6202e9e854f23f1975f8329c0ec Mon Sep 17 00:00:00 2001 From: JP Rosevear Date: Fri, 7 Jan 2005 20:49:18 +0000 Subject: ensure there is only one attendee in the RSVP even if the user is 2005-01-07 JP Rosevear * itip-formatter.c (view_response_cb): ensure there is only one attendee in the RSVP even if the user is duplicated svn path=/trunk/; revision=28279 --- plugins/itip-formatter/ChangeLog | 5 +++++ 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 + * 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 + * 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); } -- cgit v1.2.3