diff --git a/ChangeLog b/ChangeLog index eadc1345d..2d02d5a1f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -44,6 +44,12 @@ (-getPidTagDisplayName:inMemCtx:): return an allocated value, since returned values must be assigned to another parent. +2012-09-04 Francis Lachapelle + + * SoObjects/SOGo/WORequest+SOGo.m (-isMacOSXAddressBookApp): + recognize OS X 10.8 useragent. + (-isICal4): idem. + 2012-08-28 Jean Raby * Scripts/openchange_cleanup.py: diff --git a/NEWS b/NEWS index b482828bc..8039b8bd2 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,10 @@ +1.3.18a (2012-09-04) +------------------- +Bug Fixes + - fixed display of weekly events with no day mask + - fixed parsing of mail headers + - fixed support for OS X 10.8 (Mounting Lion) + 1.3.18 (2012-08-28) ------------------- Enhancements diff --git a/SOPE/NGCards/ChangeLog b/SOPE/NGCards/ChangeLog index 2dca4e482..5758e3f79 100644 --- a/SOPE/NGCards/ChangeLog +++ b/SOPE/NGCards/ChangeLog @@ -1,3 +1,9 @@ +2012-08-31 Francis Lachapelle + + * iCalWeeklyRecurrenceCalculator.m + (-recurrenceRangesWithinCalendarDateRange:): the week counter must + start at 0 when there's no day mask. + 2012-08-22 Francis Lachapelle * iCalWeeklyRecurrenceCalculator.m diff --git a/SOPE/NGCards/iCalWeeklyRecurrenceCalculator.m b/SOPE/NGCards/iCalWeeklyRecurrenceCalculator.m index 140d05531..ad2812e15 100644 --- a/SOPE/NGCards/iCalWeeklyRecurrenceCalculator.m +++ b/SOPE/NGCards/iCalWeeklyRecurrenceCalculator.m @@ -119,10 +119,10 @@ [currentStartDate autorelease]; ranges = [NSMutableArray array]; count = 0; - i = [currentStartDate dayOfWeek]; // Set the first day of the week as Sunday and ignore WKST if (dayMask == nil) { + i = 0; while ([currentStartDate compare: endDate] == NSOrderedAscending || [currentStartDate compare: endDate] == NSOrderedSame) { @@ -147,6 +147,7 @@ { NGCalendarDateRange *r; + i = [currentStartDate dayOfWeek]; // Set the first day of the week as Sunday and ignore WKST while ([currentStartDate compare: endDate] == NSOrderedAscending || [currentStartDate compare: endDate] == NSOrderedSame) { @@ -175,7 +176,7 @@ if (isRecurrence) { - count++; + count++; if (repeatCount > 0 && count > repeatCount) break; currentEndDate = [currentStartDate addTimeInterval: [firstRange duration]]; diff --git a/SoObjects/SOGo/WORequest+SOGo.m b/SoObjects/SOGo/WORequest+SOGo.m index b972f22e2..d554bd5a0 100644 --- a/SoObjects/SOGo/WORequest+SOGo.m +++ b/SoObjects/SOGo/WORequest+SOGo.m @@ -136,21 +136,32 @@ } // -// sogod[22188] -[WEClientCapabilities initWithRequest:]: Unknown WebClient: user-agent='CalendarStore/5.0.1 (1139.14); iCal/5.0.1 (1547.4); Mac OS X/10.7.2 (11C74)' -// +// CalendarStore/5.0.1 (1139.14); iCal/5.0.1 (1547.4); Mac OS X/10.7.2 (11C74) +// CalendarStore/5.0.3 (1204.1); iCal/5.0.3 (1605.3); Mac OS X/10.7.4 (11E53) +// Mac OS X/10.8 (12A269) Calendar/1639 +// Mac OS X/10.8 (12A269) CalendarAgent/47 +// Mac OS X/10.8.1 (12B19) CalendarAgent/47 // - (BOOL) isICal4 { return ([self isAppleDAVWithSubstring: @"iCal/4."] || [self isAppleDAVWithSubstring: @"iCal/5."] - || [self isAppleDAVWithSubstring: @"CoreDAV/"]); + || [self isAppleDAVWithSubstring: @"CoreDAV/"] + || [self isAppleDAVWithSubstring: @"Calendar/"] + || [self isAppleDAVWithSubstring: @"CalendarAgent/"]); } // -// Starting from 10.7, we see something like: +// For 10.7, we see: // -// sogod[27330] -[WEClientCapabilities initWithRequest:]: Unknown WebClient: user-agent='AddressBook/6.1 (1062) CardDAVPlugin/196 CFNetwork/520.2.5 Mac_OS_X/10.7.2 (11C74)' +// AddressBook/6.1 (1062) CardDAVPlugin/196 CFNetwork/520.2.5 Mac_OS_X/10.7.2 (11C74) +// AddressBook/6.1.2 (1090) CardDAVPlugin/200 CFNetwork/520.4.3 Mac_OS_X/10.7.4 (11E53) +// +// For 10.8, we see: +// +// Mac OS X/10.8 (12A269) AddressBook/1143 +// Mac OS X/10.8.1 (12B19) AddressBook/1143 // - (BOOL) isMacOSXAddressBookApp { @@ -159,9 +170,12 @@ cc = [self clientCapabilities]; - b = [[cc userAgent] rangeOfString: @"CFNetwork"].location != NSNotFound && - ([[cc userAgent] rangeOfString: @"Darwin"].location != NSNotFound || - [[cc userAgent] rangeOfString: @"AddressBook"].location != NSNotFound); + b = [[cc userAgent] rangeOfString: @"CFNetwork"].location != NSNotFound + && [[cc userAgent] rangeOfString: @"Darwin"].location != NSNotFound + || ( [[cc userAgent] rangeOfString: @"CFNetwork"].location != NSNotFound + || [[cc userAgent] rangeOfString: @"Mac OS X"].location != NSNotFound ) + && [[cc userAgent] rangeOfString: @"AddressBook"].location != NSNotFound; + return b; }