Monotone-Parent: 1900d82b81c570a73d4db548a566ed09b57ee43a

Monotone-Revision: b0de6c606ce6f295a8956a42ed0f0bc3b6e3cca3

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2012-03-30T19:58:16
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2012-03-30 19:58:16 +00:00
parent a4b083eb1e
commit 4f148bafc6
5 changed files with 75 additions and 52 deletions

View File

@@ -20,7 +20,9 @@
* Boston, MA 02111-1307, USA.
*/
#import <Foundation/NSCalendarDate.h>
#import <Foundation/NSDictionary.h>
#import <Foundation/NSTimeZone.h>
#import <NGExtensions/NSObject+Logs.h>
#import <SOGo/SOGoObject.h>
#import <SOGo/SOGoUser.h>
@@ -432,16 +434,37 @@ static Class NSExceptionK, MAPIStoreFolderK;
struct SPropValue *cValue;
NSUInteger counter;
NSMutableDictionary *newProperties;
NSTimeZone *tz;
NSInteger tzOffset;
id value;
tz = nil;
newProperties = [NSMutableDictionary dictionaryWithCapacity: aRow->cValues];
for (counter = 0; counter < aRow->cValues; counter++)
{
cValue = aRow->lpProps + counter;
if ((cValue->ulPropTag & 0xfff) == PT_STRING8)
[self warnWithFormat:
@"attempting to set string property as PR_STRING8: %.8x",
cValue->ulPropTag];
[newProperties setObject: NSObjectFromSPropValue (cValue)
value = NSObjectFromSPropValue (cValue);
switch (cValue->ulPropTag & 0xffff)
{
case PT_STRING8:
case PT_MV_STRING8:
[self warnWithFormat:
@"attempting to set string property as PR_STRING8: %.8x",
cValue->ulPropTag];
break;
case PT_SYSTIME:
if (!tz)
{
tz = [[self userContext] timeZone];
tzOffset = -[tz secondsFromGMT];
}
value = [value addYear: 0 month: 0 day: 0
hour: 0 minute: 0 second: tzOffset];
[value setTimeZone: tz];
break;
}
[newProperties setObject: value
forKey: MAPIPropertyKey (cValue->ulPropTag)];
}