propagate from branch 'ca.inverse.sogo.1_3_15' (head d8a0de208631b406144e740ab09b4e5a92f0e66c)

to branch 'ca.inverse.sogo' (head 356e7649cb18120413fdf16e371d74fbcd28c3e1)

Monotone-Parent: 356e7649cb18120413fdf16e371d74fbcd28c3e1
Monotone-Parent: d8a0de208631b406144e740ab09b4e5a92f0e66c
Monotone-Revision: aaa516c8e0f7391e21eda557b30eb4c3c80b14bc

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2012-04-25T20:56:41
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2012-04-25 20:56:41 +00:00
3 changed files with 34 additions and 21 deletions
+7
View File
@@ -1,3 +1,10 @@
2012-04-25 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/Mailer/SOGoDraftObject.m
(-bodyPartForAttachmentWithName:): force conversion of rfc822
content to quoted-printable, since it would otherwise risk passing
8bit data via the "APPEND" command.
2012-04-24 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* UI/WebServerResources/SchedulerUI.js (updateCalendarStatus): if
+8 -1
View File
@@ -4,10 +4,17 @@ New Features
- Sources address books are now exposed in Apple and iOS AddressBook app
using the "directory gateway" extension of CardDAV
- sogo-tool: new "expire-sessions" command
- the all-day events container is now resized progressively
- added handling of "BYSETPOS" for "BYDAY" sets in monthly recurrence
calculator
- new domain default (SOGoMailCustomFromEnabled) to allow users to change
their "from" and "reply-to" headers
Enhancements
- Updated Spanish (Argentina) translation
- updated Spanish (Argentina) translation
- updated CKEditor to version 3.6.3
- automatically add/remove attendees to recurrence exceptions when they are
being added to the master event
Bug Fixes
- fixed wrong date validation in preferences module affecting French users
+19 -20
View File
@@ -1119,7 +1119,7 @@ static NSString *userAgent = nil;
NGMimeBodyPart *bodyPart;
NSString *s;
NSData *content;
BOOL attachAsString, is7bit;
BOOL attachAsString, force7bitText;
NSString *p;
id body;
@@ -1134,7 +1134,7 @@ static NSString *userAgent = nil;
return nil;
}
attachAsString = NO;
is7bit = NO;
force7bitText = NO;
/* prepare header of body part */
@@ -1145,7 +1145,7 @@ static NSString *userAgent = nil;
if ([s hasPrefix: @"text/plain"] || [s hasPrefix: @"text/html"])
attachAsString = YES;
else if ([s hasPrefix: @"message/rfc822"])
is7bit = YES;
force7bitText = YES;
}
if ((s = [self contentDispositionForAttachmentWithName:_name]))
{
@@ -1163,8 +1163,8 @@ static NSString *userAgent = nil;
content = [[NSData alloc] initWithContentsOfMappedFile:p];
s = [[NSString alloc] initWithData:content
encoding:[NSString defaultCStringEncoding]];
s = [[NSString alloc] initWithData: content
encoding: [NSString defaultCStringEncoding]];
if (s != nil) {
body = s;
[content release]; content = nil;
@@ -1176,16 +1176,6 @@ static NSString *userAgent = nil;
content = nil;
}
}
else if (is7bit) {
/*
Note: Apparently NGMimeFileData objects are not processed by the MIME
generator!
*/
body = [[NGMimeFileData alloc] initWithPath:p removeFile:NO];
[map setObject: @"7bit" forKey: @"content-transfer-encoding"];
[map setObject:[NSNumber numberWithInt:[body length]]
forKey: @"content-length"];
}
else {
/*
Note: in OGo this is done in LSWImapMailEditor.m:2477. Apparently
@@ -1194,12 +1184,21 @@ static NSString *userAgent = nil;
NSData *encoded;
content = [[NSData alloc] initWithContentsOfMappedFile:p];
encoded = [content dataByEncodingBase64];
[content release]; content = nil;
[map setObject: @"base64" forKey: @"content-transfer-encoding"];
if (force7bitText)
{
encoded = [content dataByEncodingQuotedPrintable];
[map setObject: @"quoted-printable"
forKey: @"content-transfer-encoding"];
}
else
{
encoded = [content dataByEncodingBase64];
[map setObject: @"base64" forKey: @"content-transfer-encoding"];
}
[map setObject:[NSNumber numberWithInt:[encoded length]]
forKey: @"content-length"];
[content release]; content = nil;
/* Note: the -init method will create a temporary file! */
body = [[NGMimeFileData alloc] initWithBytes:[encoded bytes]
@@ -1390,7 +1389,7 @@ static NSString *userAgent = nil;
[map setObject: [self _quoteSpecials: from] forKey: @"from"];
}
if (replyTo = [headers objectForKey: @"reply-to"])
if ((replyTo = [headers objectForKey: @"reply-to"]))
[map setObject: replyTo forKey: @"reply-to"];
if (inReplyTo)