From d26df456e52d5cd41a214e43830939a200a330ab Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Mon, 14 Jan 2013 14:24:06 -0500 Subject: [PATCH] Fix for bug #2123. --- SoObjects/Mailer/SOGoMailObject+Draft.m | 27 +++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/SoObjects/Mailer/SOGoMailObject+Draft.m b/SoObjects/Mailer/SOGoMailObject+Draft.m index 40eb060e5..ff74c8e01 100644 --- a/SoObjects/Mailer/SOGoMailObject+Draft.m +++ b/SoObjects/Mailer/SOGoMailObject+Draft.m @@ -257,6 +257,33 @@ filename = [[disposition objectForKey: @"parameterList"] objectForKey: @"filename"]; + // We might have something like filename*=UTF-8''foobar + // See RFC2231 for details. If it was folded before, it will + // be unfolded when we get here. + if (!filename) + { + filename = [[disposition objectForKey: @"parameterList"] + objectForKey: @"filename*"]; + + if (filename) + { + NSRange r; + + filename = [filename stringByUnescapingURL]; + + // We skip up to the language + r = [filename rangeOfString: @"'"]; + + if (r.length) + { + r = [filename rangeOfString: @"'" options: 0 range: NSMakeRange(r.location+1, [filename length]-r.location-1)]; + + if (r.length) + filename = [filename substringFromIndex: r.location+1]; + } + } + } + mimeType = [NSString stringWithFormat: @"%@/%@", [part objectForKey: @"type"], [part objectForKey: @"subtype"]];