From 418f8bfcb52e54cdf88ef9b10c2cd185cd116fe8 Mon Sep 17 00:00:00 2001 From: Miguel de Icaza Date: Sat, 16 May 1998 00:52:33 +0000 Subject: Bug free version of the range computation in place. 1998-05-15 Miguel de Icaza * gnome-cal.c (mark_gtk_calendar_day): Bug free version of the range computation in place. * gncal-year-view.c (year_view_mark_day): Use the same new version of the range computation here. * calobj.c (ical_object_generate_events): Fix the begin/end condition. svn path=/trunk/; revision=215 --- calendar/gui/gnome-cal.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'calendar/gui/gnome-cal.c') diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index 24c854ee5c..a54d4e4a78 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -335,19 +335,20 @@ static int mark_gtk_calendar_day (iCalObject *obj, time_t start, time_t end, void *c) { GtkCalendar *gtk_cal = c; - struct tm *tm_s; + struct tm tm_s; int days, day; + time_t t, day_end; - tm_s = localtime (&start); - days = difftime (end, start) / (60*60*24); - - for (day = 0; day <= days; day++){ - time_t new = mktime (tm_s); - struct tm *tm_day; + tm_s = *localtime (&start); + day_end = time_end_of_day (end); + + for (t = start; t <= day_end; t += 60*60*24){ + time_t new = mktime (&tm_s); + struct tm tm_day; - tm_day = localtime (&new); - gtk_calendar_mark_day (gtk_cal, tm_day->tm_mday); - tm_s->tm_mday++; + tm_day = *localtime (&new); + gtk_calendar_mark_day (gtk_cal, tm_day.tm_mday); + tm_s.tm_mday++; } return TRUE; } -- cgit