aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/cal-util/cal-component.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/cal-util/cal-component.c')
-rw-r--r--calendar/cal-util/cal-component.c38
1 files changed, 24 insertions, 14 deletions
diff --git a/calendar/cal-util/cal-component.c b/calendar/cal-util/cal-component.c
index 5fc5addf19..eeb51c79f6 100644
--- a/calendar/cal-util/cal-component.c
+++ b/calendar/cal-util/cal-component.c
@@ -4462,19 +4462,6 @@ make_alarm (icalcomponent *subcomp)
return alarm;
}
-/* Used from g_hash_table_foreach(); adds an alarm UID to a list */
-static void
-add_alarm_uid (gpointer key, gpointer value, gpointer data)
-{
- const char *auid;
- GList **l;
-
- auid = key;
- l = data;
-
- *l = g_list_prepend (*l, g_strdup (auid));
-}
-
/**
* cal_component_get_alarm_uids:
* @comp: A calendar component.
@@ -4489,6 +4476,7 @@ GList *
cal_component_get_alarm_uids (CalComponent *comp)
{
CalComponentPrivate *priv;
+ icalcompiter iter;
GList *l;
g_return_val_if_fail (comp != NULL, NULL);
@@ -4498,7 +4486,29 @@ cal_component_get_alarm_uids (CalComponent *comp)
g_return_val_if_fail (priv->icalcomp != NULL, NULL);
l = NULL;
- g_hash_table_foreach (priv->alarm_uid_hash, add_alarm_uid, &l);
+ for (iter = icalcomponent_begin_component (priv->icalcomp, ICAL_VALARM_COMPONENT);
+ icalcompiter_deref (&iter) != NULL;
+ icalcompiter_next (&iter)) {
+ icalcomponent *subcomp;
+ icalproperty *prop;
+
+ subcomp = icalcompiter_deref (&iter);
+ for (prop = icalcomponent_get_first_property (subcomp, ICAL_X_PROPERTY);
+ prop;
+ prop = icalcomponent_get_next_property (subcomp, ICAL_X_PROPERTY)) {
+ const char *xname;
+
+ xname = icalproperty_get_x_name (prop);
+ g_assert (xname != NULL);
+
+ if (strcmp (xname, EVOLUTION_ALARM_UID_PROPERTY) == 0) {
+ const char *auid;
+
+ auid = alarm_uid_from_prop (prop);
+ l = g_list_append (l, g_strdup (auid));
+ }
+ }
+ }
return l;
}