Monotone-Parent: 7673d0874bfab0e145fb002673765af736eb602a

Monotone-Revision: ac841eb2b94bbfe80bea0191f70da349cc60a700

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-12-17T20:24:07
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2007-12-17 20:24:07 +00:00
parent c493575541
commit b3679212bb
8 changed files with 126 additions and 103 deletions
@@ -1,5 +1,5 @@
<#IsSubject>Rendez-vous du <#OldAptStartDate /> à <#OldAptStartTime /> modifié</#IsSubject>
<#IsBody>
La réunion qui devait se dérouler le <#OldAptStartDate /> à <#OldAptStartTime /> est maintenant prévue le <#NewAptStartDate /> à <#NewAptStartTime />.
Vous êtes invité à accepter ou refuser de participer à la réunion pour cette nouvelle date à l'adresse <#HomePageURL />.
Vous êtes invité à accepter ou refuser de participer à la réunion pour cette nouvelle date à l'adresse <#HomePageURL />.
</#IsBody>
+1
View File
@@ -53,6 +53,7 @@
- (NSString *) bodyPartName;
- (NSArray *) bodyPartPath;
- (NSString *) bodyPartIdentifier;
- (NSString *) filename;
/* part info */
+48 -36
View File
@@ -73,9 +73,9 @@ static BOOL debugOn = NO;
- (void) dealloc
{
[self->partInfo release];
[self->identifier release];
[self->pathToPart release];
[partInfo release];
[identifier release];
[pathToPart release];
[super dealloc];
}
@@ -108,8 +108,8 @@ static BOOL debugOn = NO;
NSMutableArray *p;
id obj;
if (self->pathToPart != nil)
return [self->pathToPart isNotNull] ? self->pathToPart : nil;
if (pathToPart != nil)
return [pathToPart isNotNull] ? pathToPart : nil;
p = [[NSMutableArray alloc] initWithCapacity:8];
for (obj = self; [obj isKindOfClass:[SOGoMailBodyPart class]];
@@ -117,18 +117,18 @@ static BOOL debugOn = NO;
[p insertObject:[obj bodyPartName] atIndex:0];
}
self->pathToPart = [p copy];
pathToPart = [p copy];
[p release];
return self->pathToPart;
return pathToPart;
}
- (NSString *)bodyPartIdentifier {
if (self->identifier != nil)
return [self->identifier isNotNull] ? self->identifier : nil;
if (identifier != nil)
return [identifier isNotNull] ? identifier : nil;
self->identifier =
identifier =
[[[self bodyPartPath] componentsJoinedByString:@"."] copy];
return self->identifier;
return identifier;
}
- (NSURL *)imap4URL {
@@ -139,12 +139,12 @@ static BOOL debugOn = NO;
/* part info */
- (id)partInfo {
if (self->partInfo != nil)
return [self->partInfo isNotNull] ? self->partInfo : nil;
if (partInfo != nil)
return [partInfo isNotNull] ? partInfo : nil;
self->partInfo =
partInfo =
[[[self mailObject] lookupInfoForBodyPart:[self bodyPartPath]] retain];
return self->partInfo;
return partInfo;
}
/* name lookup */
@@ -160,25 +160,40 @@ static BOOL debugOn = NO;
return [clazz objectWithName: _key inContainer: self];
}
- (NSString *) filename
{
NSString *filename;
NSDictionary *parameters;
[self partInfo];
filename = [[partInfo objectForKey: @"parameterList"]
objectForKey: @"name"];
if (!filename)
{
parameters = [[partInfo objectForKey: @"disposition"]
objectForKey: @"parameterList"];
filename = [parameters objectForKey: @"filename"];
}
return filename;
}
/* We overwrite the super's class method in order to make sure
we aren't dealing with our actual filename as the _key. That
could lead to problems if we weren't doing this as our filename
could start with a digit, leading to a wrong assumption in
the super class
*/
- (BOOL)isBodyPartKey:(NSString *)_key inContext:(id)_ctx
{
NSString *s;
s = [[[self partInfo] objectForKey: @"parameterList"] objectForKey: @"name"];
// - (BOOL)isBodyPartKey:(NSString *)_key inContext:(id)_ctx
// {
// NSString *s;
if (!s)
s = [[[[self partInfo] objectForKey: @"disposition"] objectForKey: @"parameterList"] objectForKey: @"filename"];
if (s && [s isEqualToString: _key]) return NO;
// s = [self filename];
// if (s && [s isEqualToString: _key]) return NO;
return [super isBodyPartKey: _key inContext: _ctx];
}
// return [super isBodyPartKey: _key inContext: _ctx];
// }
- (id) lookupName: (NSString *) _key
inContext: (id) _ctx
@@ -355,16 +370,13 @@ static BOOL debugOn = NO;
[r setHeader: [NSString stringWithFormat:@"%d", [data length]]
forKey: @"content-length"];
if (asAttachment) {
fileName = [[[self partInfo] objectForKey: @"parameterList"] objectForKey: @"name"];
if (!fileName)
fileName = [[[[self partInfo] objectForKey: @"disposition"]
objectForKey: @"parameterList"]
objectForKey: @"filename"];
if ([fileName length])
[r setHeader: [NSString stringWithFormat: @"attachment; filename=%@", fileName]
forKey: @"content-disposition"];
}
if (asAttachment)
{
fileName = [self filename];
if ([fileName length])
[r setHeader: [NSString stringWithFormat: @"attachment; filename=%@", fileName]
forKey: @"content-disposition"];
}
if ((etag = [self davEntityTag]) != nil)
[r setHeader:etag forKey:@"etag"];