--- ./kcalcore/icalformat_p.cpp.orig 2015-06-24 07:43:14.000000000 -0500 +++ ./kcalcore/icalformat_p.cpp 2017-12-05 23:03:44.742261940 -0600 @@ -2301,7 +2301,6 @@ t.second = 0; t.is_date = 1; - t.is_utc = 0; t.zone = 0; return t; @@ -2322,8 +2321,7 @@ t.minute = datetime.time().minute(); t.second = datetime.time().second(); } - t.zone = 0; // zone is NOT set - t.is_utc = datetime.isUtc() ? 1 : 0; + t.zone = datetime.isUtc() ? icaltimezone_get_utc_timezone() : 0; // zone is NOT set // _dumpIcaltime( t ); @@ -2398,7 +2396,7 @@ } KTimeZone ktz; - if (!t.is_utc) { + if (!icaltime_is_utc( t )) { ktz = dt.timeZone(); } @@ -2431,7 +2429,7 @@ // _dumpIcaltime( t ); KDateTime::Spec timeSpec; - if (t.is_utc || t.zone == icaltimezone_get_utc_timezone()) { + if (icaltime_is_utc( t ) || t.zone == icaltimezone_get_utc_timezone()) { timeSpec = KDateTime::UTC; // the time zone is UTC utc = false; // no need to convert to UTC } else { --- ./kcalcore/icaltimezones.cpp.orig 2015-06-24 07:43:14.000000000 -0500 +++ ./kcalcore/icaltimezones.cpp 2017-12-05 23:03:55.482262829 -0600 @@ -54,7 +54,7 @@ { return QDateTime(QDate(t.year, t.month, t.day), QTime(t.hour, t.minute, t.second), - (t.is_utc ? Qt::UTC : Qt::LocalTime)); + (icaltime_is_utc( t ) ? Qt::UTC : Qt::LocalTime)); } // Maximum date for time zone data. @@ -81,7 +81,6 @@ t.second = local.time().second(); t.is_date = 0; t.zone = 0; - t.is_utc = 0; return t; } @@ -886,7 +885,7 @@ case ICAL_LASTMODIFIED_PROPERTY: { const icaltimetype t = icalproperty_get_lastmodified(p); - if (t.is_utc) { + if (icaltime_is_utc( t )) { data->d->lastModified = toQDateTime(t); } else { kDebug() << "LAST-MODIFIED not UTC"; @@ -1259,7 +1258,7 @@ // Convert DTSTART to QDateTime, and from local time to UTC const QDateTime localStart = toQDateTime(dtstart); // local time dtstart.second -= prevOffset; - dtstart.is_utc = 1; + dtstart.zone = icaltimezone_get_utc_timezone(); const QDateTime utcStart = toQDateTime(icaltime_normalize(dtstart)); // UTC transitions += utcStart; @@ -1286,13 +1285,13 @@ t.minute = dtstart.minute; t.second = dtstart.second; t.is_date = 0; - t.is_utc = 0; // dtstart is in local time + t.zone = 0; // dtstart is in local time } // RFC2445 states that RDATE must be in local time, // but we support UTC as well to be safe. - if (!t.is_utc) { + if (!icaltime_is_utc( t )) { t.second -= prevOffset; // convert to UTC - t.is_utc = 1; + t.zone = icaltimezone_get_utc_timezone(); t = icaltime_normalize(t); } transitions += toQDateTime(t); --- ./kcal/icalformat_p.cpp.orig 2015-06-24 07:43:14.000000000 -0500 +++ ./kcal/icalformat_p.cpp 2017-12-05 23:04:01.670263342 -0600 @@ -2087,7 +2087,6 @@ t.second = 0; t.is_date = 1; - t.is_utc = 0; t.zone = 0; return t; @@ -2106,8 +2105,7 @@ t.second = datetime.time().second(); t.is_date = 0; - t.zone = 0; // zone is NOT set - t.is_utc = datetime.isUtc() ? 1 : 0; + t.zone = datetime.isUtc() ? icaltimezone_get_utc_timezone() : 0; // _dumpIcaltime( t ); @@ -2174,7 +2172,7 @@ } KTimeZone ktz; - if ( !t.is_utc ) { + if ( !icaltime_is_utc( t ) ) { ktz = dt.timeZone(); } @@ -2207,7 +2205,7 @@ // _dumpIcaltime( t ); KDateTime::Spec timeSpec; - if ( t.is_utc || t.zone == icaltimezone_get_utc_timezone() ) { + if ( icaltime_is_utc( t ) || t.zone == icaltimezone_get_utc_timezone() ) { timeSpec = KDateTime::UTC; // the time zone is UTC utc = false; // no need to convert to UTC } else { --- ./kcal/icaltimezones.cpp.orig 2015-06-24 07:43:14.000000000 -0500 +++ ./kcal/icaltimezones.cpp 2017-12-05 23:04:07.385263815 -0600 @@ -50,7 +50,7 @@ { return QDateTime( QDate( t.year, t.month, t.day ), QTime( t.hour, t.minute, t.second ), - ( t.is_utc ? Qt::UTC : Qt::LocalTime ) ); + ( icaltime_is_utc( t ) ? Qt::UTC : Qt::LocalTime ) ); } // Maximum date for time zone data. @@ -77,7 +77,6 @@ t.second = local.time().second(); t.is_date = 0; t.zone = 0; - t.is_utc = 0; return t; } @@ -787,7 +786,7 @@ case ICAL_LASTMODIFIED_PROPERTY: { icaltimetype t = icalproperty_get_lastmodified(p); - if ( t.is_utc ) { + if ( icaltime_is_utc( t ) ) { data->d->lastModified = toQDateTime( t ); } else { kDebug() << "LAST-MODIFIED not UTC"; @@ -972,7 +971,7 @@ // Convert DTSTART to QDateTime, and from local time to UTC QDateTime localStart = toQDateTime( dtstart ); // local time dtstart.second -= prevOffset; - dtstart.is_utc = 1; + dtstart.zone = icaltimezone_get_utc_timezone(); QDateTime utcStart = toQDateTime( icaltime_normalize( dtstart ) ); // UTC transitions += utcStart; @@ -999,13 +998,13 @@ t.minute = dtstart.minute; t.second = dtstart.second; t.is_date = 0; - t.is_utc = 0; // dtstart is in local time + t.zone = 0; // dtstart is in local time } // RFC2445 states that RDATE must be in local time, // but we support UTC as well to be safe. - if ( !t.is_utc ) { + if ( !icaltime_is_utc( t ) ) { t.second -= prevOffset; // convert to UTC - t.is_utc = 1; + t.zone = icaltimezone_get_utc_timezone(); t = icaltime_normalize( t ); } transitions += toQDateTime( t );