From 34da45d5d6f03a24f32edf8a41a783ad489f9296 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 25 Jan 2008 14:10:07 +0000 Subject: ** Fix for bug #475781 2008-01-25 Milan Crha ** Fix for bug #475781 * plugins/save-calendar/csv-format.c: (do_save_calendar_csv): * plugins/save-calendar/rdf-format.c: (do_save_calendar_rdf): * plugins/itip-formatter/itip-formatter.c: (format_itip_object): * calendar/gui/dialogs/recurrence-page.c: (fill_ending_date), (recurrence_page_fill_widgets): * calendar/gui/dialogs/memo-page.c: (memo_page_fill_widgets): * calendar/gui/e-day-view.c: 2*(e_day_view_finish_long_event_resize), 2*(e_day_view_on_editing_stopped): * calendar/gui/itip-utils.c: (comp_compliant), (reply_to_calendar_comp): * calendar/gui/e-week-view.c: (e_week_view_on_editing_stopped): * calendar/gui/e-calendar-view.c: (e_calendar_view_add_event), (e_calendar_view_get_tooltips): * calendar/gui/e-cal-component-preview.c: (write_html): * calendar/gui/e-cal-component-memo-preview.c: (write_html): * calendar/gui/e-cal-model.c: (add_instance_cb): Fix memory leaks around ECalComponentDateTime. svn path=/trunk/; revision=34895 --- calendar/ChangeLog | 18 ++++++ calendar/gui/dialogs/memo-page.c | 1 + calendar/gui/dialogs/recurrence-page.c | 3 + calendar/gui/e-cal-component-memo-preview.c | 2 +- calendar/gui/e-cal-component-preview.c | 6 +- calendar/gui/e-cal-model.c | 2 + calendar/gui/e-calendar-view.c | 8 ++- calendar/gui/e-day-view.c | 86 +++++++++++++++++++---------- calendar/gui/e-week-view.c | 16 +++++- calendar/gui/itip-utils.c | 2 + plugins/itip-formatter/ChangeLog | 7 +++ plugins/itip-formatter/itip-formatter.c | 12 ++-- plugins/save-calendar/ChangeLog | 8 +++ plugins/save-calendar/csv-format.c | 9 +-- plugins/save-calendar/rdf-format.c | 11 ++-- 15 files changed, 136 insertions(+), 55 deletions(-) diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 7fcec8ff8c..77933d1843 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,21 @@ +2008-01-25 Milan Crha + + ** Fix for bug #475781 + + * gui/dialogs/recurrence-page.c: (fill_ending_date), + (recurrence_page_fill_widgets): + * gui/dialogs/memo-page.c: (memo_page_fill_widgets): + * gui/e-day-view.c: 2*(e_day_view_finish_long_event_resize), + 2*(e_day_view_on_editing_stopped): + * gui/itip-utils.c: (comp_compliant), (reply_to_calendar_comp): + * gui/e-week-view.c: (e_week_view_on_editing_stopped): + * gui/e-calendar-view.c: (e_calendar_view_add_event), + (e_calendar_view_get_tooltips): + * gui/e-cal-component-preview.c: (write_html): + * gui/e-cal-component-memo-preview.c: (write_html): + * gui/e-cal-model.c: (add_instance_cb): + Fix memory leaks around ECalComponentDateTime. + 2008-01-25 Milan Crha ** Fix for bug #510409 diff --git a/calendar/gui/dialogs/memo-page.c b/calendar/gui/dialogs/memo-page.c index 038346c898..cbb4d2b0cd 100644 --- a/calendar/gui/dialogs/memo-page.c +++ b/calendar/gui/dialogs/memo-page.c @@ -413,6 +413,7 @@ memo_page_fill_widgets (CompEditorPage *page, ECalComponent *comp) start_tt->day); } else if (!(page->flags & COMP_EDITOR_PAGE_NEW_ITEM)) e_date_edit_set_time (E_DATE_EDIT (priv->start_date), -1); + e_cal_component_free_datetime (&d); /* Classification. */ e_cal_component_get_classification (comp, &cl); diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c index 485ac95ec0..34e748a7d7 100644 --- a/calendar/gui/dialogs/recurrence-page.c +++ b/calendar/gui/dialogs/recurrence-page.c @@ -1528,6 +1528,8 @@ fill_ending_date (RecurrencePage *rpage, struct icalrecurrencetype *r) r->until.second = 0; r->until.is_date = TRUE; r->until.is_utc = FALSE; + + e_cal_component_free_datetime (&dt); } priv->ending_date_tt = r->until; @@ -1774,6 +1776,7 @@ recurrence_page_fill_widgets (CompEditorPage *page, ECalComponent *comp) e_cal_component_get_dtstart (comp, &dt); priv->month_index = dt.value->day; priv->month_num = MONTH_NUM_LAST; + e_cal_component_free_datetime (&dt); } else { priv->month_index = nth; priv->month_num = MONTH_NUM_DAY; diff --git a/calendar/gui/e-cal-component-memo-preview.c b/calendar/gui/e-cal-component-memo-preview.c index 87bfa265d9..dd5131eb92 100644 --- a/calendar/gui/e-cal-component-memo-preview.c +++ b/calendar/gui/e-cal-component-memo-preview.c @@ -211,9 +211,9 @@ write_html (GtkHTMLStream *stream, ECal *ecal, ECalComponent *comp, icaltimezone gtk_html_stream_printf (stream, "%s%s", _("Start Date:"), str); - e_cal_component_free_datetime (&dt); g_free (str); } + e_cal_component_free_datetime (&dt); /* write description and URL */ gtk_html_stream_printf (stream, "
"); diff --git a/calendar/gui/e-cal-component-preview.c b/calendar/gui/e-cal-component-preview.c index be3bfa1bdf..a73c10ef66 100644 --- a/calendar/gui/e-cal-component-preview.c +++ b/calendar/gui/e-cal-component-preview.c @@ -199,9 +199,9 @@ write_html (GtkHTMLStream *stream, ECal *ecal, ECalComponent *comp, icaltimezone gtk_html_stream_printf (stream, "%s%s", _("Start Date:"), str); - e_cal_component_free_datetime (&dt); g_free (str); } + e_cal_component_free_datetime (&dt); /* write end date */ e_cal_component_get_dtend (comp, &dt); @@ -210,9 +210,9 @@ write_html (GtkHTMLStream *stream, ECal *ecal, ECalComponent *comp, icaltimezone gtk_html_stream_printf (stream, "%s%s", _("Start Date:"), str); - e_cal_component_free_datetime (&dt); g_free (str); } + e_cal_component_free_datetime (&dt); /* write Due Date */ e_cal_component_get_due (comp, &dt); @@ -221,9 +221,9 @@ write_html (GtkHTMLStream *stream, ECal *ecal, ECalComponent *comp, icaltimezone gtk_html_stream_printf (stream, "%s%s", _("Due Date:"), str); - e_cal_component_free_datetime (&dt); g_free (str); } + e_cal_component_free_datetime (&dt); /* write status */ gtk_html_stream_printf (stream, "%s", _("Status:")); diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c index 344540193e..9f2f3c4ada 100644 --- a/calendar/gui/e-cal-model.c +++ b/calendar/gui/e-cal-model.c @@ -1347,6 +1347,7 @@ add_instance_cb (ECalComponent *comp, time_t instance_start, time_t instance_end to_set.value = &time; to_set.tzid = datetime.tzid; e_cal_component_set_dtstart (comp, &to_set); + e_cal_component_free_datetime (&datetime); /* set the right instance end date to component*/ e_cal_component_get_dtend (comp, &datetime); @@ -1355,6 +1356,7 @@ add_instance_cb (ECalComponent *comp, time_t instance_start, time_t instance_end to_set.value = &time; to_set.tzid = datetime.tzid; e_cal_component_set_dtend (comp, &to_set); + e_cal_component_free_datetime (&datetime); comp_data = g_new0 (ECalModelComponent, 1); comp_data->client = g_object_ref (rdata->client); diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c index 7246ea1534..9f01ffa0b6 100644 --- a/calendar/gui/e-calendar-view.c +++ b/calendar/gui/e-calendar-view.c @@ -363,13 +363,16 @@ e_calendar_view_add_event (ECalendarView *cal_view, ECal *client, time_t dtstart g_free (uid); /* set the timezone properly */ - dt.value = &itime; e_cal_component_get_dtstart (comp, &dt); dt.tzid = icaltimezone_get_tzid (default_zone); e_cal_component_set_dtstart (comp, &dt); + e_cal_component_free_datetime (&dt); + e_cal_component_get_dtend (comp, &dt); dt.tzid = icaltimezone_get_tzid (default_zone); e_cal_component_set_dtend (comp, &dt); + e_cal_component_free_datetime (&dt); + e_cal_component_commit_sequence (comp); /* FIXME Error handling */ @@ -2246,6 +2249,9 @@ e_calendar_view_get_tooltips (ECalendarViewEventData *data) tmp1 = get_label(dtstart.value, zone, default_zone); tmp = calculate_time (t_start, t_end); + e_cal_component_free_datetime (&dtstart); + e_cal_component_free_datetime (&dtend); + /* To Translators: It will display "Time: ActualStartDateAndTime (DurationOfTheMeeting)"*/ tmp2 = g_strdup_printf(_("Time: %s %s"), tmp1, tmp); hbox = gtk_hbox_new (FALSE, 0); diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c index 9e90ed1ea1..29468c30c8 100644 --- a/calendar/gui/e-day-view.c +++ b/calendar/gui/e-day-view.c @@ -4969,23 +4969,31 @@ e_day_view_finish_long_event_resize (EDayView *day_view) date.tzid = NULL; if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_LEFT_EDGE) { - e_cal_component_get_dtstart (comp, &date); - is_date = date.value->is_date; + ECalComponentDateTime ecdt; + + e_cal_component_get_dtstart (comp, &ecdt); + is_date = ecdt.value && ecdt.value->is_date; if (!is_date) date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); dt = day_view->day_starts[day_view->resize_start_row]; *date.value = icaltime_from_timet_with_zone (dt, is_date, e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); e_cal_component_set_dtstart (comp, &date); + e_cal_component_free_datetime (&ecdt); + date.tzid = NULL; /* do not reuse it later */ } else { - e_cal_component_get_dtend (comp, &date); - is_date = date.value->is_date; + ECalComponentDateTime ecdt; + + e_cal_component_get_dtend (comp, &ecdt); + is_date = ecdt.value && ecdt.value->is_date; if (!is_date) date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); dt = day_view->day_starts[day_view->resize_end_row + 1]; *date.value = icaltime_from_timet_with_zone (dt, is_date, e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); e_cal_component_set_dtend (comp, &date); + e_cal_component_free_datetime (&ecdt); + date.tzid = NULL; /* do not reuse it later */ } e_cal_component_commit_sequence (comp); @@ -5209,23 +5217,31 @@ e_day_view_finish_long_event_resize (EDayView *day_view) date.tzid = NULL; if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_LEFT_EDGE) { - e_cal_component_get_dtstart (comp, &date); - is_date = date.value->is_date; + ECalComponentDateTime ecdt; + + e_cal_component_get_dtstart (comp, &ecdt); + is_date = ecdt.value && ecdt.value->is_date; if (!is_date) date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); dt = day_view->day_starts[day_view->resize_start_row]; *date.value = icaltime_from_timet_with_zone (dt, is_date, e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); e_cal_component_set_dtstart (comp, &date); + e_cal_component_free_datetime (&ecdt); + date.tzid = NULL; /* do not reuse it later */ } else { + ECalComponentDateTime ecdt; + e_cal_component_get_dtend (comp, &date); - is_date = date.value->is_date; + is_date = ecdt.value && ecdt.value->is_date; if (!is_date) date.tzid = icaltimezone_get_tzid (e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); dt = day_view->day_starts[day_view->resize_end_row + 1]; *date.value = icaltime_from_timet_with_zone (dt, is_date, e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); e_cal_component_set_dtend (comp, &date); + e_cal_component_free_datetime (&ecdt); + date.tzid = NULL; /* do not reuse it later */ } e_cal_component_commit_sequence (comp); @@ -7733,35 +7749,41 @@ e_day_view_on_editing_stopped (EDayView *day_view, } if (mod == CALOBJ_MOD_THIS) { - ECalComponentDateTime dt; + ECalComponentDateTime olddt, dt; - e_cal_component_get_dtstart (comp, &dt); - if (dt.value->zone) { + e_cal_component_get_dtstart (comp, &olddt); + if (olddt.value->zone) { *dt.value = icaltime_from_timet_with_zone ( event->comp_data->instance_start, - dt.value->is_date, - dt.value->zone); + olddt.value->is_date, + olddt.value->zone); } else { *dt.value = icaltime_from_timet_with_zone ( event->comp_data->instance_start, - dt.value->is_date, + olddt.value->is_date, e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); } + dt.tzid = olddt.tzid; e_cal_component_set_dtstart (comp, &dt); + dt.tzid = NULL; + e_cal_component_free_datetime (&olddt); - e_cal_component_get_dtend (comp, &dt); - if (dt.value->zone) { + e_cal_component_get_dtend (comp, &olddt); + if (olddt.value->zone) { *dt.value = icaltime_from_timet_with_zone ( event->comp_data->instance_end, - dt.value->is_date, - dt.value->zone); + olddt.value->is_date, + olddt.value->zone); } else { *dt.value = icaltime_from_timet_with_zone ( event->comp_data->instance_end, - dt.value->is_date, + olddt.value->is_date, e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); } + dt.tzid = olddt.tzid; e_cal_component_set_dtend (comp, &dt); + dt.tzid = NULL; + e_cal_component_free_datetime (&olddt); e_cal_component_set_rdate_list (comp, NULL); e_cal_component_set_rrule_list (comp, NULL); @@ -7890,35 +7912,41 @@ e_day_view_on_editing_stopped (EDayView *day_view, } if (mod == CALOBJ_MOD_THIS) { - ECalComponentDateTime dt; + ECalComponentDateTime olddt, dt; - e_cal_component_get_dtstart (comp, &dt); - if (dt.value->zone) { + e_cal_component_get_dtstart (comp, &olddt); + if (olddt.value->zone) { *dt.value = icaltime_from_timet_with_zone ( event->comp_data->instance_start, - dt.value->is_date, - dt.value->zone); + olddt.value->is_date, + olddt.value->zone); } else { *dt.value = icaltime_from_timet_with_zone ( event->comp_data->instance_start, - dt.value->is_date, + olddt.value->is_date, e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); } + dt.tzid = olddt.tzid; e_cal_component_set_dtstart (comp, &dt); + dt.tzid = NULL; + e_cal_component_free_datetime (&olddt); - e_cal_component_get_dtend (comp, &dt); - if (dt.value->zone) { + e_cal_component_get_dtend (comp, &olddt); + if (olddt.value->zone) { *dt.value = icaltime_from_timet_with_zone ( event->comp_data->instance_end, - dt.value->is_date, - dt.value->zone); + olddt.value->is_date, + olddt.value->zone); } else { *dt.value = icaltime_from_timet_with_zone ( event->comp_data->instance_end, - dt.value->is_date, + olddt.value->is_date, e_calendar_view_get_timezone (E_CALENDAR_VIEW (day_view))); } + dt.tzid = olddt.tzid; e_cal_component_set_dtend (comp, &dt); + dt.tzid = NULL; + e_cal_component_free_datetime (&olddt); e_cal_component_set_rdate_list (comp, NULL); e_cal_component_set_rrule_list (comp, NULL); diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c index f638fb9a91..cca54b0d22 100644 --- a/calendar/gui/e-week-view.c +++ b/calendar/gui/e-week-view.c @@ -3532,20 +3532,27 @@ e_week_view_on_editing_stopped (EWeekView *week_view, if (mod == CALOBJ_MOD_THIS) { ECalComponentDateTime dt; + struct icaltimetype tt; + char *tzid; e_cal_component_get_dtstart (comp, &dt); if (dt.value->zone) { - *dt.value = icaltime_from_timet_with_zone ( + tt = icaltime_from_timet_with_zone ( event->comp_data->instance_start, dt.value->is_date, dt.value->zone); } else { - *dt.value = icaltime_from_timet_with_zone ( + tt = icaltime_from_timet_with_zone ( event->comp_data->instance_start, dt.value->is_date, e_calendar_view_get_timezone (E_CALENDAR_VIEW (week_view))); } + tzid = g_strdup (dt.tzid); + e_cal_component_free_datetime (&dt); + dt.value = &tt; + dt.tzid = tzid; e_cal_component_set_dtstart (comp, &dt); + g_free (tzid); e_cal_component_get_dtend (comp, &dt); if (dt.value->zone) { @@ -3559,7 +3566,12 @@ e_week_view_on_editing_stopped (EWeekView *week_view, dt.value->is_date, e_calendar_view_get_timezone (E_CALENDAR_VIEW (week_view))); } + tzid = g_strdup (dt.tzid); + e_cal_component_free_datetime (&dt); + dt.value = &tt; + dt.tzid = tzid; e_cal_component_set_dtend (comp, &dt); + g_free (tzid); e_cal_component_set_rdate_list (comp, NULL); e_cal_component_set_rrule_list (comp, NULL); diff --git a/calendar/gui/itip-utils.c b/calendar/gui/itip-utils.c index beeec18e4b..3022b4f6aa 100644 --- a/calendar/gui/itip-utils.c +++ b/calendar/gui/itip-utils.c @@ -1109,6 +1109,7 @@ comp_compliant (ECalComponentItipMethod method, ECalComponent *comp, ECal *clien icaltimezone_convert_time (&r->until, from_zone, to_zone); r->until.is_utc = TRUE; + e_cal_component_free_datetime (&dt); e_cal_component_set_rrule_list (clone, rrule_list); e_cal_component_abort_sequence (clone); } @@ -1515,6 +1516,7 @@ reply_to_calendar_comp (ECalComponentItipMethod method, ECalComponent *send_comp time = g_strdup (ctime (&start)); } + e_cal_component_free_datetime (&dtstart); body = g_string_new ("



______ Original Appointment ______

"); diff --git a/plugins/itip-formatter/ChangeLog b/plugins/itip-formatter/ChangeLog index cc9f039bfd..8b8ccec746 100644 --- a/plugins/itip-formatter/ChangeLog +++ b/plugins/itip-formatter/ChangeLog @@ -1,3 +1,10 @@ +2008-01-25 Milan Crha + + ** Fix for bug #475781 + + * itip-formatter.c: (format_itip_object): + Fix memory leaks around ECalComponentDateTime. + 2007-12-20 Matthew Barnes ** Fixes part of bug #362638 diff --git a/plugins/itip-formatter/itip-formatter.c b/plugins/itip-formatter/itip-formatter.c index bd62118d40..1d6e282712 100644 --- a/plugins/itip-formatter/itip-formatter.c +++ b/plugins/itip-formatter/itip-formatter.c @@ -2082,16 +2082,16 @@ format_itip_object (EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject /* Set the recurrence id */ if (check_is_instance (icalcomp) && datetime.value) { ECalComponentRange *recur_id; - - *datetime.value = icaltime_convert_to_zone (*datetime.value, to_zone); - datetime.tzid = icaltimezone_get_tzid (to_zone); + struct icaltimetype icaltime = icaltime_convert_to_zone (*datetime.value, to_zone); recur_id = g_new0 (ECalComponentRange, 1); recur_id->type = E_CAL_COMPONENT_RANGE_SINGLE; - recur_id->datetime = datetime; + recur_id->datetime.value = &icaltime; + recur_id->datetime.tzid = icaltimezone_get_tzid (to_zone); e_cal_component_set_recurid (pitip->comp, recur_id); - } else - e_cal_component_free_datetime (&datetime); + g_free (recur_id); /* it's ok to call g_free here */ + } + e_cal_component_free_datetime (&datetime); e_cal_component_get_dtend (pitip->comp, &datetime); pitip->end_time = 0; diff --git a/plugins/save-calendar/ChangeLog b/plugins/save-calendar/ChangeLog index 635d326a1e..a498f0d995 100644 --- a/plugins/save-calendar/ChangeLog +++ b/plugins/save-calendar/ChangeLog @@ -1,3 +1,11 @@ +2008-01-25 Milan Crha + + ** Fix for bug #475781 + + * csv-format.c: (do_save_calendar_csv): + * rdf-format.c: (do_save_calendar_rdf): + Fix memory leaks around ECalComponentDateTime. + 2007-11-11 Gilles Dartiguelongue ** Fix bug #495872 diff --git a/plugins/save-calendar/csv-format.c b/plugins/save-calendar/csv-format.c index d4b46058a0..e26b758cd4 100644 --- a/plugins/save-calendar/csv-format.c +++ b/plugins/save-calendar/csv-format.c @@ -462,18 +462,15 @@ do_save_calendar_csv (FormatHandler *handler, EPlugin *ep, ECalPopupTargetSource e_cal_component_get_dtstart (comp, &temp_dt); line = add_time_to_csv (line, temp_dt.value ? temp_dt.value : NULL, config); - if (temp_dt.value) - e_cal_component_free_datetime (&temp_dt); + e_cal_component_free_datetime (&temp_dt); e_cal_component_get_dtend (comp, &temp_dt); line = add_time_to_csv (line, temp_dt.value ? temp_dt.value : NULL, config); - if (temp_dt.value) - e_cal_component_free_datetime (&temp_dt); + e_cal_component_free_datetime (&temp_dt); e_cal_component_get_due (comp, &temp_dt); line = add_time_to_csv (line, temp_dt.value ? temp_dt.value : NULL, config); - if (temp_dt.value) - e_cal_component_free_datetime (&temp_dt); + e_cal_component_free_datetime (&temp_dt); e_cal_component_get_percent (comp, &temp_int); line = add_nummeric_to_csv (line, temp_int, config); diff --git a/plugins/save-calendar/rdf-format.c b/plugins/save-calendar/rdf-format.c index 768028b811..445dbd6cbf 100644 --- a/plugins/save-calendar/rdf-format.c +++ b/plugins/save-calendar/rdf-format.c @@ -320,19 +320,16 @@ do_save_calendar_rdf (FormatHandler *handler, EPlugin *ep, ECalPopupTargetSource e_cal_component_free_text_list (temp_list); e_cal_component_get_dtstart (comp, &temp_dt); - add_time_to_rdf (node, "dtstart", temp_dt.value ? temp_dt.value : NULL); - if (temp_dt.value) - e_cal_component_free_datetime (&temp_dt); + add_time_to_rdf (node, "dtstart", temp_dt.value ? temp_dt.value : NULL); + e_cal_component_free_datetime (&temp_dt); e_cal_component_get_dtend (comp, &temp_dt); add_time_to_rdf (node, "dtend", temp_dt.value ? temp_dt.value : NULL); - if (temp_dt.value) - e_cal_component_free_datetime (&temp_dt); + e_cal_component_free_datetime (&temp_dt); e_cal_component_get_due (comp, &temp_dt); add_time_to_rdf (node, "due", temp_dt.value ? temp_dt.value : NULL); - if (temp_dt.value) - e_cal_component_free_datetime (&temp_dt); + e_cal_component_free_datetime (&temp_dt); e_cal_component_get_percent (comp, &temp_int); add_nummeric_to_rdf (node, "percentComplete", temp_int); -- cgit v1.2.3