From 912b9d1c040d0eb298d7fef868b2fb1a5241436a Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Mon, 10 Dec 2007 21:15:32 +0000 Subject: [PATCH] Monotone-Parent: 73611f6bef70fd39e1aa66a4aae311b19f594980 Monotone-Revision: 2fb05a09608f9836ad74855b6a11b662b983d5a0 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-12-10T21:15:32 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 7 +++++ UI/MailPartViewers/UIxMailPartHTMLViewer.m | 31 ++++++++++++++-------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9d9c6ca6f..3bb999112 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-12-10 Wolfgang Sourdeau + + * UI/MailPartViewers/UIxMailPartHTMLViewer.m + ([UIxMailPartHTMLViewer -flatContentAsString]): when in + UIxMailPartAlternative, scan the filenames of potential cid at the + same level as our parent. + 2007-12-07 Wolfgang Sourdeau * Main/SOGo.m ([SOGo -run]): the table creation script now have a diff --git a/UI/MailPartViewers/UIxMailPartHTMLViewer.m b/UI/MailPartViewers/UIxMailPartHTMLViewer.m index 835de0700..50f79391d 100644 --- a/UI/MailPartViewers/UIxMailPartHTMLViewer.m +++ b/UI/MailPartViewers/UIxMailPartHTMLViewer.m @@ -432,17 +432,26 @@ andBaseURL: (NSString *) url intoDictionary: (NSMutableDictionary *) attachmentIds { - NSString *bodyId; + NSString *bodyId, *filename; + NSMutableString *attachmentURL; bodyId = [part objectForKey: @"bodyId"]; if ([bodyId length] > 0) { + filename = [[part objectForKey: @"parameterList"] objectForKey: @"name"]; + if (!filename) + filename = [[[part objectForKey: @"disposition"] + objectForKey: @"parameterList"] + objectForKey: @"filename"]; if ([bodyId hasPrefix: @"<"]) bodyId = [bodyId substringFromIndex: 1]; if ([bodyId hasSuffix: @">"]) bodyId = [bodyId substringToIndex: [bodyId length] - 1]; - [attachmentIds setObject: [url stringByAppendingFormat: @"/%d", count] - forKey: bodyId]; + attachmentURL = [NSMutableString stringWithString: url]; + [attachmentURL appendFormat: @"/%d", count]; + if ([filename length]) + [attachmentURL appendFormat: @"/%@", filename]; + [attachmentIds setObject: attachmentURL forKey: bodyId]; } } @@ -451,7 +460,7 @@ NSMutableDictionary *attachmentIds; UIxMailPartViewer *parent; unsigned int count, max; - NSMutableString *url; +// NSMutableString *url; NSString *baseURL; NSArray *parts; @@ -463,18 +472,18 @@ isEqualToString: @"UIxMailPartAlternativeViewer"]) { baseURL = [[self clientObject] baseURLInContext: context]; - url = [NSMutableString new]; - [url appendString: baseURL]; - [url appendFormat: @"/%@", [partPath componentsJoinedByString: @"/"]]; - [url deleteCharactersInRange: NSMakeRange([url length] - 2, 2)]; - parts = [[parent bodyInfo] objectForKey: @"parts"]; +// url = [NSMutableString new]; +// [url appendString: baseURL]; +// [url appendFormat: @"/%@", [partPath componentsJoinedByString: @"/"]]; +// [url deleteCharactersInRange: NSMakeRange([url length] - 4, 4)]; + parts = [[[parent parent] bodyInfo] objectForKey: @"parts"]; max = [parts count]; for (count = 0; count < max; count++) [self _convertReferencesForPart: [parts objectAtIndex: count] withCount: count + 1 - andBaseURL: url + andBaseURL: baseURL intoDictionary: attachmentIds]; - [url release]; +// [url release]; } return attachmentIds;