From b274ab5c91aab08729c6b504ee7cd10631e3a42d Mon Sep 17 00:00:00 2001 From: Damon Chaplin Date: Fri, 20 Oct 2000 00:42:20 +0000 Subject: added _click-to-add-message, though I'm not sure if i18n will work. 2000-10-20 Damon Chaplin * gui/e-calendar-table.c (E_CALENDAR_TABLE_SPEC): added _click-to-add-message, though I'm not sure if i18n will work. * cal-util/cal-recur.c (cal_obj_time_add_hours): (cal_obj_time_add_minutes): (cal_obj_time_add_seconds): updated to handle -ve args. * cal-util/timeutil.c (time_add_day): set tm_isdst to -1 before calling mktime(). * cal-util/cal-recur.c (generate_instances_for_chunk): don't call the callback if the event ends exactly on the interval start time. * gui/e-week-view.c (e_week_view_reshape_event_span): * gui/e-week-view-event-item.c (e_week_view_event_item_draw_icons): * gui/e-day-view-top-item.c (e_day_view_top_item_draw_long_event): * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event): * gui/e-day-view.c (e_day_view_reshape_long_event): (e_day_view_reshape_day_event): use cal_component_has_alarms(). * cal-util/cal-component.[hc]: added cal_component_has_alarms(). 2000-10-16 Damon Chaplin * gui/calendar-config.c (config_read): set default MonthVPanePosition to 1 rather than 0, so if you move the hpane you'll see the date navigator. svn path=/trunk/; revision=6063 --- calendar/cal-util/cal-recur.c | 58 +++++++++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 13 deletions(-) (limited to 'calendar/cal-util/cal-recur.c') diff --git a/calendar/cal-util/cal-recur.c b/calendar/cal-util/cal-recur.c index 74a0dbf6f7..057bde1368 100644 --- a/calendar/cal-util/cal-recur.c +++ b/calendar/cal-util/cal-recur.c @@ -578,6 +578,11 @@ cal_recur_generate_instances (CalComponent *comp, CalRecurInstanceFn cb, gpointer cb_data) { +#if 0 + g_print ("In cal_recur_generate_instances comp: %p\n", comp); + g_print (" start: %li - %s", start, ctime (&start)); + g_print (" end : %li - %s", end, ctime (&end)); +#endif cal_recur_generate_instances_of_rule (comp, NULL, start, end, cb, cb_data); } @@ -1119,7 +1124,7 @@ generate_instances_for_chunk (CalComponent *comp, break; } - if (end_time < interval_start_time) + if (end_time <= interval_start_time) continue; cb_status = (*cb) (comp, start_time, end_time, cb_data); @@ -3171,13 +3176,22 @@ static void cal_obj_time_add_hours (CalObjTime *cotime, gint hours) { - guint hour; + gint hour, days; - /* We use a guint to avoid overflow on the guint8. */ + /* We use a gint to avoid overflow on the guint8. */ hour = cotime->hour + hours; cotime->hour = hour % 24; - if (hour >= 24) - cal_obj_time_add_days (cotime, hour / 24); + if (hour >= 0) { + if (hour >= 24) + cal_obj_time_add_days (cotime, hour / 24); + } else { + days = hour / 24; + if (cotime->hour != 0) { + cotime->hour += 24; + days -= 1; + } + cal_obj_time_add_days (cotime, days); + } } @@ -3187,13 +3201,22 @@ static void cal_obj_time_add_minutes (CalObjTime *cotime, gint minutes) { - guint minute; + gint minute, hours; - /* We use a guint to avoid overflow on the guint8. */ + /* We use a gint to avoid overflow on the guint8. */ minute = cotime->minute + minutes; cotime->minute = minute % 60; - if (minute >= 60) - cal_obj_time_add_hours (cotime, minute / 60); + if (minute >= 0) { + if (minute >= 60) + cal_obj_time_add_hours (cotime, minute / 60); + } else { + hours = minute / 60; + if (cotime->minute != 0) { + cotime->minute += 60; + hours -= 1; + } + cal_obj_time_add_hours (cotime, hours); + } } @@ -3203,13 +3226,22 @@ static void cal_obj_time_add_seconds (CalObjTime *cotime, gint seconds) { - guint second; + gint second, minutes; - /* We use a guint to avoid overflow on the guint8. */ + /* We use a gint to avoid overflow on the guint8. */ second = cotime->second + seconds; cotime->second = second % 60; - if (second >= 60) - cal_obj_time_add_minutes (cotime, second / 60); + if (second >= 0) { + if (second >= 60) + cal_obj_time_add_minutes (cotime, second / 60); + } else { + minutes = second / 60; + if (cotime->second != 0) { + cotime->second += 60; + minutes -= 1; + } + cal_obj_time_add_minutes (cotime, minutes); + } } -- cgit v1.2.3