From 896d14d8c0309a798aa02e15fb165c7d1431c7e1 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Thu, 20 Dec 2018 13:37:59 -0500 Subject: [PATCH] (fix) better handle timezone changes (fixes #4624) --- ActiveSync/iCalTimeZone+ActiveSync.m | 26 ++++++++++++++++++++++---- NEWS | 1 + 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/ActiveSync/iCalTimeZone+ActiveSync.m b/ActiveSync/iCalTimeZone+ActiveSync.m index 117c0c06d..e92fc6732 100644 --- a/ActiveSync/iCalTimeZone+ActiveSync.m +++ b/ActiveSync/iCalTimeZone+ActiveSync.m @@ -83,10 +83,28 @@ struct SYSTEMTIME { tzData->wDay = ([mask firstOccurrence] == -1) ? 5 : [mask firstOccurrence]; dateValue = [self startDate]; - tzData->wHour = [dateValue hourOfDay]; - tzData->wMinute = [dateValue minuteOfHour]; - tzData->wSecond = [dateValue secondOfMinute]; - tzData->wMilliseconds = 0; + + if (![dateValue hourOfDay]) + { + if ([mask firstDay]-1 < 0) + tzData->wDayOfWeek = 6; + else + tzData->wDayOfWeek = [mask firstDay]-1; + + tzData->wHour = 23; + tzData->wMinute = 59; + tzData->wSecond = 59; + tzData->wMilliseconds = 999; + } + else + { + tzData->wDayOfWeek = [mask firstDay]; + + tzData->wHour = [dateValue hourOfDay]; + tzData->wMinute = [dateValue minuteOfHour]; + tzData->wSecond = [dateValue secondOfMinute]; + tzData->wMilliseconds = 0; + } } } diff --git a/NEWS b/NEWS index 1cbf5e0f3..e07dc93b2 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,7 @@ Bug fixes - [eas] fix search on for Outlook application (#4605 and #4607) - [eas] better handle bogus DTStart values - [eas] support for basic UserInformation queries (#4614) + - [eas] better handle timezone changes (#4624) 4.0.1 (2018-07-10) ------------------