oc-calendar: Fix weekly recurring events exported to Outlook from SOGo

SOGo does not create BYDAY mask in weekly recurrence, so
we have to guess it from the start date's day of week.

In other case, the event is not exported to Outlook and it
says that is corrupted.
This commit is contained in:
Enrique J. Hernández Blasco
2015-03-10 00:36:36 +01:00
committed by Julio García
parent 6f44ec42c1
commit fb4c3a4730
2 changed files with 15 additions and 4 deletions
+14 -4
View File
@@ -325,15 +325,25 @@
rp->RecurFrequency = RecurFrequency_Weekly;
rp->PatternType = PatternType_Week;
rp->Period = repeatInterval;
dayOfWeek = [startDate dayOfWeek];
mask = 0;
byDayMask = [self byDayMask];
for (count = 0; count < 7; count++)
if ([byDayMask occursOnDay: count])
mask |= 1 << count;
if (byDayMask)
{
for (count = 0; count < 7; count++)
if ([byDayMask occursOnDay: count])
mask |= 1 << count;
}
else
{
/* Set the recurrence pattern using start date */
mask |= 1 << dayOfWeek;
}
rp->PatternTypeSpecific.WeekRecurrencePattern = mask;
/* FirstDateTime */
dayOfWeek = [startDate dayOfWeek];
if (dayOfWeek)
beginOfWeek = [startDate dateByAddingYears: 0 months: 0
days: -dayOfWeek