diff options
-rw-r--r-- | calendar/ChangeLog | 6 | ||||
-rw-r--r-- | calendar/conduits/calendar/calendar-conduit.c | 8 |
2 files changed, 12 insertions, 2 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index f65572ecf9..6beff2acdf 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,9 @@ +2002-09-24 JP Rosevear <jpr@ximian.com> + + * conduits/calendar/calendar-conduit.c (process_multi_day): + convert to date values if the original start and end were both + dates + 2002-09-24 Rodrigo Moya <rodrigo@ximian.com> * cal-client/cal-query.c (cal_query_destroy): unref the query diff --git a/calendar/conduits/calendar/calendar-conduit.c b/calendar/conduits/calendar/calendar-conduit.c index 6dfe288f34..d057ed49fe 100644 --- a/calendar/conduits/calendar/calendar-conduit.c +++ b/calendar/conduits/calendar/calendar-conduit.c @@ -497,6 +497,7 @@ process_multi_day (ECalConduitContext *ctxt, CalClientChange *ccc, GList **multi time_t event_start, event_end, day_end; struct icaltimetype *old_start_value, *old_end_value; const char *uid; + gboolean is_date = FALSE; gboolean last = FALSE; gboolean ret = TRUE; @@ -530,6 +531,9 @@ process_multi_day (ECalConduitContext *ctxt, CalClientChange *ccc, GList **multi goto cleanup; } + if (dt_start.value->is_date && dt_end.value->is_date) + is_date = TRUE; + old_start_value = dt_start.value; old_end_value = dt_end.value; while (!last) { @@ -545,11 +549,11 @@ process_multi_day (ECalConduitContext *ctxt, CalClientChange *ccc, GList **multi cal_component_set_uid (clone, new_uid); - start_value = icaltime_from_timet_with_zone (event_start, FALSE, tz_start); + start_value = icaltime_from_timet_with_zone (event_start, is_date, tz_start); dt_start.value = &start_value; cal_component_set_dtstart (clone, &dt_start); - end_value = icaltime_from_timet_with_zone (day_end, FALSE, tz_end); + end_value = icaltime_from_timet_with_zone (day_end, is_date, tz_end); dt_end.value = &end_value; cal_component_set_dtend (clone, &dt_end); |