ICAL_DTSTART_PROPERTY);
pe = icalcomponent_get_first_property(WC->disp_cal[i].cal,
ICAL_DTEND_PROPERTY);
- if ((p != NULL) && (pe != NULL)) {
- t = icalproperty_get_dtend(pe);
- event_tte = icaltime_as_timet(t);
-
+ if (p != NULL) {
t = icalproperty_get_dtstart(p);
event_tt = icaltime_as_timet(t);
else all_day_event = 0;
if (all_day_event) {
- gmtime_r(&event_tt, &event_tm);
- gmtime_r(&event_tte, &event_te);
+ gmtime_r(&event_tt, &event_tm);
+ gmtime_r(&event_tt, &event_te);// allday events don't have end-dates.
}
else {
localtime_r(&event_tt, &event_tm);
- localtime_r(&event_tte, &event_te);
+ if (pe != NULL)
+ {
+ t = icalproperty_get_dtend(pe);
+ event_tte = icaltime_as_timet(t);
+ localtime_r(&event_tte, &event_te);
+ }
+ else
+ localtime_r(&event_tt, &event_te);
}
if ((event_tm.tm_year <= today_tm.tm_year)
ICAL_DTSTART_PROPERTY);
pe = icalcomponent_get_first_property(WC->disp_cal[i].cal,
ICAL_DTEND_PROPERTY);
- if ((p != NULL) && (pe != NULL)) {
- te = icalproperty_get_dtend(pe);
- event_tte = icaltime_as_timet(te);
-
+ if (p != NULL) {
t = icalproperty_get_dtstart(p);
event_tt = icaltime_as_timet(t);
if (t.is_date) {
if (all_day_event) {
gmtime_r(&event_tt, &event_tm);
- gmtime_r(&event_tte, &event_te);
+ gmtime_r(&event_tt, &event_te);
}
else {
localtime_r(&event_tt, &event_tm);
- localtime_r(&event_tte, &event_te);
+ if (pe != NULL)
+ {
+ te = icalproperty_get_dtend(pe);
+ event_tte = icaltime_as_timet(te);
+ localtime_r(&event_tte, &event_te);
+ }
+ else
+ localtime_r(&event_tt, &event_te);
}
- if ((event_tm.tm_year <= (year-1900))
- && (event_tm.tm_mon <= (month-1))
- && (event_tm.tm_mday <= day)
- && ( ((event_tm.tm_hour <= hour)&&(!t.is_date)) || ((hour<0)&&(t.is_date)))
- && (event_te.tm_year >= (year-1900))
- && (event_te.tm_mon >= (month-1))
- && (event_te.tm_mday >= day)
- && ( ((event_te.tm_hour >= hour)&&(!te.is_date)) || ((hour<0)&&(te.is_date)) ))
+ if (((event_tm.tm_year <= (year-1900))
+ && (event_tm.tm_mon <= (month-1))
+ && (event_tm.tm_mday <= day)
+ && (event_te.tm_year >= (year-1900))
+ && (event_te.tm_mon >= (month-1))
+ && (event_te.tm_mday >= day))
+ && (
+ // are we in the start hour?
+ ((event_tm.tm_mday == day)
+ && (event_tm.tm_hour == hour)
+ && (!t.is_date))
+ // are we an all day event?
+ || ((hour<0)&&(t.is_date))
+ // does it span multible days and we're not at the start day?
+ || ((hour<0)
+ && (event_tm.tm_mday < day)
+ && (event_te.tm_mday >= day))
+ ))
{
p = icalcomponent_get_first_property(
WC->disp_cal[i].cal,