Bug free version of the range computation in place.

1998-05-15  Miguel de Icaza  <miguel@nuclecu.unam.mx>

	* 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
This commit is contained in:
Miguel de Icaza
1998-05-16 00:52:33 +00:00
committed by Arturo Espinosa
parent 3799134926
commit 418f8bfcb5
8 changed files with 63 additions and 48 deletions

View File

@ -1,3 +1,14 @@
1998-05-15 Miguel de Icaza <miguel@nuclecu.unam.mx>
* 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.
1998-05-14 Miguel de Icaza <miguel@nuclecu.unam.mx>
* timeutil.c (isodate_from_time_t): Do not add the spurious

View File

@ -1049,8 +1049,8 @@ ical_object_generate_events (iCalObject *ico, time_t start, time_t end, calendar
int first_week_day, i;
if (!ico->recur){
if (time_in_range (ico->dtstart, start, end) ||
time_in_range (ico->dtend, start, end)){
if ((end && (ico->dtstart < end) && ico->dtend > start) ||
(end == 0 && ico->dtend > start)){
time_t ev_s, ev_e;
ev_s = ico->dtstart < start ? start : ico->dtstart;

View File

@ -1049,8 +1049,8 @@ ical_object_generate_events (iCalObject *ico, time_t start, time_t end, calendar
int first_week_day, i;
if (!ico->recur){
if (time_in_range (ico->dtstart, start, end) ||
time_in_range (ico->dtend, start, end)){
if ((end && (ico->dtstart < end) && ico->dtend > start) ||
(end == 0 && ico->dtend > start)){
time_t ev_s, ev_e;
ev_s = ico->dtstart < start ? start : ico->dtstart;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -168,20 +168,21 @@ static void
year_view_mark_day (iCalObject *ical, time_t start, time_t end, void *closure)
{
GncalYearView *yview = (GncalYearView *) closure;
struct tm *tm_s;
struct tm tm_s;
int days, day;
tm_s = localtime (&start);
days = difftime (end, start) / (60*60*24);
time_t t, day_end;
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_CALENDAR (yview->calendar [tm_day->tm_mon]),
tm_day->tm_mday);
tm_s->tm_mday++;
tm_day = *localtime (&new);
gtk_calendar_mark_day (GTK_CALENDAR (yview->calendar [tm_day.tm_mon]),
tm_day.tm_mday);
tm_s.tm_mday++;
}
}

View File

@ -1049,8 +1049,8 @@ ical_object_generate_events (iCalObject *ico, time_t start, time_t end, calendar
int first_week_day, i;
if (!ico->recur){
if (time_in_range (ico->dtstart, start, end) ||
time_in_range (ico->dtend, start, end)){
if ((end && (ico->dtstart < end) && ico->dtend > start) ||
(end == 0 && ico->dtend > start)){
time_t ev_s, ev_e;
ev_s = ico->dtstart < start ? start : ico->dtstart;

View File

@ -168,20 +168,21 @@ static void
year_view_mark_day (iCalObject *ical, time_t start, time_t end, void *closure)
{
GncalYearView *yview = (GncalYearView *) closure;
struct tm *tm_s;
struct tm tm_s;
int days, day;
tm_s = localtime (&start);
days = difftime (end, start) / (60*60*24);
time_t t, day_end;
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_CALENDAR (yview->calendar [tm_day->tm_mon]),
tm_day->tm_mday);
tm_s->tm_mday++;
tm_day = *localtime (&new);
gtk_calendar_mark_day (GTK_CALENDAR (yview->calendar [tm_day.tm_mon]),
tm_day.tm_mday);
tm_s.tm_mday++;
}
}