aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xbuild-mac/mailcore2.xcodeproj/project.pbxproj1178
-rwxr-xr-xexample/ios/iOS UI Test/iOS UI Test/MCTMsgViewController.mm4
-rw-r--r--example/mac/macExample/macExample/MCTMsgListViewController.m2
-rw-r--r--example/mac/macExample/macExample/MCTMsgViewController.m4
-rw-r--r--resources/providers.json164
-rwxr-xr-xscripts/build-mailcore2-ios.sh19
-rwxr-xr-xscripts/get-prebuilt.sh4
-rwxr-xr-xscripts/prepare-ctemplate-ios.sh5
-rwxr-xr-xscripts/prepare-icu4c-ios.sh22
-rwxr-xr-xscripts/prepare-icu4c-macos.sh2
-rwxr-xr-xscripts/prepare-libetpan-ios.sh7
-rwxr-xr-xscripts/prepare-libetpan-macos.sh2
-rwxr-xr-xscripts/prepare-tidy-ios.sh7
-rwxr-xr-xscripts/prepare.sh15
-rwxr-xr-xscripts/travis/script.sh20
-rwxr-xr-xsrc/async/imap/MCIMAPAsyncSession.cc54
-rwxr-xr-xsrc/async/imap/MCIMAPAsyncSession.h10
-rw-r--r--src/async/imap/MCIMAPFetchContentOperation.cc27
-rw-r--r--src/async/imap/MCIMAPFetchContentOperation.h4
-rw-r--r--src/async/imap/MCIMAPFolderInfoOperation.cc9
-rw-r--r--src/async/imap/MCIMAPFolderInfoOperation.h4
-rw-r--r--src/async/imap/MCIMAPStoreFlagsOperation.cc19
-rw-r--r--src/async/imap/MCIMAPStoreFlagsOperation.h4
-rw-r--r--src/async/imap/MCIMAPStoreLabelsOperation.cc19
-rw-r--r--src/async/imap/MCIMAPStoreLabelsOperation.h4
-rw-r--r--src/core/abstract/MCAbstractPart.cc51
-rw-r--r--src/core/abstract/MCAbstractPart.h7
-rw-r--r--src/core/abstract/MCMessageConstants.h2
-rw-r--r--src/core/abstract/MCMessageHeader.cc35
-rw-r--r--src/core/abstract/MCMessageHeader.h1
-rw-r--r--src/core/basetypes/MCIterator.h4
-rw-r--r--src/core/basetypes/MCObject.cc7
-rw-r--r--src/core/basetypes/MCOperationQueue.cc15
-rw-r--r--src/core/basetypes/MCString.cc23
-rw-r--r--src/core/imap/MCIMAPMessage.cc16
-rw-r--r--src/core/imap/MCIMAPMessage.h4
-rw-r--r--src/core/imap/MCIMAPSearchExpression.cc8
-rw-r--r--src/core/imap/MCIMAPSearchExpression.h1
-rwxr-xr-xsrc/core/imap/MCIMAPSession.cc255
-rwxr-xr-xsrc/core/imap/MCIMAPSession.h26
-rw-r--r--src/core/pop/MCPOPSession.cc2
-rw-r--r--src/core/renderer/MCDateFormatter.cc6
-rw-r--r--src/core/rfc822/MCAttachment.cc63
-rw-r--r--src/core/rfc822/MCAttachment.h7
-rw-r--r--src/core/rfc822/MCMessageBuilder.cc312
-rw-r--r--src/core/rfc822/MCMessageBuilder.h13
-rw-r--r--src/core/rfc822/MCMessageParser.cc9
-rw-r--r--src/core/smtp/MCSMTPSession.cc2
-rw-r--r--src/objc/abstract/MCOAbstractPart.h12
-rw-r--r--src/objc/abstract/MCOAbstractPart.mm20
-rw-r--r--src/objc/abstract/MCOConstants.h7
-rw-r--r--src/objc/imap/MCOIMAPFetchMessagesOperation.mm3
-rw-r--r--src/objc/imap/MCOIMAPFolderInfo.h3
-rw-r--r--src/objc/imap/MCOIMAPFolderInfo.m2
-rw-r--r--src/objc/imap/MCOIMAPFolderInfoOperation.mm1
-rw-r--r--src/objc/imap/MCOIMAPFolderStatus.h2
-rw-r--r--src/objc/imap/MCOIMAPMessage.h4
-rw-r--r--src/objc/imap/MCOIMAPMessage.mm1
-rw-r--r--src/objc/imap/MCOIMAPSearchExpression.h11
-rw-r--r--src/objc/imap/MCOIMAPSearchExpression.mm5
-rwxr-xr-xsrc/objc/imap/MCOIMAPSession.h263
-rwxr-xr-xsrc/objc/imap/MCOIMAPSession.mm156
-rw-r--r--src/objc/nntp/MCONNTPSession.mm1
-rw-r--r--src/objc/pop/MCOPOPSession.mm1
-rw-r--r--src/objc/rfc822/MCOAttachment.h12
-rw-r--r--src/objc/rfc822/MCOAttachment.mm19
-rw-r--r--src/objc/rfc822/MCOMessageBuilder.h18
-rw-r--r--src/objc/rfc822/MCOMessageBuilder.mm15
-rw-r--r--src/objc/smtp/MCOSMTPSession.h10
-rw-r--r--src/objc/smtp/MCOSMTPSession.mm1
-rw-r--r--src/objc/utils/NSError+MCO.mm3
-rw-r--r--tests/test-all.mm1
72 files changed, 2652 insertions, 397 deletions
diff --git a/build-mac/mailcore2.xcodeproj/project.pbxproj b/build-mac/mailcore2.xcodeproj/project.pbxproj
index d7df7fc0..0f011a20 100755
--- a/build-mac/mailcore2.xcodeproj/project.pbxproj
+++ b/build-mac/mailcore2.xcodeproj/project.pbxproj
@@ -7,6 +7,515 @@
objects = {
/* Begin PBXBuildFile section */
+ 27780C2E19CF9CD100C77E44 /* MCOFramework.mm in Sources */ = {isa = PBXBuildFile; fileRef = C6BD28A9170BDB6B00A91AC1 /* MCOFramework.mm */; };
+ 27780C3219CF9CD100C77E44 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C6ED6D1917A1919500A4A14C /* Security.framework */; };
+ 27780C3619CF9CD100C77E44 /* providers.json in Resources */ = {isa = PBXBuildFile; fileRef = 84AF9E7D172DBAF600E60AA3 /* providers.json */; };
+ 27780C3D19CF9D9800C77E44 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27780C3C19CF9D9800C77E44 /* CFNetwork.framework */; };
+ 27780C3E19CF9DDF00C77E44 /* libMailCore-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C6BA2C191705F4E6003F0E9E /* libMailCore-ios.a */; };
+ 27780D3619CFA32900C77E44 /* MCOFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = C6BD28A8170BDB6B00A91AC1 /* MCOFramework.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D3719CFA32900C77E44 /* MCOPOP.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BFB170781BC00882C15 /* MCOPOP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D3819CFA32900C77E44 /* MCOPOPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BD41706903500882C15 /* MCOPOPSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D3919CFA32900C77E44 /* MCOPOPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BE01706905600882C15 /* MCOPOPOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D3A19CFA32900C77E44 /* MCOPOPOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C60136951776C31000A5AF45 /* MCOPOPOperation+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780D3B19CFA32900C77E44 /* MCOPOPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BD81706903E00882C15 /* MCOPOPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D3C19CFA32900C77E44 /* MCOPOPFetchMessageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BDC1706904800882C15 /* MCOPOPFetchMessageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D3D19CFA32900C77E44 /* MCOPOPFetchMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BE41706906C00882C15 /* MCOPOPFetchMessagesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D3E19CFA32900C77E44 /* MCOPOPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84B639EF17F282B4003B5BA2 /* MCOPOPNoopOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D3F19CFA32900C77E44 /* MCOPOPMessageInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BFE1707CEE400882C15 /* MCOPOPMessageInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4019CFA32900C77E44 /* MCOSMTP.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BE81706A6B300882C15 /* MCOSMTP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4119CFA32900C77E44 /* MCOSMTPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BBD17068E5E00882C15 /* MCOSMTPSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4219CFA32900C77E44 /* MCOSMTPSendOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BC117068E9500882C15 /* MCOSMTPSendOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4319CFA32900C77E44 /* MCOSMTPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8416A99B17F284F400B3C7DA /* MCOSMTPNoopOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4419CFA32900C77E44 /* MCOSMTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BC517068EB000882C15 /* MCOSMTPOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4519CFA32900C77E44 /* MCOSMTPOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C60136941776B96600A5AF45 /* MCOSMTPOperation+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780D4619CFA32900C77E44 /* MCONNTP.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73761199BFF80005124E5 /* MCONNTP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4719CFA32900C77E44 /* MCONNTPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73762199BFFC7005124E5 /* MCONNTPSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4819CFA32900C77E44 /* MCONNTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73766199BFFFC005124E5 /* MCONNTPOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4919CFA32900C77E44 /* MCONNTPOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7376A199C0014005124E5 /* MCONNTPOperation+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780D4A19CFA32900C77E44 /* MCONNTPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7376B199C005A005124E5 /* MCONNTPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4B19CFA32900C77E44 /* MCONNTPFetchArticleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7376F199C007E005124E5 /* MCONNTPFetchArticleOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4C19CFA32900C77E44 /* MCONNTPListNewsgroupsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73789199C0260005124E5 /* MCONNTPListNewsgroupsOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4D19CFA32900C77E44 /* MCONNTPFetchArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73773199C00AB005124E5 /* MCONNTPFetchArticlesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4E19CFA32900C77E44 /* MCONNTPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7378D199C02A8005124E5 /* MCONNTPDisconnectOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D4F19CFA32900C77E44 /* MCONNTPGroupInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73791199C0511005124E5 /* MCONNTPGroupInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5019CFA32900C77E44 /* MCOAbstract.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23616EDAA2B000DB34C /* MCOAbstract.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5119CFA32900C77E44 /* MCOAbstractMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23316EDAA17000DB34C /* MCOAbstractMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5219CFA32900C77E44 /* MCOAbstractMessage+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C623C58A16FD8C22001BBEFC /* MCOAbstractMessage+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780D5319CFA32900C77E44 /* MCOAbstractMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23716EDAA3F000DB34C /* MCOAbstractMessagePart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5419CFA32900C77E44 /* MCOAbstractMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23A16EDAAC7000DB34C /* MCOAbstractMultipart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5519CFA32900C77E44 /* MCOAbstractPart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23D16EDAAE0000DB34C /* MCOAbstractPart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5619CFA32900C77E44 /* MCOAbstractPart+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB24F16FBEF0E000DB34C /* MCOAbstractPart+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780D5719CFA32A00C77E44 /* MCOAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB24016EDAAF3000DB34C /* MCOAddress.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5819CFA32A00C77E44 /* MCOAddress+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB24616EEF89D000DB34C /* MCOAddress+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780D5919CFA32A00C77E44 /* MCOConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26D16FD63F6000DB34C /* MCOConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5A19CFA32A00C77E44 /* MCOMessageHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB24316EDAAFD000DB34C /* MCOMessageHeader.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5B19CFA32A00C77E44 /* MCOMessageHeader+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB24E16EEFFE2000DB34C /* MCOMessageHeader+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780D5C19CFA32A00C77E44 /* MCOHTMLRendererDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = C623C58B16FE52C0001BBEFC /* MCOHTMLRendererDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5D19CFA32A00C77E44 /* MCOHTMLRendererIMAPDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9FF16FED7AB00D9DABD /* MCOHTMLRendererIMAPDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5E19CFA32A00C77E44 /* MCOAbstractMessageRendererCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9FD16FED18500D9DABD /* MCOAbstractMessageRendererCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D5F19CFA32A00C77E44 /* MCOIMAP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25416FD32A0000DB34C /* MCOIMAP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6019CFA32A00C77E44 /* MCOIMAPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = F8EA941416BAED6E0011AC6F /* MCOIMAPSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6119CFA32A00C77E44 /* MCOIMAPFolder.h in Headers */ = {isa = PBXBuildFile; fileRef = C623C59116FE750D001BBEFC /* MCOIMAPFolder.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6219CFA32A00C77E44 /* MCOIMAPMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9E016FEA1E800D9DABD /* MCOIMAPMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6319CFA32A00C77E44 /* MCOIMAPMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9E316FEA27500D9DABD /* MCOIMAPMessagePart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6419CFA32A00C77E44 /* MCOIMAPMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9E616FEA28600D9DABD /* MCOIMAPMultipart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6519CFA32A00C77E44 /* MCOIMAPNamespace.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9E916FEA3B500D9DABD /* MCOIMAPNamespace.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6619CFA32A00C77E44 /* MCOIMAPNamespaceItem.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9EC16FEA3C400D9DABD /* MCOIMAPNamespaceItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6719CFA32A00C77E44 /* MCOIMAPPart.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9EF16FEA3D700D9DABD /* MCOIMAPPart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6819CFA32A00C77E44 /* MCOIMAPFolderInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F9D17016EA00073032E /* MCOIMAPFolderInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6919CFA32A00C77E44 /* MCOIMAPFetchFoldersOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F87F190816BB62690012652F /* MCOIMAPFetchFoldersOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6A19CFA32A00C77E44 /* MCOIMAPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C623C58D16FE6B45001BBEFC /* MCOIMAPOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6B19CFA32B00C77E44 /* MCOIMAPFolderInfoOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F79170169EE0073032E /* MCOIMAPFolderInfoOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6C19CFA32B00C77E44 /* MCOIMAPBaseOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61FB31702AB2A0073032E /* MCOIMAPBaseOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6D19CFA32B00C77E44 /* MCOIMAPBaseOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C608167F17766FC5001F1018 /* MCOIMAPBaseOperation+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780D6E19CFA32B00C77E44 /* MCOIMAPAppendMessageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F7C170169FB0073032E /* MCOIMAPAppendMessageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D6F19CFA32B00C77E44 /* MCOIMAPCopyMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F7F17016A0D0073032E /* MCOIMAPCopyMessagesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7019CFA32B00C77E44 /* MCOIMAPFetchMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F8217016A200073032E /* MCOIMAPFetchMessagesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7119CFA32B00C77E44 /* MCOIMAPFetchContentOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F8517016AD60073032E /* MCOIMAPFetchContentOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7219CFA32B00C77E44 /* MCOIMAPSearchOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F8817016AE60073032E /* MCOIMAPSearchOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7319CFA32B00C77E44 /* MCOIMAPIdleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F8B17016AFA0073032E /* MCOIMAPIdleOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7419CFA32B00C77E44 /* MCOIMAPFetchNamespaceOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F8E17016B090073032E /* MCOIMAPFetchNamespaceOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7519CFA32B00C77E44 /* MCOIMAPIdentityOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F9117016B250073032E /* MCOIMAPIdentityOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7619CFA32B00C77E44 /* MCOIMAPCapabilityOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F9417016B310073032E /* MCOIMAPCapabilityOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7719CFA32B00C77E44 /* MCOIMAPQuotaOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3C1BDC17ABF306008BBF4C /* MCOIMAPQuotaOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7819CFA32B00C77E44 /* MCOIMAPSearchExpression.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F9717016B460073032E /* MCOIMAPSearchExpression.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7919CFA32C00C77E44 /* MCOIMAPFolderStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EF9AB06175F2EC60027FA3B /* MCOIMAPFolderStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7A19CFA32C00C77E44 /* MCOIMAPFolderStatusOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EF9AB16175F35C60027FA3B /* MCOIMAPFolderStatusOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7B19CFA32C00C77E44 /* MCOIMAPMessageRenderingOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = DA89896B178A47D200F6D90A /* MCOIMAPMessageRenderingOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7C19CFA32C00C77E44 /* MCOIMAPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8416A99F17F2871D00B3C7DA /* MCOIMAPNoopOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7D19CFA32C00C77E44 /* MCOIMAPIdentity.h in Headers */ = {isa = PBXBuildFile; fileRef = C63D316017C92D8300A4D993 /* MCOIMAPIdentity.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7E19CFA32C00C77E44 /* MCOIMAPMultiDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EFFBCA1833334900CFF656 /* MCOIMAPMultiDisconnectOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D7F19CFA32C00C77E44 /* MCOAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25C16FD4377000DB34C /* MCOAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8019CFA32C00C77E44 /* MCOMessageBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25F16FD438F000DB34C /* MCOMessageBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8119CFA32C00C77E44 /* MCOMessageParser.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26216FD43A1000DB34C /* MCOMessageParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8219CFA32C00C77E44 /* MCOMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26516FD43E2000DB34C /* MCOMessagePart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8319CFA32C00C77E44 /* MCOMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26816FD44C2000DB34C /* MCOMultipart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8419CFA32D00C77E44 /* MCORFC822.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26B16FD4C3B000DB34C /* MCORFC822.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8519CFA32D00C77E44 /* MCOObjectWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = C64FF38F16B3C13000F8C162 /* MCOObjectWrapper.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8619CFA32D00C77E44 /* MCOOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25716FD3BC2000DB34C /* MCOOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8719CFA32D00C77E44 /* MCOOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25916FD3BC8000DB34C /* MCOOperation+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780D8819CFA32D00C77E44 /* MCOUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26C16FD62FB000DB34C /* MCOUtils.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8919CFA32D00C77E44 /* NSArray+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EB30FD16B8E50F0091F4F1 /* NSArray+MCO.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8A19CFA32D00C77E44 /* NSData+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D42C1916AE03D6002BB4F9 /* NSData+MCO.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8B19CFA32D00C77E44 /* NSDictionary+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EB30F516B8C9480091F4F1 /* NSDictionary+MCO.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8C19CFA32D00C77E44 /* NSError+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C07AD44B013BB42A240B4F04 /* NSError+MCO.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8D19CFA32D00C77E44 /* NSObject+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EB30FF16B8E6E50091F4F1 /* NSObject+MCO.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8E19CFA32E00C77E44 /* NSString+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D42C1B16AE03D6002BB4F9 /* NSString+MCO.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D8F19CFA32E00C77E44 /* NSValue+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25016FC2846000DB34C /* NSValue+MCO.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9019CFA32E00C77E44 /* MCOIndexSet.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9F216FEAC6C00D9DABD /* MCOIndexSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9119CFA32E00C77E44 /* MCOIndexSet+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CCC5CB16FFF7B50077A5FC /* MCOIndexSet+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780D9219CFA32E00C77E44 /* MCORange.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CCC5C816FFE54F0077A5FC /* MCORange.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9319CFA32E00C77E44 /* NSIndexSet+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C69BA85917DEFCCB00D601B7 /* NSIndexSet+MCO.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9419CFA32E00C77E44 /* NSSet+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C643F490189A3D59007EA2F7 /* NSSet+MCO.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9519CFA32E00C77E44 /* MCOMailProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62B2175324CE006398B9 /* MCOMailProvider.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9619CFA32E00C77E44 /* MCOMailProvidersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62B4175324CE006398B9 /* MCOMailProvidersManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9719CFA32F00C77E44 /* MCONetService.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62B6175324CE006398B9 /* MCONetService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9819CFA32F00C77E44 /* MCOProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62B8175324CE006398B9 /* MCOProvider.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9919CFA32F00C77E44 /* MCObjC.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EB30DC16B5B7770091F4F1 /* MCObjC.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9A19CFA32F00C77E44 /* MCAsyncIMAP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7F916A15A9200778456 /* MCAsyncIMAP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9B19CFA32F00C77E44 /* MCIMAPAsyncConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA68C169E847800778456 /* MCIMAPAsyncConnection.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9C19CFA32F00C77E44 /* MCIMAPAsyncSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6F0916A8F57700737497 /* MCIMAPAsyncSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9D19CFA32F00C77E44 /* MCIMAPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7F016A15A4D00778456 /* MCIMAPOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9E19CFA32F00C77E44 /* MCIMAPOperationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7F416A15A6300778456 /* MCIMAPOperationCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780D9F19CFA33000C77E44 /* MCIMAPCheckAccountOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7F716A15A7800778456 /* MCIMAPCheckAccountOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DA019CFA33000C77E44 /* MCIMAPConnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 943F1A9917D964F600F0C798 /* MCIMAPConnectOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DA119CFA33000C77E44 /* MCIMAPFetchFoldersOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7FB16A2959700778456 /* MCIMAPFetchFoldersOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DA219CFA33000C77E44 /* MCIMAPRenameFolderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA80116A295E300778456 /* MCIMAPRenameFolderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DA319CFA33000C77E44 /* MCIMAPDeleteFolderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA80416A2997D00778456 /* MCIMAPDeleteFolderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DA419CFA33000C77E44 /* MCIMAPCreateFolderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA80716A2999900778456 /* MCIMAPCreateFolderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DA519CFA33000C77E44 /* MCIMAPSubscribeFolderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA80A16A299B600778456 /* MCIMAPSubscribeFolderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DA619CFA33100C77E44 /* MCIMAPAppendMessageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81016A299EB00778456 /* MCIMAPAppendMessageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DA719CFA33100C77E44 /* MCIMAPCopyMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81316A29A1000778456 /* MCIMAPCopyMessagesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DA819CFA33100C77E44 /* MCIMAPExpungeOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81616A29A8600778456 /* MCIMAPExpungeOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DA919CFA33100C77E44 /* MCIMAPFetchMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81916A29ADB00778456 /* MCIMAPFetchMessagesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DAA19CFA33100C77E44 /* MCIMAPFetchContentOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81C16A29DC400778456 /* MCIMAPFetchContentOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DAB19CFA33100C77E44 /* MCIMAPStoreFlagsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81F16A29E3F00778456 /* MCIMAPStoreFlagsOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DAC19CFA33100C77E44 /* MCIMAPStoreLabelsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA82216A29E5200778456 /* MCIMAPStoreLabelsOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DAD19CFA33200C77E44 /* MCIMAPSearchOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA82516A29EE300778456 /* MCIMAPSearchOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DAE19CFA33200C77E44 /* MCIMAPIdleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA82816A29F0300778456 /* MCIMAPIdleOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DAF19CFA33200C77E44 /* MCIMAPFetchNamespaceOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA82B16A2A01400778456 /* MCIMAPFetchNamespaceOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DB019CFA33200C77E44 /* MCIMAPIdentityOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6ED316A2A0E600737497 /* MCIMAPIdentityOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DB119CFA33200C77E44 /* MCIMAPFolderInfoOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6ED716A398FA00737497 /* MCIMAPFolderInfoOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DB219CFA33200C77E44 /* MCIMAPCapabilityOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB22A16E5C0A3000DB34C /* MCIMAPCapabilityOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DB319CFA33200C77E44 /* MCIMAPQuotaOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3C1BE017ABF4BC008BBF4C /* MCIMAPQuotaOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DB419CFA33300C77E44 /* MCIMAPFolderStatusOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EF9AB0E175F30C20027FA3B /* MCIMAPFolderStatusOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DB519CFA33300C77E44 /* MCIMAPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C608167A177635D2001F1018 /* MCIMAPDisconnectOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DB619CFA33300C77E44 /* MCIMAPMessageRenderingOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = DA0F1C7A177C07B300F0D3B4 /* MCIMAPMessageRenderingOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DB719CFA33300C77E44 /* MCIMAPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84B639EC17F280F3003B5BA2 /* MCIMAPNoopOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DB819CFA33300C77E44 /* MCIMAPMultiDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EFFBC7182BBF5700CFF656 /* MCIMAPMultiDisconnectOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DB919CFA33300C77E44 /* MCAsyncPOP.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EFD16A7DD0300737497 /* MCAsyncPOP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DBA19CFA33400C77E44 /* MCPOPAsyncSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EEE16A7B67600737497 /* MCPOPAsyncSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DBB19CFA33400C77E44 /* MCPOPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EF116A7C6DE00737497 /* MCPOPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DBC19CFA33400C77E44 /* MCPOPFetchMessageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EF416A7C6E900737497 /* MCPOPFetchMessageOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DBD19CFA33400C77E44 /* MCPOPDeleteMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EF716A7C6F500737497 /* MCPOPDeleteMessagesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DBE19CFA33400C77E44 /* MCPOPFetchMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6F0516A7E54400737497 /* MCPOPFetchMessagesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DBF19CFA33400C77E44 /* MCPOPCheckAccountOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6AC10FF17114DAF00B715B7 /* MCPOPCheckAccountOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DC019CFA33500C77E44 /* MCPOPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84B639E717F27EBD003B5BA2 /* MCPOPNoopOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DC119CFA33500C77E44 /* MCPOPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EFA16A7C94000737497 /* MCPOPOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DC219CFA33500C77E44 /* MCPOPOperationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EFC16A7CA1500737497 /* MCPOPOperationCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DC319CFA33500C77E44 /* MCAsyncNNTP.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73729199BF63F005124E5 /* MCAsyncNNTP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DC419CFA33500C77E44 /* MCNNTPAsyncSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7372B199BF66C005124E5 /* MCNNTPAsyncSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DC519CFA33500C77E44 /* MCNNTPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73736199BF7F2005124E5 /* MCNNTPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DC619CFA33600C77E44 /* MCNNTPFetchArticleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7373C199BF83B005124E5 /* MCNNTPFetchArticleOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DC719CFA33600C77E44 /* MCNNTPListNewsgroupsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7375B199BFDCA005124E5 /* MCNNTPListNewsgroupsOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DC819CFA33600C77E44 /* MCNNTPFetchArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73741199BF963005124E5 /* MCNNTPFetchArticlesOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DC919CFA33600C77E44 /* MCNNTPCheckAccountOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73745199BFA8C005124E5 /* MCNNTPCheckAccountOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DCA19CFA33600C77E44 /* MCNNTPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73757199BFC8A005124E5 /* MCNNTPDisconnectOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DCB19CFA33700C77E44 /* MCNNTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7372F199BF704005124E5 /* MCNNTPOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DCC19CFA33700C77E44 /* MCNNTPOperationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7373F199BF887005124E5 /* MCNNTPOperationCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DCD19CFA33700C77E44 /* MCAsync.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7E416A14A4500778456 /* MCAsync.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DCE19CFA33700C77E44 /* MCCertificateUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F7B19E17A1C15200BE78BB /* MCCertificateUtils.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DCF19CFA33700C77E44 /* MCZip.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E665AB1796500B0063F2CF /* MCZip.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DD019CFA33800C77E44 /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E665AE1796500B0063F2CF /* ioapi.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DD119CFA33800C77E44 /* mztools.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E665B01796500B0063F2CF /* mztools.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DD219CFA33800C77E44 /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E665B21796500B0063F2CF /* unzip.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DD319CFA33800C77E44 /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E665B41796500B0063F2CF /* zip.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DD419CFA33800C77E44 /* MCAbstract.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA693169E847800778456 /* MCAbstract.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DD519CFA33900C77E44 /* MCAbstractMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA695169E847800778456 /* MCAbstractMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DD619CFA33900C77E44 /* MCAbstractMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA697169E847800778456 /* MCAbstractMessagePart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DD719CFA33900C77E44 /* MCAbstractMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA699169E847800778456 /* MCAbstractMultipart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DD819CFA33900C77E44 /* MCAbstractPart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA69B169E847800778456 /* MCAbstractPart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DD919CFA33900C77E44 /* MCAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA69D169E847800778456 /* MCAddress.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DDA19CFA33A00C77E44 /* MCMessageConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA69E169E847800778456 /* MCMessageConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DDB19CFA33A00C77E44 /* MCMessageHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6A0169E847800778456 /* MCMessageHeader.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DDC19CFA33A00C77E44 /* MCArray.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6A6169E847800778456 /* MCArray.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DDD19CFA33A00C77E44 /* MCAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6A8169E847800778456 /* MCAssert.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DDE19CFA33A00C77E44 /* MCAutoreleasePool.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6A3169E847800778456 /* MCAutoreleasePool.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DDF19CFA33B00C77E44 /* MCBase64.h in Headers */ = {isa = PBXBuildFile; fileRef = C67597C417A8D66000DA69DF /* MCBase64.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DE019CFA33B00C77E44 /* MCBaseTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6A4169E847800778456 /* MCBaseTypes.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DE119CFA33B00C77E44 /* MCConnectionLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = C68B2AEB1778A589005E61EF /* MCConnectionLogger.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DE219CFA33B00C77E44 /* MCConnectionLoggerUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C68B2AF617797389005E61EF /* MCConnectionLoggerUtils.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DE319CFA33B00C77E44 /* MCData.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6AA169E847800778456 /* MCData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DE419CFA33C00C77E44 /* MCHash.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6AC169E847800778456 /* MCHash.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DE519CFA33C00C77E44 /* MCHashMap.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6AE169E847800778456 /* MCHashMap.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DE619CFA33C00C77E44 /* MCHTMLCleaner.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD69016BE566E00DB18F1 /* MCHTMLCleaner.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DE719CFA33C00C77E44 /* MCICUTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F9691720F8F4006F5B28 /* MCICUTypes.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DE819CFA33D00C77E44 /* MCIndexSet.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB22D16E5C1EE000DB34C /* MCIndexSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DE919CFA33D00C77E44 /* MCIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F96D1721028D006F5B28 /* MCIterator.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DEA19CFA33D00C77E44 /* MCJSON.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F7F8171E595D006F5B28 /* MCJSON.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DEB19CFA33D00C77E44 /* MCJSONParser.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F966171FCF9F006F5B28 /* MCJSONParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DEC19CFA33E00C77E44 /* MCLibetpan.h in Headers */ = {isa = PBXBuildFile; fileRef = BD63713A177DFF080094121B /* MCLibetpan.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DED19CFA33E00C77E44 /* MCLibetpanTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = C6AC1131171249DF00B715B7 /* MCLibetpanTypes.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DEE19CFA33E00C77E44 /* MCLog.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B0169E847800778456 /* MCLog.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DEF19CFA33E00C77E44 /* MCMainThread.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6BC169E847800778456 /* MCMainThread.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DF019CFA33F00C77E44 /* MCMD5.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F951171E5CB8006F5B28 /* MCMD5.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DF119CFA33F00C77E44 /* MCNull.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F953171E5CB8006F5B28 /* MCNull.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DF219CFA33F00C77E44 /* MCObject.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B2169E847800778456 /* MCObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DF319CFA33F00C77E44 /* MCOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6BF169E847800778456 /* MCOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DF419CFA33F00C77E44 /* MCOperationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6C0169E847800778456 /* MCOperationCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DF519CFA34000C77E44 /* MCOperationQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6C2169E847800778456 /* MCOperationQueue.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DF619CFA34000C77E44 /* MCOperationQueueCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C6081678177625AD001F1018 /* MCOperationQueueCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DF719CFA34000C77E44 /* MCRange.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B4169E847800778456 /* MCRange.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DF819CFA34000C77E44 /* MCSet.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B6169E847800778456 /* MCSet.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DF919CFA34100C77E44 /* MCString.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B8169E847800778456 /* MCString.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DFA19CFA34100C77E44 /* MCUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B9169E847800778456 /* MCUtils.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DFB19CFA34100C77E44 /* MCValue.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6BB169E847800778456 /* MCValue.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DFC19CFA34200C77E44 /* MCValuePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25316FC2AA0000DB34C /* MCValuePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780DFD19CFA34200C77E44 /* MCIMAP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6C4169E847800778456 /* MCIMAP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DFE19CFA34200C77E44 /* MCIMAPFolder.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6C6169E847800778456 /* MCIMAPFolder.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780DFF19CFA34200C77E44 /* MCIMAPMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6C8169E847800778456 /* MCIMAPMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0019CFA34300C77E44 /* MCIMAPMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6CA169E847800778456 /* MCIMAPMessagePart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0119CFA34300C77E44 /* MCIMAPMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6CC169E847800778456 /* MCIMAPMultipart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0219CFA34300C77E44 /* MCIMAPNamespace.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6CE169E847800778456 /* MCIMAPNamespace.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0319CFA34300C77E44 /* MCIMAPNamespaceItem.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D0169E847800778456 /* MCIMAPNamespaceItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0419CFA34400C77E44 /* MCIMAPPart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D2169E847800778456 /* MCIMAPPart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0519CFA34400C77E44 /* MCIMAPProgressCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D3169E847800778456 /* MCIMAPProgressCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0619CFA34400C77E44 /* MCIMAPSearchExpression.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D5169E847800778456 /* MCIMAPSearchExpression.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0719CFA34500C77E44 /* MCIMAPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D7169E847800778456 /* MCIMAPSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0819CFA34500C77E44 /* MCIMAPSyncResult.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB22016E34DCB000DB34C /* MCIMAPSyncResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0919CFA34500C77E44 /* MCIMAPFolderStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E774D871767C54E0065EB9B /* MCIMAPFolderStatus.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0A19CFA34500C77E44 /* MCIMAPIdentity.h in Headers */ = {isa = PBXBuildFile; fileRef = C63D315B17C9155C00A4D993 /* MCIMAPIdentity.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0B19CFA34600C77E44 /* MCPOP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D9169E847800778456 /* MCPOP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0C19CFA34600C77E44 /* MCPOPMessageInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6DB169E847800778456 /* MCPOPMessageInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0D19CFA34600C77E44 /* MCPOPProgressCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6DC169E847800778456 /* MCPOPProgressCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0E19CFA34600C77E44 /* MCPOPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6DE169E847800778456 /* MCPOPSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E0F19CFA34700C77E44 /* MCNNTP.h in Headers */ = {isa = PBXBuildFile; fileRef = 8491899C18C93F92002063A3 /* MCNNTP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1019CFA34700C77E44 /* MCNNTPGroupInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 849189AA18C94986002063A3 /* MCNNTPGroupInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1119CFA34700C77E44 /* MCNNTPProgressCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73732199BF754005124E5 /* MCNNTPProgressCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1219CFA34800C77E44 /* MCNNTPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 849189A018C93FB7002063A3 /* MCNNTPSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1319CFA34800C77E44 /* MCAddressDisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD67816BDCDD400DB18F1 /* MCAddressDisplay.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1419CFA34800C77E44 /* MCDateFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD67A16BDCDD400DB18F1 /* MCDateFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1519CFA34800C77E44 /* MCSizeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD67E16BDCDD400DB18F1 /* MCSizeFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1619CFA34900C77E44 /* MCHTMLRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD67C16BDCDD400DB18F1 /* MCHTMLRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1719CFA34900C77E44 /* MCHTMLRendererCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD68516BE148B00DB18F1 /* MCHTMLRendererCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1819CFA34900C77E44 /* MCRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD68716BE1AB600DB18F1 /* MCRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1919CFA34A00C77E44 /* MCHTMLBodyRendererTemplateCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD28C8A1783CFFC00F2BB8F /* MCHTMLBodyRendererTemplateCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1A19CFA34A00C77E44 /* MCHTMLRendererIMAPDataCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = DAACAD5017886807000B4517 /* MCHTMLRendererIMAPDataCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1B19CFA34A00C77E44 /* MCAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6E1169E847800778456 /* MCAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1C19CFA34B00C77E44 /* MCMessageBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6E3169E847800778456 /* MCMessageBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1D19CFA34B00C77E44 /* MCMessageParser.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6E5169E847800778456 /* MCMessageParser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1E19CFA34B00C77E44 /* MCMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6E7169E847800778456 /* MCMessagePart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E1F19CFA34C00C77E44 /* MCMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6E9169E847800778456 /* MCMultipart.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2019CFA34C00C77E44 /* MCRFC822.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6EA169E847800778456 /* MCRFC822.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2119CFA34C00C77E44 /* MCSMTP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6EC169E847800778456 /* MCSMTP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2219CFA34C00C77E44 /* MCSMTPProgressCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6ED169E847800778456 /* MCSMTPProgressCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2319CFA34D00C77E44 /* MCSMTPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6EF169E847800778456 /* MCSMTPSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2419CFA34D00C77E44 /* MCMailProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62C0175324F0006398B9 /* MCMailProvider.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2519CFA34D00C77E44 /* MCMailProvidersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62C2175324F0006398B9 /* MCMailProvidersManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2619CFA34E00C77E44 /* MCNetService.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62C4175324F0006398B9 /* MCNetService.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2719CFA34E00C77E44 /* MCProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62C5175324F0006398B9 /* MCProvider.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2819CFA34E00C77E44 /* MCCore.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA782169F23AB00778456 /* MCCore.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2919CFA34F00C77E44 /* MailCore.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7A4169F2A3E00778456 /* MailCore.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2A19CFA39900C77E44 /* MCAsyncSMTP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7E316A149EF00778456 /* MCAsyncSMTP.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2B19CFA39900C77E44 /* MCSMTPAsyncSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA690169E847800778456 /* MCSMTPAsyncSession.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2C19CFA39900C77E44 /* MCSMTPSendWithDataOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA79D169F29A700778456 /* MCSMTPSendWithDataOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2D19CFA39900C77E44 /* MCSMTPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C608167417759967001F1018 /* MCSMTPDisconnectOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2E19CFA39900C77E44 /* MCSMTPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84B639E217F279BB003B5BA2 /* MCSMTPNoopOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E2F19CFA39900C77E44 /* MCSMTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7D916A1386600778456 /* MCSMTPOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E3019CFA39900C77E44 /* MCSMTPOperationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7E116A1425400778456 /* MCSMTPOperationCallback.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E3119CFA39900C77E44 /* MCSMTPCheckAccountOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7E916A154B200778456 /* MCSMTPCheckAccountOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 27780E3219CFA3F500C77E44 /* MCOFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = C6BD28A8170BDB6B00A91AC1 /* MCOFramework.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3319CFA3F500C77E44 /* MCOPOP.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BFB170781BC00882C15 /* MCOPOP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3419CFA3F500C77E44 /* MCOPOPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BD41706903500882C15 /* MCOPOPSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3519CFA3F500C77E44 /* MCOPOPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BE01706905600882C15 /* MCOPOPOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3619CFA3F500C77E44 /* MCOPOPOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C60136951776C31000A5AF45 /* MCOPOPOperation+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3719CFA3F500C77E44 /* MCOPOPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BD81706903E00882C15 /* MCOPOPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3819CFA3F500C77E44 /* MCOPOPFetchMessageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BDC1706904800882C15 /* MCOPOPFetchMessageOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3919CFA3F500C77E44 /* MCOPOPFetchMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BE41706906C00882C15 /* MCOPOPFetchMessagesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3A19CFA3F500C77E44 /* MCOPOPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84B639EF17F282B4003B5BA2 /* MCOPOPNoopOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3B19CFA3F500C77E44 /* MCOPOPMessageInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BFE1707CEE400882C15 /* MCOPOPMessageInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3C19CFA3F500C77E44 /* MCOSMTP.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BE81706A6B300882C15 /* MCOSMTP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3D19CFA3F500C77E44 /* MCOSMTPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BBD17068E5E00882C15 /* MCOSMTPSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3E19CFA3F500C77E44 /* MCOSMTPSendOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BC117068E9500882C15 /* MCOSMTPSendOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E3F19CFA3F500C77E44 /* MCOSMTPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8416A99B17F284F400B3C7DA /* MCOSMTPNoopOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4019CFA3F500C77E44 /* MCOSMTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A81BC517068EB000882C15 /* MCOSMTPOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4119CFA3F500C77E44 /* MCOSMTPOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C60136941776B96600A5AF45 /* MCOSMTPOperation+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4219CFA3F500C77E44 /* MCONNTP.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73761199BFF80005124E5 /* MCONNTP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4319CFA3F500C77E44 /* MCONNTPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73762199BFFC7005124E5 /* MCONNTPSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4419CFA3F500C77E44 /* MCONNTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73766199BFFFC005124E5 /* MCONNTPOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4519CFA3F500C77E44 /* MCONNTPOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7376A199C0014005124E5 /* MCONNTPOperation+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4619CFA3F500C77E44 /* MCONNTPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7376B199C005A005124E5 /* MCONNTPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4719CFA3F500C77E44 /* MCONNTPFetchArticleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7376F199C007E005124E5 /* MCONNTPFetchArticleOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4819CFA3F500C77E44 /* MCONNTPListNewsgroupsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73789199C0260005124E5 /* MCONNTPListNewsgroupsOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4919CFA3F500C77E44 /* MCONNTPFetchArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73773199C00AB005124E5 /* MCONNTPFetchArticlesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4A19CFA3F500C77E44 /* MCONNTPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7378D199C02A8005124E5 /* MCONNTPDisconnectOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4B19CFA3F500C77E44 /* MCONNTPGroupInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73791199C0511005124E5 /* MCONNTPGroupInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4C19CFA3F500C77E44 /* MCOAbstract.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23616EDAA2B000DB34C /* MCOAbstract.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4D19CFA3F500C77E44 /* MCOAbstractMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23316EDAA17000DB34C /* MCOAbstractMessage.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4E19CFA3F500C77E44 /* MCOAbstractMessage+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C623C58A16FD8C22001BBEFC /* MCOAbstractMessage+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E4F19CFA3F500C77E44 /* MCOAbstractMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23716EDAA3F000DB34C /* MCOAbstractMessagePart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5019CFA3F500C77E44 /* MCOAbstractMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23A16EDAAC7000DB34C /* MCOAbstractMultipart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5119CFA3F600C77E44 /* MCOAbstractPart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB23D16EDAAE0000DB34C /* MCOAbstractPart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5219CFA3F600C77E44 /* MCOAbstractPart+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB24F16FBEF0E000DB34C /* MCOAbstractPart+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5319CFA3F600C77E44 /* MCOAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB24016EDAAF3000DB34C /* MCOAddress.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5419CFA3F600C77E44 /* MCOAddress+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB24616EEF89D000DB34C /* MCOAddress+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5519CFA3F600C77E44 /* MCOConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26D16FD63F6000DB34C /* MCOConstants.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5619CFA3F600C77E44 /* MCOMessageHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB24316EDAAFD000DB34C /* MCOMessageHeader.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5719CFA3F600C77E44 /* MCOMessageHeader+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB24E16EEFFE2000DB34C /* MCOMessageHeader+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5819CFA3F600C77E44 /* MCOHTMLRendererDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = C623C58B16FE52C0001BBEFC /* MCOHTMLRendererDelegate.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5919CFA3F600C77E44 /* MCOHTMLRendererIMAPDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9FF16FED7AB00D9DABD /* MCOHTMLRendererIMAPDelegate.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5A19CFA3F600C77E44 /* MCOAbstractMessageRendererCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9FD16FED18500D9DABD /* MCOAbstractMessageRendererCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5B19CFA3F600C77E44 /* MCOIMAP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25416FD32A0000DB34C /* MCOIMAP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5C19CFA3F600C77E44 /* MCOIMAPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = F8EA941416BAED6E0011AC6F /* MCOIMAPSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5D19CFA3F600C77E44 /* MCOIMAPFolder.h in Headers */ = {isa = PBXBuildFile; fileRef = C623C59116FE750D001BBEFC /* MCOIMAPFolder.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5E19CFA3F600C77E44 /* MCOIMAPMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9E016FEA1E800D9DABD /* MCOIMAPMessage.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E5F19CFA3F600C77E44 /* MCOIMAPMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9E316FEA27500D9DABD /* MCOIMAPMessagePart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6019CFA3F600C77E44 /* MCOIMAPMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9E616FEA28600D9DABD /* MCOIMAPMultipart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6119CFA3F600C77E44 /* MCOIMAPNamespace.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9E916FEA3B500D9DABD /* MCOIMAPNamespace.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6219CFA3F600C77E44 /* MCOIMAPNamespaceItem.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9EC16FEA3C400D9DABD /* MCOIMAPNamespaceItem.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6319CFA3F600C77E44 /* MCOIMAPPart.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9EF16FEA3D700D9DABD /* MCOIMAPPart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6419CFA3F600C77E44 /* MCOIMAPFolderInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F9D17016EA00073032E /* MCOIMAPFolderInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6519CFA3F700C77E44 /* MCOIMAPFetchFoldersOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = F87F190816BB62690012652F /* MCOIMAPFetchFoldersOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6619CFA3F700C77E44 /* MCOIMAPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C623C58D16FE6B45001BBEFC /* MCOIMAPOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6719CFA3F700C77E44 /* MCOIMAPFolderInfoOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F79170169EE0073032E /* MCOIMAPFolderInfoOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6819CFA3F700C77E44 /* MCOIMAPBaseOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61FB31702AB2A0073032E /* MCOIMAPBaseOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6919CFA3F700C77E44 /* MCOIMAPBaseOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C608167F17766FC5001F1018 /* MCOIMAPBaseOperation+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6A19CFA3F700C77E44 /* MCOIMAPAppendMessageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F7C170169FB0073032E /* MCOIMAPAppendMessageOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6B19CFA3F700C77E44 /* MCOIMAPCopyMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F7F17016A0D0073032E /* MCOIMAPCopyMessagesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6C19CFA3F700C77E44 /* MCOIMAPFetchMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F8217016A200073032E /* MCOIMAPFetchMessagesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6D19CFA3F700C77E44 /* MCOIMAPFetchContentOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F8517016AD60073032E /* MCOIMAPFetchContentOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6E19CFA3F700C77E44 /* MCOIMAPSearchOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F8817016AE60073032E /* MCOIMAPSearchOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E6F19CFA3F700C77E44 /* MCOIMAPIdleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F8B17016AFA0073032E /* MCOIMAPIdleOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7019CFA3F700C77E44 /* MCOIMAPFetchNamespaceOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F8E17016B090073032E /* MCOIMAPFetchNamespaceOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7119CFA3F700C77E44 /* MCOIMAPIdentityOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F9117016B250073032E /* MCOIMAPIdentityOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7219CFA3F700C77E44 /* MCOIMAPCapabilityOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F9417016B310073032E /* MCOIMAPCapabilityOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7319CFA3F700C77E44 /* MCOIMAPQuotaOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3C1BDC17ABF306008BBF4C /* MCOIMAPQuotaOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7419CFA3F800C77E44 /* MCOIMAPSearchExpression.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F61F9717016B460073032E /* MCOIMAPSearchExpression.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7519CFA3F800C77E44 /* MCOIMAPFolderStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EF9AB06175F2EC60027FA3B /* MCOIMAPFolderStatus.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7619CFA3F800C77E44 /* MCOIMAPFolderStatusOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EF9AB16175F35C60027FA3B /* MCOIMAPFolderStatusOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7719CFA3F800C77E44 /* MCOIMAPMessageRenderingOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = DA89896B178A47D200F6D90A /* MCOIMAPMessageRenderingOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7819CFA3F800C77E44 /* MCOIMAPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8416A99F17F2871D00B3C7DA /* MCOIMAPNoopOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7919CFA3F800C77E44 /* MCOIMAPIdentity.h in Headers */ = {isa = PBXBuildFile; fileRef = C63D316017C92D8300A4D993 /* MCOIMAPIdentity.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7A19CFA3F800C77E44 /* MCOIMAPMultiDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EFFBCA1833334900CFF656 /* MCOIMAPMultiDisconnectOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7B19CFA3F800C77E44 /* MCOObjectWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = C64FF38F16B3C13000F8C162 /* MCOObjectWrapper.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7C19CFA3F800C77E44 /* MCOOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25716FD3BC2000DB34C /* MCOOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7D19CFA3F800C77E44 /* MCOOperation+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25916FD3BC8000DB34C /* MCOOperation+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7E19CFA3F800C77E44 /* MCOUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26C16FD62FB000DB34C /* MCOUtils.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E7F19CFA3F900C77E44 /* NSArray+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EB30FD16B8E50F0091F4F1 /* NSArray+MCO.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8019CFA3F900C77E44 /* NSData+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D42C1916AE03D6002BB4F9 /* NSData+MCO.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8119CFA3F900C77E44 /* NSDictionary+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EB30F516B8C9480091F4F1 /* NSDictionary+MCO.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8219CFA3F900C77E44 /* NSError+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C07AD44B013BB42A240B4F04 /* NSError+MCO.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8319CFA3F900C77E44 /* NSObject+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EB30FF16B8E6E50091F4F1 /* NSObject+MCO.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8419CFA3F900C77E44 /* NSString+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D42C1B16AE03D6002BB4F9 /* NSString+MCO.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8519CFA3F900C77E44 /* NSValue+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25016FC2846000DB34C /* NSValue+MCO.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8619CFA3F900C77E44 /* MCOIndexSet.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F5B9F216FEAC6C00D9DABD /* MCOIndexSet.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8719CFA3F900C77E44 /* MCOIndexSet+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CCC5CB16FFF7B50077A5FC /* MCOIndexSet+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8819CFA3F900C77E44 /* MCORange.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CCC5C816FFE54F0077A5FC /* MCORange.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8919CFA3FA00C77E44 /* NSIndexSet+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C69BA85917DEFCCB00D601B7 /* NSIndexSet+MCO.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8A19CFA3FA00C77E44 /* NSSet+MCO.h in Headers */ = {isa = PBXBuildFile; fileRef = C643F490189A3D59007EA2F7 /* NSSet+MCO.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8B19CFA3FA00C77E44 /* MCOMailProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62B2175324CE006398B9 /* MCOMailProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8C19CFA3FA00C77E44 /* MCOMailProvidersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62B4175324CE006398B9 /* MCOMailProvidersManager.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8D19CFA3FA00C77E44 /* MCONetService.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62B6175324CE006398B9 /* MCONetService.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8E19CFA3FA00C77E44 /* MCOProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62B8175324CE006398B9 /* MCOProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E8F19CFA3FA00C77E44 /* MCObjC.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EB30DC16B5B7770091F4F1 /* MCObjC.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9019CFA3FA00C77E44 /* MCAsyncIMAP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7F916A15A9200778456 /* MCAsyncIMAP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9119CFA3FA00C77E44 /* MCIMAPAsyncConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA68C169E847800778456 /* MCIMAPAsyncConnection.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9219CFA3FB00C77E44 /* MCIMAPAsyncSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6F0916A8F57700737497 /* MCIMAPAsyncSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9319CFA3FB00C77E44 /* MCIMAPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7F016A15A4D00778456 /* MCIMAPOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9419CFA3FB00C77E44 /* MCIMAPOperationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7F416A15A6300778456 /* MCIMAPOperationCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9519CFA3FB00C77E44 /* MCIMAPCheckAccountOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7F716A15A7800778456 /* MCIMAPCheckAccountOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9619CFA3FB00C77E44 /* MCIMAPConnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 943F1A9917D964F600F0C798 /* MCIMAPConnectOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9719CFA3FB00C77E44 /* MCIMAPFetchFoldersOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7FB16A2959700778456 /* MCIMAPFetchFoldersOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9819CFA3FB00C77E44 /* MCIMAPRenameFolderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA80116A295E300778456 /* MCIMAPRenameFolderOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9919CFA3FB00C77E44 /* MCIMAPDeleteFolderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA80416A2997D00778456 /* MCIMAPDeleteFolderOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9A19CFA3FC00C77E44 /* MCIMAPCreateFolderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA80716A2999900778456 /* MCIMAPCreateFolderOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9B19CFA3FC00C77E44 /* MCIMAPSubscribeFolderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA80A16A299B600778456 /* MCIMAPSubscribeFolderOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9C19CFA3FC00C77E44 /* MCIMAPAppendMessageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81016A299EB00778456 /* MCIMAPAppendMessageOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9D19CFA3FC00C77E44 /* MCIMAPCopyMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81316A29A1000778456 /* MCIMAPCopyMessagesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9E19CFA3FC00C77E44 /* MCIMAPExpungeOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81616A29A8600778456 /* MCIMAPExpungeOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780E9F19CFA3FC00C77E44 /* MCIMAPFetchMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81916A29ADB00778456 /* MCIMAPFetchMessagesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EA019CFA3FC00C77E44 /* MCIMAPFetchContentOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81C16A29DC400778456 /* MCIMAPFetchContentOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EA119CFA3FC00C77E44 /* MCIMAPStoreFlagsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA81F16A29E3F00778456 /* MCIMAPStoreFlagsOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EA219CFA3FD00C77E44 /* MCIMAPStoreLabelsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA82216A29E5200778456 /* MCIMAPStoreLabelsOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EA319CFA3FD00C77E44 /* MCIMAPSearchOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA82516A29EE300778456 /* MCIMAPSearchOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EA419CFA3FD00C77E44 /* MCIMAPIdleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA82816A29F0300778456 /* MCIMAPIdleOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EA519CFA3FD00C77E44 /* MCIMAPFetchNamespaceOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA82B16A2A01400778456 /* MCIMAPFetchNamespaceOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EA619CFA3FD00C77E44 /* MCIMAPIdentityOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6ED316A2A0E600737497 /* MCIMAPIdentityOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EA719CFA3FD00C77E44 /* MCIMAPFolderInfoOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6ED716A398FA00737497 /* MCIMAPFolderInfoOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EA819CFA3FD00C77E44 /* MCIMAPCapabilityOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB22A16E5C0A3000DB34C /* MCIMAPCapabilityOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EA919CFA3FE00C77E44 /* MCIMAPQuotaOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3C1BE017ABF4BC008BBF4C /* MCIMAPQuotaOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EAA19CFA3FE00C77E44 /* MCIMAPFolderStatusOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EF9AB0E175F30C20027FA3B /* MCIMAPFolderStatusOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EAB19CFA3FE00C77E44 /* MCIMAPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C608167A177635D2001F1018 /* MCIMAPDisconnectOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EAC19CFA3FE00C77E44 /* MCIMAPMessageRenderingOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = DA0F1C7A177C07B300F0D3B4 /* MCIMAPMessageRenderingOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EAD19CFA3FE00C77E44 /* MCIMAPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84B639EC17F280F3003B5BA2 /* MCIMAPNoopOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EAE19CFA3FE00C77E44 /* MCIMAPMultiDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6EFFBC7182BBF5700CFF656 /* MCIMAPMultiDisconnectOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EAF19CFA3FE00C77E44 /* MCAsyncPOP.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EFD16A7DD0300737497 /* MCAsyncPOP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EB019CFA3FF00C77E44 /* MCPOPAsyncSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EEE16A7B67600737497 /* MCPOPAsyncSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EB119CFA3FF00C77E44 /* MCPOPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EF116A7C6DE00737497 /* MCPOPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EB219CFA3FF00C77E44 /* MCPOPFetchMessageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EF416A7C6E900737497 /* MCPOPFetchMessageOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EB319CFA3FF00C77E44 /* MCPOPDeleteMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EF716A7C6F500737497 /* MCPOPDeleteMessagesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EB419CFA3FF00C77E44 /* MCPOPFetchMessagesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6F0516A7E54400737497 /* MCPOPFetchMessagesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EB519CFA3FF00C77E44 /* MCPOPCheckAccountOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C6AC10FF17114DAF00B715B7 /* MCPOPCheckAccountOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EB619CFA40000C77E44 /* MCPOPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84B639E717F27EBD003B5BA2 /* MCPOPNoopOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EB719CFA40000C77E44 /* MCPOPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EFA16A7C94000737497 /* MCPOPOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EB819CFA40000C77E44 /* MCPOPOperationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C62C6EFC16A7CA1500737497 /* MCPOPOperationCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EB919CFA40000C77E44 /* MCAsyncNNTP.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73729199BF63F005124E5 /* MCAsyncNNTP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EBA19CFA40000C77E44 /* MCNNTPAsyncSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7372B199BF66C005124E5 /* MCNNTPAsyncSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EBB19CFA40000C77E44 /* MCNNTPFetchHeaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73736199BF7F2005124E5 /* MCNNTPFetchHeaderOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EBC19CFA40100C77E44 /* MCNNTPFetchArticleOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7373C199BF83B005124E5 /* MCNNTPFetchArticleOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EBD19CFA40100C77E44 /* MCNNTPListNewsgroupsOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7375B199BFDCA005124E5 /* MCNNTPListNewsgroupsOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EBE19CFA40100C77E44 /* MCNNTPFetchArticlesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73741199BF963005124E5 /* MCNNTPFetchArticlesOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EBF19CFA40100C77E44 /* MCNNTPCheckAccountOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73745199BFA8C005124E5 /* MCNNTPCheckAccountOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EC019CFA40100C77E44 /* MCNNTPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73757199BFC8A005124E5 /* MCNNTPDisconnectOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EC119CFA40200C77E44 /* MCNNTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7372F199BF704005124E5 /* MCNNTPOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EC219CFA40200C77E44 /* MCNNTPOperationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D7373F199BF887005124E5 /* MCNNTPOperationCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EC319CFA40200C77E44 /* MCAsyncSMTP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7E316A149EF00778456 /* MCAsyncSMTP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EC419CFA40200C77E44 /* MCSMTPAsyncSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA690169E847800778456 /* MCSMTPAsyncSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EC519CFA40200C77E44 /* MCSMTPSendWithDataOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA79D169F29A700778456 /* MCSMTPSendWithDataOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EC619CFA40200C77E44 /* MCSMTPDisconnectOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C608167417759967001F1018 /* MCSMTPDisconnectOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EC719CFA40300C77E44 /* MCSMTPNoopOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 84B639E217F279BB003B5BA2 /* MCSMTPNoopOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EC819CFA40300C77E44 /* MCSMTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7D916A1386600778456 /* MCSMTPOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EC919CFA40300C77E44 /* MCSMTPOperationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7E116A1425400778456 /* MCSMTPOperationCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ECA19CFA40300C77E44 /* MCSMTPCheckAccountOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7E916A154B200778456 /* MCSMTPCheckAccountOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ECB19CFA40300C77E44 /* MCAsync.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7E416A14A4500778456 /* MCAsync.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ECC19CFA40400C77E44 /* MCCertificateUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F7B19E17A1C15200BE78BB /* MCCertificateUtils.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ECD19CFA40400C77E44 /* MCZip.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E665AB1796500B0063F2CF /* MCZip.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ECE19CFA40400C77E44 /* ioapi.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E665AE1796500B0063F2CF /* ioapi.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ECF19CFA40400C77E44 /* mztools.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E665B01796500B0063F2CF /* mztools.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ED019CFA40400C77E44 /* unzip.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E665B21796500B0063F2CF /* unzip.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ED119CFA40500C77E44 /* zip.h in Headers */ = {isa = PBXBuildFile; fileRef = C6E665B41796500B0063F2CF /* zip.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ED219CFA40500C77E44 /* MCAbstract.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA693169E847800778456 /* MCAbstract.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ED319CFA40500C77E44 /* MCAbstractMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA695169E847800778456 /* MCAbstractMessage.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ED419CFA40500C77E44 /* MCAbstractMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA697169E847800778456 /* MCAbstractMessagePart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ED519CFA40500C77E44 /* MCAbstractMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA699169E847800778456 /* MCAbstractMultipart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ED619CFA40600C77E44 /* MCAbstractPart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA69B169E847800778456 /* MCAbstractPart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ED719CFA40600C77E44 /* MCAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA69D169E847800778456 /* MCAddress.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ED819CFA40600C77E44 /* MCMessageConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA69E169E847800778456 /* MCMessageConstants.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780ED919CFA40600C77E44 /* MCMessageHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6A0169E847800778456 /* MCMessageHeader.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EDA19CFA40600C77E44 /* MCArray.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6A6169E847800778456 /* MCArray.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EDB19CFA40700C77E44 /* MCAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6A8169E847800778456 /* MCAssert.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EDC19CFA40700C77E44 /* MCAutoreleasePool.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6A3169E847800778456 /* MCAutoreleasePool.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EDD19CFA40700C77E44 /* MCBase64.h in Headers */ = {isa = PBXBuildFile; fileRef = C67597C417A8D66000DA69DF /* MCBase64.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EDE19CFA40700C77E44 /* MCBaseTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6A4169E847800778456 /* MCBaseTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EDF19CFA40800C77E44 /* MCConnectionLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = C68B2AEB1778A589005E61EF /* MCConnectionLogger.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EE019CFA40800C77E44 /* MCConnectionLoggerUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C68B2AF617797389005E61EF /* MCConnectionLoggerUtils.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EE119CFA40800C77E44 /* MCData.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6AA169E847800778456 /* MCData.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EE219CFA40800C77E44 /* MCHash.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6AC169E847800778456 /* MCHash.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EE319CFA40900C77E44 /* MCHashMap.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6AE169E847800778456 /* MCHashMap.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EE419CFA40900C77E44 /* MCHTMLCleaner.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD69016BE566E00DB18F1 /* MCHTMLCleaner.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EE519CFA40900C77E44 /* MCICUTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F9691720F8F4006F5B28 /* MCICUTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EE619CFA40900C77E44 /* MCIndexSet.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB22D16E5C1EE000DB34C /* MCIndexSet.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EE719CFA40900C77E44 /* MCIterator.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F96D1721028D006F5B28 /* MCIterator.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EE819CFA40A00C77E44 /* MCJSON.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F7F8171E595D006F5B28 /* MCJSON.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EE919CFA40A00C77E44 /* MCJSONParser.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F966171FCF9F006F5B28 /* MCJSONParser.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EEA19CFA40A00C77E44 /* MCLibetpan.h in Headers */ = {isa = PBXBuildFile; fileRef = BD63713A177DFF080094121B /* MCLibetpan.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EEB19CFA40A00C77E44 /* MCLibetpanTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = C6AC1131171249DF00B715B7 /* MCLibetpanTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EEC19CFA40B00C77E44 /* MCLog.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B0169E847800778456 /* MCLog.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EED19CFA40B00C77E44 /* MCMainThread.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6BC169E847800778456 /* MCMainThread.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EEE19CFA40B00C77E44 /* MCMD5.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F951171E5CB8006F5B28 /* MCMD5.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EEF19CFA40B00C77E44 /* MCNull.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D6F953171E5CB8006F5B28 /* MCNull.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EF019CFA40C00C77E44 /* MCObject.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B2169E847800778456 /* MCObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EF119CFA40C00C77E44 /* MCOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6BF169E847800778456 /* MCOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EF219CFA40C00C77E44 /* MCOperationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6C0169E847800778456 /* MCOperationCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EF319CFA40C00C77E44 /* MCOperationQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6C2169E847800778456 /* MCOperationQueue.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EF419CFA40D00C77E44 /* MCOperationQueueCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C6081678177625AD001F1018 /* MCOperationQueueCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EF519CFA40D00C77E44 /* MCRange.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B4169E847800778456 /* MCRange.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EF619CFA40D00C77E44 /* MCSet.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B6169E847800778456 /* MCSet.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EF719CFA40D00C77E44 /* MCString.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B8169E847800778456 /* MCString.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EF819CFA40E00C77E44 /* MCUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6B9169E847800778456 /* MCUtils.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EF919CFA40E00C77E44 /* MCValue.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6BB169E847800778456 /* MCValue.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EFA19CFA40E00C77E44 /* MCValuePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25316FC2AA0000DB34C /* MCValuePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EFB19CFA40E00C77E44 /* MCIMAP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6C4169E847800778456 /* MCIMAP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EFC19CFA40F00C77E44 /* MCIMAPFolder.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6C6169E847800778456 /* MCIMAPFolder.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EFD19CFA40F00C77E44 /* MCIMAPMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6C8169E847800778456 /* MCIMAPMessage.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EFE19CFA40F00C77E44 /* MCIMAPMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6CA169E847800778456 /* MCIMAPMessagePart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780EFF19CFA41000C77E44 /* MCIMAPMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6CC169E847800778456 /* MCIMAPMultipart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0019CFA41000C77E44 /* MCIMAPNamespace.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6CE169E847800778456 /* MCIMAPNamespace.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0119CFA41000C77E44 /* MCIMAPNamespaceItem.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D0169E847800778456 /* MCIMAPNamespaceItem.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0219CFA41000C77E44 /* MCIMAPPart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D2169E847800778456 /* MCIMAPPart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0319CFA41100C77E44 /* MCIMAPProgressCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D3169E847800778456 /* MCIMAPProgressCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0419CFA41100C77E44 /* MCIMAPSearchExpression.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D5169E847800778456 /* MCIMAPSearchExpression.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0519CFA41100C77E44 /* MCIMAPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D7169E847800778456 /* MCIMAPSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0619CFA41200C77E44 /* MCIMAPSyncResult.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB22016E34DCB000DB34C /* MCIMAPSyncResult.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0719CFA41200C77E44 /* MCIMAPFolderStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E774D871767C54E0065EB9B /* MCIMAPFolderStatus.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0819CFA41200C77E44 /* MCIMAPIdentity.h in Headers */ = {isa = PBXBuildFile; fileRef = C63D315B17C9155C00A4D993 /* MCIMAPIdentity.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0919CFA41200C77E44 /* MCNNTP.h in Headers */ = {isa = PBXBuildFile; fileRef = 8491899C18C93F92002063A3 /* MCNNTP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0A19CFA41300C77E44 /* MCNNTPGroupInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 849189AA18C94986002063A3 /* MCNNTPGroupInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0B19CFA41300C77E44 /* MCNNTPProgressCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D73732199BF754005124E5 /* MCNNTPProgressCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0C19CFA41300C77E44 /* MCNNTPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 849189A018C93FB7002063A3 /* MCNNTPSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0D19CFA41400C77E44 /* MCAddressDisplay.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD67816BDCDD400DB18F1 /* MCAddressDisplay.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0E19CFA41400C77E44 /* MCDateFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD67A16BDCDD400DB18F1 /* MCDateFormatter.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F0F19CFA41400C77E44 /* MCSizeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD67E16BDCDD400DB18F1 /* MCSizeFormatter.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1019CFA41400C77E44 /* MCHTMLRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD67C16BDCDD400DB18F1 /* MCHTMLRenderer.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1119CFA41500C77E44 /* MCHTMLRendererCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD68516BE148B00DB18F1 /* MCHTMLRendererCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1219CFA41500C77E44 /* MCRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = C63CD68716BE1AB600DB18F1 /* MCRenderer.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1319CFA41500C77E44 /* MCHTMLBodyRendererTemplateCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD28C8A1783CFFC00F2BB8F /* MCHTMLBodyRendererTemplateCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1419CFA41600C77E44 /* MCHTMLRendererIMAPDataCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = DAACAD5017886807000B4517 /* MCHTMLRendererIMAPDataCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1519CFA41600C77E44 /* MCAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6E1169E847800778456 /* MCAttachment.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1619CFA41600C77E44 /* MCMessageBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6E3169E847800778456 /* MCMessageBuilder.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1719CFA41700C77E44 /* MCMessageParser.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6E5169E847800778456 /* MCMessageParser.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1819CFA41700C77E44 /* MCMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6E7169E847800778456 /* MCMessagePart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1919CFA41700C77E44 /* MCMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6E9169E847800778456 /* MCMultipart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1A19CFA41800C77E44 /* MCRFC822.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6EA169E847800778456 /* MCRFC822.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1B19CFA41800C77E44 /* MCSMTP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6EC169E847800778456 /* MCSMTP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1C19CFA41800C77E44 /* MCSMTPProgressCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6ED169E847800778456 /* MCSMTPProgressCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1D19CFA41900C77E44 /* MCSMTPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6EF169E847800778456 /* MCSMTPSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1E19CFA41900C77E44 /* MCMailProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62C0175324F0006398B9 /* MCMailProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F1F19CFA41900C77E44 /* MCMailProvidersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62C2175324F0006398B9 /* MCMailProvidersManager.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2019CFA41A00C77E44 /* MCNetService.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62C4175324F0006398B9 /* MCNetService.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2119CFA41A00C77E44 /* MCProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = C6CF62C5175324F0006398B9 /* MCProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2219CFA41A00C77E44 /* MCCore.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA782169F23AB00778456 /* MCCore.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2319CFA41B00C77E44 /* MailCore.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA7A4169F2A3E00778456 /* MailCore.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2419CFA52800C77E44 /* MCOAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25C16FD4377000DB34C /* MCOAttachment.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2519CFA52800C77E44 /* MCOMessageBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB25F16FD438F000DB34C /* MCOMessageBuilder.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2619CFA52800C77E44 /* MCOMessageParser.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26216FD43A1000DB34C /* MCOMessageParser.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2719CFA52800C77E44 /* MCOMessagePart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26516FD43E2000DB34C /* MCOMessagePart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2819CFA52800C77E44 /* MCOMultipart.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26816FD44C2000DB34C /* MCOMultipart.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2919CFA52800C77E44 /* MCORFC822.h in Headers */ = {isa = PBXBuildFile; fileRef = C64BB26B16FD4C3B000DB34C /* MCORFC822.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2A19CFA52800C77E44 /* MCPOP.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6D9169E847800778456 /* MCPOP.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2B19CFA52800C77E44 /* MCPOPMessageInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6DB169E847800778456 /* MCPOPMessageInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2C19CFA52800C77E44 /* MCPOPProgressCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6DC169E847800778456 /* MCPOPProgressCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 27780F2D19CFA52800C77E44 /* MCPOPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = C64EA6DE169E847800778456 /* MCPOPSession.h */; settings = {ATTRIBUTES = (Private, ); }; };
4B3C1BDE17ABF309008BBF4C /* MCOIMAPQuotaOperation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4B3C1BDD17ABF307008BBF4C /* MCOIMAPQuotaOperation.mm */; };
4B3C1BE117ABF4BC008BBF4C /* MCIMAPQuotaOperation.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4B3C1BDF17ABF4BB008BBF4C /* MCIMAPQuotaOperation.cc */; };
4B3C1BE217ABFF7C008BBF4C /* MCOIMAPQuotaOperation.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4B3C1BDC17ABF306008BBF4C /* MCOIMAPQuotaOperation.h */; };
@@ -833,6 +1342,13 @@
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
+ 27780C3F19CF9DE600C77E44 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = C64EA52E169E772200778456 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = C6BA2B091705F4E6003F0E9E;
+ remoteInfo = "static mailcore2 ios";
+ };
C6A81BB01706852200882C15 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = C64EA52E169E772200778456 /* Project object */;
@@ -1293,6 +1809,9 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ 27780C3A19CF9CD100C77E44 /* MailCore-ios.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = "MailCore-ios.framework"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 27780C3C19CF9D9800C77E44 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; };
+ 27780D3419CFA19500C77E44 /* libstdc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libstdc++.dylib"; path = "Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/usr/lib/libstdc++.dylib"; sourceTree = DEVELOPER_DIR; };
4B3C1BDC17ABF306008BBF4C /* MCOIMAPQuotaOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MCOIMAPQuotaOperation.h; sourceTree = "<group>"; };
4B3C1BDD17ABF307008BBF4C /* MCOIMAPQuotaOperation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MCOIMAPQuotaOperation.mm; sourceTree = "<group>"; };
4B3C1BDF17ABF4BB008BBF4C /* MCIMAPQuotaOperation.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MCIMAPQuotaOperation.cc; sourceTree = "<group>"; };
@@ -1772,6 +2291,16 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
+ 27780C3019CF9CD100C77E44 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 27780C3E19CF9DDF00C77E44 /* libMailCore-ios.a in Frameworks */,
+ 27780C3D19CF9D9800C77E44 /* CFNetwork.framework in Frameworks */,
+ 27780C3219CF9CD100C77E44 /* Security.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
C64EA534169E772200778456 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -2003,6 +2532,7 @@
C6BA2C191705F4E6003F0E9E /* libMailCore-ios.a */,
C6A81B911706840C00882C15 /* test-ios.app */,
C6BD288D170BD71100A91AC1 /* MailCore.framework */,
+ 27780C3A19CF9CD100C77E44 /* MailCore-ios.framework */,
);
name = Products;
sourceTree = "<group>";
@@ -2328,6 +2858,8 @@
C64EA78E169F259200778456 /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 27780D3419CFA19500C77E44 /* libstdc++.dylib */,
+ 27780C3C19CF9D9800C77E44 /* CFNetwork.framework */,
C6ED6D1C17A191BF00A4A14C /* Security.framework */,
C6ED6D1917A1919500A4A14C /* Security.framework */,
C6A81BB31706891B00882C15 /* CFNetwork.framework */,
@@ -2582,7 +3114,548 @@
};
/* End PBXGroup section */
+/* Begin PBXHeadersBuildPhase section */
+ 27780C4119CF9E1400C77E44 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 27780E3619CFA3F500C77E44 /* MCOPOPOperation+Private.h in Headers */,
+ 27780E4119CFA3F500C77E44 /* MCOSMTPOperation+Private.h in Headers */,
+ 27780E4519CFA3F500C77E44 /* MCONNTPOperation+Private.h in Headers */,
+ 27780E4E19CFA3F500C77E44 /* MCOAbstractMessage+Private.h in Headers */,
+ 27780E5219CFA3F600C77E44 /* MCOAbstractPart+Private.h in Headers */,
+ 27780E5419CFA3F600C77E44 /* MCOAddress+Private.h in Headers */,
+ 27780F2419CFA52800C77E44 /* MCOAttachment.h in Headers */,
+ 27780F2519CFA52800C77E44 /* MCOMessageBuilder.h in Headers */,
+ 27780F2619CFA52800C77E44 /* MCOMessageParser.h in Headers */,
+ 27780F2719CFA52800C77E44 /* MCOMessagePart.h in Headers */,
+ 27780F2819CFA52800C77E44 /* MCOMultipart.h in Headers */,
+ 27780F2919CFA52800C77E44 /* MCORFC822.h in Headers */,
+ 27780F2A19CFA52800C77E44 /* MCPOP.h in Headers */,
+ 27780F2B19CFA52800C77E44 /* MCPOPMessageInfo.h in Headers */,
+ 27780F2C19CFA52800C77E44 /* MCPOPProgressCallback.h in Headers */,
+ 27780F2D19CFA52800C77E44 /* MCPOPSession.h in Headers */,
+ 27780E3219CFA3F500C77E44 /* MCOFramework.h in Headers */,
+ 27780E3319CFA3F500C77E44 /* MCOPOP.h in Headers */,
+ 27780E3419CFA3F500C77E44 /* MCOPOPSession.h in Headers */,
+ 27780E3519CFA3F500C77E44 /* MCOPOPOperation.h in Headers */,
+ 27780E3719CFA3F500C77E44 /* MCOPOPFetchHeaderOperation.h in Headers */,
+ 27780E3819CFA3F500C77E44 /* MCOPOPFetchMessageOperation.h in Headers */,
+ 27780E3919CFA3F500C77E44 /* MCOPOPFetchMessagesOperation.h in Headers */,
+ 27780E3A19CFA3F500C77E44 /* MCOPOPNoopOperation.h in Headers */,
+ 27780E3B19CFA3F500C77E44 /* MCOPOPMessageInfo.h in Headers */,
+ 27780E3C19CFA3F500C77E44 /* MCOSMTP.h in Headers */,
+ 27780E3D19CFA3F500C77E44 /* MCOSMTPSession.h in Headers */,
+ 27780E3E19CFA3F500C77E44 /* MCOSMTPSendOperation.h in Headers */,
+ 27780E3F19CFA3F500C77E44 /* MCOSMTPNoopOperation.h in Headers */,
+ 27780E4019CFA3F500C77E44 /* MCOSMTPOperation.h in Headers */,
+ 27780E4219CFA3F500C77E44 /* MCONNTP.h in Headers */,
+ 27780E4319CFA3F500C77E44 /* MCONNTPSession.h in Headers */,
+ 27780E4419CFA3F500C77E44 /* MCONNTPOperation.h in Headers */,
+ 27780E4619CFA3F500C77E44 /* MCONNTPFetchHeaderOperation.h in Headers */,
+ 27780E4719CFA3F500C77E44 /* MCONNTPFetchArticleOperation.h in Headers */,
+ 27780E4819CFA3F500C77E44 /* MCONNTPListNewsgroupsOperation.h in Headers */,
+ 27780E4919CFA3F500C77E44 /* MCONNTPFetchArticlesOperation.h in Headers */,
+ 27780E4A19CFA3F500C77E44 /* MCONNTPDisconnectOperation.h in Headers */,
+ 27780E4B19CFA3F500C77E44 /* MCONNTPGroupInfo.h in Headers */,
+ 27780E4C19CFA3F500C77E44 /* MCOAbstract.h in Headers */,
+ 27780E4D19CFA3F500C77E44 /* MCOAbstractMessage.h in Headers */,
+ 27780E4F19CFA3F500C77E44 /* MCOAbstractMessagePart.h in Headers */,
+ 27780E5019CFA3F500C77E44 /* MCOAbstractMultipart.h in Headers */,
+ 27780E5119CFA3F600C77E44 /* MCOAbstractPart.h in Headers */,
+ 27780E5319CFA3F600C77E44 /* MCOAddress.h in Headers */,
+ 27780E5519CFA3F600C77E44 /* MCOConstants.h in Headers */,
+ 27780E5619CFA3F600C77E44 /* MCOMessageHeader.h in Headers */,
+ 27780E5819CFA3F600C77E44 /* MCOHTMLRendererDelegate.h in Headers */,
+ 27780E5919CFA3F600C77E44 /* MCOHTMLRendererIMAPDelegate.h in Headers */,
+ 27780E5A19CFA3F600C77E44 /* MCOAbstractMessageRendererCallback.h in Headers */,
+ 27780E5B19CFA3F600C77E44 /* MCOIMAP.h in Headers */,
+ 27780E5C19CFA3F600C77E44 /* MCOIMAPSession.h in Headers */,
+ 27780E5D19CFA3F600C77E44 /* MCOIMAPFolder.h in Headers */,
+ 27780E5E19CFA3F600C77E44 /* MCOIMAPMessage.h in Headers */,
+ 27780E5F19CFA3F600C77E44 /* MCOIMAPMessagePart.h in Headers */,
+ 27780E6019CFA3F600C77E44 /* MCOIMAPMultipart.h in Headers */,
+ 27780E6119CFA3F600C77E44 /* MCOIMAPNamespace.h in Headers */,
+ 27780E6219CFA3F600C77E44 /* MCOIMAPNamespaceItem.h in Headers */,
+ 27780E6319CFA3F600C77E44 /* MCOIMAPPart.h in Headers */,
+ 27780E6419CFA3F600C77E44 /* MCOIMAPFolderInfo.h in Headers */,
+ 27780E6519CFA3F700C77E44 /* MCOIMAPFetchFoldersOperation.h in Headers */,
+ 27780E6619CFA3F700C77E44 /* MCOIMAPOperation.h in Headers */,
+ 27780E6719CFA3F700C77E44 /* MCOIMAPFolderInfoOperation.h in Headers */,
+ 27780E6819CFA3F700C77E44 /* MCOIMAPBaseOperation.h in Headers */,
+ 27780E6A19CFA3F700C77E44 /* MCOIMAPAppendMessageOperation.h in Headers */,
+ 27780E6B19CFA3F700C77E44 /* MCOIMAPCopyMessagesOperation.h in Headers */,
+ 27780E6C19CFA3F700C77E44 /* MCOIMAPFetchMessagesOperation.h in Headers */,
+ 27780E6D19CFA3F700C77E44 /* MCOIMAPFetchContentOperation.h in Headers */,
+ 27780E6E19CFA3F700C77E44 /* MCOIMAPSearchOperation.h in Headers */,
+ 27780E6F19CFA3F700C77E44 /* MCOIMAPIdleOperation.h in Headers */,
+ 27780E7019CFA3F700C77E44 /* MCOIMAPFetchNamespaceOperation.h in Headers */,
+ 27780E7119CFA3F700C77E44 /* MCOIMAPIdentityOperation.h in Headers */,
+ 27780E7219CFA3F700C77E44 /* MCOIMAPCapabilityOperation.h in Headers */,
+ 27780E7319CFA3F700C77E44 /* MCOIMAPQuotaOperation.h in Headers */,
+ 27780E7419CFA3F800C77E44 /* MCOIMAPSearchExpression.h in Headers */,
+ 27780E7519CFA3F800C77E44 /* MCOIMAPFolderStatus.h in Headers */,
+ 27780E7619CFA3F800C77E44 /* MCOIMAPFolderStatusOperation.h in Headers */,
+ 27780E7719CFA3F800C77E44 /* MCOIMAPMessageRenderingOperation.h in Headers */,
+ 27780E7819CFA3F800C77E44 /* MCOIMAPNoopOperation.h in Headers */,
+ 27780E7919CFA3F800C77E44 /* MCOIMAPIdentity.h in Headers */,
+ 27780E7A19CFA3F800C77E44 /* MCOIMAPMultiDisconnectOperation.h in Headers */,
+ 27780E7B19CFA3F800C77E44 /* MCOObjectWrapper.h in Headers */,
+ 27780E7C19CFA3F800C77E44 /* MCOOperation.h in Headers */,
+ 27780E7E19CFA3F800C77E44 /* MCOUtils.h in Headers */,
+ 27780E7F19CFA3F900C77E44 /* NSArray+MCO.h in Headers */,
+ 27780E8019CFA3F900C77E44 /* NSData+MCO.h in Headers */,
+ 27780E8119CFA3F900C77E44 /* NSDictionary+MCO.h in Headers */,
+ 27780E8219CFA3F900C77E44 /* NSError+MCO.h in Headers */,
+ 27780E8319CFA3F900C77E44 /* NSObject+MCO.h in Headers */,
+ 27780E8419CFA3F900C77E44 /* NSString+MCO.h in Headers */,
+ 27780E8519CFA3F900C77E44 /* NSValue+MCO.h in Headers */,
+ 27780E8619CFA3F900C77E44 /* MCOIndexSet.h in Headers */,
+ 27780E8819CFA3F900C77E44 /* MCORange.h in Headers */,
+ 27780E8919CFA3FA00C77E44 /* NSIndexSet+MCO.h in Headers */,
+ 27780E8A19CFA3FA00C77E44 /* NSSet+MCO.h in Headers */,
+ 27780E8B19CFA3FA00C77E44 /* MCOMailProvider.h in Headers */,
+ 27780E8C19CFA3FA00C77E44 /* MCOMailProvidersManager.h in Headers */,
+ 27780E8D19CFA3FA00C77E44 /* MCONetService.h in Headers */,
+ 27780E8E19CFA3FA00C77E44 /* MCOProvider.h in Headers */,
+ 27780E8F19CFA3FA00C77E44 /* MCObjC.h in Headers */,
+ 27780E9019CFA3FA00C77E44 /* MCAsyncIMAP.h in Headers */,
+ 27780E9119CFA3FA00C77E44 /* MCIMAPAsyncConnection.h in Headers */,
+ 27780E9219CFA3FB00C77E44 /* MCIMAPAsyncSession.h in Headers */,
+ 27780E9319CFA3FB00C77E44 /* MCIMAPOperation.h in Headers */,
+ 27780E9419CFA3FB00C77E44 /* MCIMAPOperationCallback.h in Headers */,
+ 27780E9519CFA3FB00C77E44 /* MCIMAPCheckAccountOperation.h in Headers */,
+ 27780E9619CFA3FB00C77E44 /* MCIMAPConnectOperation.h in Headers */,
+ 27780E9719CFA3FB00C77E44 /* MCIMAPFetchFoldersOperation.h in Headers */,
+ 27780E9819CFA3FB00C77E44 /* MCIMAPRenameFolderOperation.h in Headers */,
+ 27780E9919CFA3FB00C77E44 /* MCIMAPDeleteFolderOperation.h in Headers */,
+ 27780E9A19CFA3FC00C77E44 /* MCIMAPCreateFolderOperation.h in Headers */,
+ 27780E9B19CFA3FC00C77E44 /* MCIMAPSubscribeFolderOperation.h in Headers */,
+ 27780E9C19CFA3FC00C77E44 /* MCIMAPAppendMessageOperation.h in Headers */,
+ 27780E9D19CFA3FC00C77E44 /* MCIMAPCopyMessagesOperation.h in Headers */,
+ 27780E9E19CFA3FC00C77E44 /* MCIMAPExpungeOperation.h in Headers */,
+ 27780E9F19CFA3FC00C77E44 /* MCIMAPFetchMessagesOperation.h in Headers */,
+ 27780EA019CFA3FC00C77E44 /* MCIMAPFetchContentOperation.h in Headers */,
+ 27780EA119CFA3FC00C77E44 /* MCIMAPStoreFlagsOperation.h in Headers */,
+ 27780EA219CFA3FD00C77E44 /* MCIMAPStoreLabelsOperation.h in Headers */,
+ 27780EA319CFA3FD00C77E44 /* MCIMAPSearchOperation.h in Headers */,
+ 27780EA419CFA3FD00C77E44 /* MCIMAPIdleOperation.h in Headers */,
+ 27780EA519CFA3FD00C77E44 /* MCIMAPFetchNamespaceOperation.h in Headers */,
+ 27780EA619CFA3FD00C77E44 /* MCIMAPIdentityOperation.h in Headers */,
+ 27780EA719CFA3FD00C77E44 /* MCIMAPFolderInfoOperation.h in Headers */,
+ 27780EA819CFA3FD00C77E44 /* MCIMAPCapabilityOperation.h in Headers */,
+ 27780EA919CFA3FE00C77E44 /* MCIMAPQuotaOperation.h in Headers */,
+ 27780EAA19CFA3FE00C77E44 /* MCIMAPFolderStatusOperation.h in Headers */,
+ 27780EAB19CFA3FE00C77E44 /* MCIMAPDisconnectOperation.h in Headers */,
+ 27780EAC19CFA3FE00C77E44 /* MCIMAPMessageRenderingOperation.h in Headers */,
+ 27780EAD19CFA3FE00C77E44 /* MCIMAPNoopOperation.h in Headers */,
+ 27780EAE19CFA3FE00C77E44 /* MCIMAPMultiDisconnectOperation.h in Headers */,
+ 27780EAF19CFA3FE00C77E44 /* MCAsyncPOP.h in Headers */,
+ 27780EB019CFA3FF00C77E44 /* MCPOPAsyncSession.h in Headers */,
+ 27780EB119CFA3FF00C77E44 /* MCPOPFetchHeaderOperation.h in Headers */,
+ 27780EB219CFA3FF00C77E44 /* MCPOPFetchMessageOperation.h in Headers */,
+ 27780EB319CFA3FF00C77E44 /* MCPOPDeleteMessagesOperation.h in Headers */,
+ 27780EB419CFA3FF00C77E44 /* MCPOPFetchMessagesOperation.h in Headers */,
+ 27780EB519CFA3FF00C77E44 /* MCPOPCheckAccountOperation.h in Headers */,
+ 27780EB619CFA40000C77E44 /* MCPOPNoopOperation.h in Headers */,
+ 27780EB719CFA40000C77E44 /* MCPOPOperation.h in Headers */,
+ 27780EB819CFA40000C77E44 /* MCPOPOperationCallback.h in Headers */,
+ 27780EB919CFA40000C77E44 /* MCAsyncNNTP.h in Headers */,
+ 27780EBA19CFA40000C77E44 /* MCNNTPAsyncSession.h in Headers */,
+ 27780EBB19CFA40000C77E44 /* MCNNTPFetchHeaderOperation.h in Headers */,
+ 27780EBC19CFA40100C77E44 /* MCNNTPFetchArticleOperation.h in Headers */,
+ 27780EBD19CFA40100C77E44 /* MCNNTPListNewsgroupsOperation.h in Headers */,
+ 27780EBE19CFA40100C77E44 /* MCNNTPFetchArticlesOperation.h in Headers */,
+ 27780EBF19CFA40100C77E44 /* MCNNTPCheckAccountOperation.h in Headers */,
+ 27780EC019CFA40100C77E44 /* MCNNTPDisconnectOperation.h in Headers */,
+ 27780EC119CFA40200C77E44 /* MCNNTPOperation.h in Headers */,
+ 27780EC219CFA40200C77E44 /* MCNNTPOperationCallback.h in Headers */,
+ 27780EC319CFA40200C77E44 /* MCAsyncSMTP.h in Headers */,
+ 27780EC419CFA40200C77E44 /* MCSMTPAsyncSession.h in Headers */,
+ 27780EC519CFA40200C77E44 /* MCSMTPSendWithDataOperation.h in Headers */,
+ 27780EC619CFA40200C77E44 /* MCSMTPDisconnectOperation.h in Headers */,
+ 27780EC719CFA40300C77E44 /* MCSMTPNoopOperation.h in Headers */,
+ 27780EC819CFA40300C77E44 /* MCSMTPOperation.h in Headers */,
+ 27780EC919CFA40300C77E44 /* MCSMTPOperationCallback.h in Headers */,
+ 27780ECA19CFA40300C77E44 /* MCSMTPCheckAccountOperation.h in Headers */,
+ 27780ECB19CFA40300C77E44 /* MCAsync.h in Headers */,
+ 27780ECC19CFA40400C77E44 /* MCCertificateUtils.h in Headers */,
+ 27780ECD19CFA40400C77E44 /* MCZip.h in Headers */,
+ 27780ECE19CFA40400C77E44 /* ioapi.h in Headers */,
+ 27780ECF19CFA40400C77E44 /* mztools.h in Headers */,
+ 27780ED019CFA40400C77E44 /* unzip.h in Headers */,
+ 27780ED119CFA40500C77E44 /* zip.h in Headers */,
+ 27780ED219CFA40500C77E44 /* MCAbstract.h in Headers */,
+ 27780ED319CFA40500C77E44 /* MCAbstractMessage.h in Headers */,
+ 27780ED419CFA40500C77E44 /* MCAbstractMessagePart.h in Headers */,
+ 27780ED519CFA40500C77E44 /* MCAbstractMultipart.h in Headers */,
+ 27780ED619CFA40600C77E44 /* MCAbstractPart.h in Headers */,
+ 27780ED719CFA40600C77E44 /* MCAddress.h in Headers */,
+ 27780ED819CFA40600C77E44 /* MCMessageConstants.h in Headers */,
+ 27780ED919CFA40600C77E44 /* MCMessageHeader.h in Headers */,
+ 27780EDA19CFA40600C77E44 /* MCArray.h in Headers */,
+ 27780EDB19CFA40700C77E44 /* MCAssert.h in Headers */,
+ 27780EDC19CFA40700C77E44 /* MCAutoreleasePool.h in Headers */,
+ 27780EDD19CFA40700C77E44 /* MCBase64.h in Headers */,
+ 27780EDE19CFA40700C77E44 /* MCBaseTypes.h in Headers */,
+ 27780EDF19CFA40800C77E44 /* MCConnectionLogger.h in Headers */,
+ 27780EE019CFA40800C77E44 /* MCConnectionLoggerUtils.h in Headers */,
+ 27780EE119CFA40800C77E44 /* MCData.h in Headers */,
+ 27780EE219CFA40800C77E44 /* MCHash.h in Headers */,
+ 27780EE319CFA40900C77E44 /* MCHashMap.h in Headers */,
+ 27780EE419CFA40900C77E44 /* MCHTMLCleaner.h in Headers */,
+ 27780EE519CFA40900C77E44 /* MCICUTypes.h in Headers */,
+ 27780EE619CFA40900C77E44 /* MCIndexSet.h in Headers */,
+ 27780EE719CFA40900C77E44 /* MCIterator.h in Headers */,
+ 27780EE819CFA40A00C77E44 /* MCJSON.h in Headers */,
+ 27780EE919CFA40A00C77E44 /* MCJSONParser.h in Headers */,
+ 27780EEA19CFA40A00C77E44 /* MCLibetpan.h in Headers */,
+ 27780EEB19CFA40A00C77E44 /* MCLibetpanTypes.h in Headers */,
+ 27780EEC19CFA40B00C77E44 /* MCLog.h in Headers */,
+ 27780EED19CFA40B00C77E44 /* MCMainThread.h in Headers */,
+ 27780EEE19CFA40B00C77E44 /* MCMD5.h in Headers */,
+ 27780EEF19CFA40B00C77E44 /* MCNull.h in Headers */,
+ 27780EF019CFA40C00C77E44 /* MCObject.h in Headers */,
+ 27780EF119CFA40C00C77E44 /* MCOperation.h in Headers */,
+ 27780EF219CFA40C00C77E44 /* MCOperationCallback.h in Headers */,
+ 27780EF319CFA40C00C77E44 /* MCOperationQueue.h in Headers */,
+ 27780EF419CFA40D00C77E44 /* MCOperationQueueCallback.h in Headers */,
+ 27780EF519CFA40D00C77E44 /* MCRange.h in Headers */,
+ 27780EF619CFA40D00C77E44 /* MCSet.h in Headers */,
+ 27780EF719CFA40D00C77E44 /* MCString.h in Headers */,
+ 27780EF819CFA40E00C77E44 /* MCUtils.h in Headers */,
+ 27780EF919CFA40E00C77E44 /* MCValue.h in Headers */,
+ 27780EFB19CFA40E00C77E44 /* MCIMAP.h in Headers */,
+ 27780EFC19CFA40F00C77E44 /* MCIMAPFolder.h in Headers */,
+ 27780EFD19CFA40F00C77E44 /* MCIMAPMessage.h in Headers */,
+ 27780EFE19CFA40F00C77E44 /* MCIMAPMessagePart.h in Headers */,
+ 27780EFF19CFA41000C77E44 /* MCIMAPMultipart.h in Headers */,
+ 27780F0019CFA41000C77E44 /* MCIMAPNamespace.h in Headers */,
+ 27780F0119CFA41000C77E44 /* MCIMAPNamespaceItem.h in Headers */,
+ 27780F0219CFA41000C77E44 /* MCIMAPPart.h in Headers */,
+ 27780F0319CFA41100C77E44 /* MCIMAPProgressCallback.h in Headers */,
+ 27780F0419CFA41100C77E44 /* MCIMAPSearchExpression.h in Headers */,
+ 27780F0519CFA41100C77E44 /* MCIMAPSession.h in Headers */,
+ 27780F0619CFA41200C77E44 /* MCIMAPSyncResult.h in Headers */,
+ 27780F0719CFA41200C77E44 /* MCIMAPFolderStatus.h in Headers */,
+ 27780F0819CFA41200C77E44 /* MCIMAPIdentity.h in Headers */,
+ 27780F0919CFA41200C77E44 /* MCNNTP.h in Headers */,
+ 27780F0A19CFA41300C77E44 /* MCNNTPGroupInfo.h in Headers */,
+ 27780F0B19CFA41300C77E44 /* MCNNTPProgressCallback.h in Headers */,
+ 27780F0C19CFA41300C77E44 /* MCNNTPSession.h in Headers */,
+ 27780F0D19CFA41400C77E44 /* MCAddressDisplay.h in Headers */,
+ 27780F0E19CFA41400C77E44 /* MCDateFormatter.h in Headers */,
+ 27780F0F19CFA41400C77E44 /* MCSizeFormatter.h in Headers */,
+ 27780F1019CFA41400C77E44 /* MCHTMLRenderer.h in Headers */,
+ 27780F1119CFA41500C77E44 /* MCHTMLRendererCallback.h in Headers */,
+ 27780F1219CFA41500C77E44 /* MCRenderer.h in Headers */,
+ 27780F1319CFA41500C77E44 /* MCHTMLBodyRendererTemplateCallback.h in Headers */,
+ 27780F1419CFA41600C77E44 /* MCHTMLRendererIMAPDataCallback.h in Headers */,
+ 27780F1519CFA41600C77E44 /* MCAttachment.h in Headers */,
+ 27780F1619CFA41600C77E44 /* MCMessageBuilder.h in Headers */,
+ 27780F1719CFA41700C77E44 /* MCMessageParser.h in Headers */,
+ 27780F1819CFA41700C77E44 /* MCMessagePart.h in Headers */,
+ 27780F1919CFA41700C77E44 /* MCMultipart.h in Headers */,
+ 27780F1A19CFA41800C77E44 /* MCRFC822.h in Headers */,
+ 27780F1B19CFA41800C77E44 /* MCSMTP.h in Headers */,
+ 27780F1C19CFA41800C77E44 /* MCSMTPProgressCallback.h in Headers */,
+ 27780F1D19CFA41900C77E44 /* MCSMTPSession.h in Headers */,
+ 27780F1E19CFA41900C77E44 /* MCMailProvider.h in Headers */,
+ 27780F1F19CFA41900C77E44 /* MCMailProvidersManager.h in Headers */,
+ 27780F2019CFA41A00C77E44 /* MCNetService.h in Headers */,
+ 27780F2119CFA41A00C77E44 /* MCProvider.h in Headers */,
+ 27780F2219CFA41A00C77E44 /* MCCore.h in Headers */,
+ 27780F2319CFA41B00C77E44 /* MailCore.h in Headers */,
+ 27780E5719CFA3F600C77E44 /* MCOMessageHeader+Private.h in Headers */,
+ 27780E6919CFA3F700C77E44 /* MCOIMAPBaseOperation+Private.h in Headers */,
+ 27780E7D19CFA3F800C77E44 /* MCOOperation+Private.h in Headers */,
+ 27780E8719CFA3F900C77E44 /* MCOIndexSet+Private.h in Headers */,
+ 27780EFA19CFA40E00C77E44 /* MCValuePrivate.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 27780D3319CF9FA300C77E44 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 27780E2A19CFA39900C77E44 /* MCAsyncSMTP.h in Headers */,
+ 27780E2B19CFA39900C77E44 /* MCSMTPAsyncSession.h in Headers */,
+ 27780E2C19CFA39900C77E44 /* MCSMTPSendWithDataOperation.h in Headers */,
+ 27780E2D19CFA39900C77E44 /* MCSMTPDisconnectOperation.h in Headers */,
+ 27780E2E19CFA39900C77E44 /* MCSMTPNoopOperation.h in Headers */,
+ 27780E2F19CFA39900C77E44 /* MCSMTPOperation.h in Headers */,
+ 27780E3019CFA39900C77E44 /* MCSMTPOperationCallback.h in Headers */,
+ 27780E3119CFA39900C77E44 /* MCSMTPCheckAccountOperation.h in Headers */,
+ 27780D3619CFA32900C77E44 /* MCOFramework.h in Headers */,
+ 27780D3719CFA32900C77E44 /* MCOPOP.h in Headers */,
+ 27780D3819CFA32900C77E44 /* MCOPOPSession.h in Headers */,
+ 27780D3919CFA32900C77E44 /* MCOPOPOperation.h in Headers */,
+ 27780D3B19CFA32900C77E44 /* MCOPOPFetchHeaderOperation.h in Headers */,
+ 27780D3C19CFA32900C77E44 /* MCOPOPFetchMessageOperation.h in Headers */,
+ 27780D3D19CFA32900C77E44 /* MCOPOPFetchMessagesOperation.h in Headers */,
+ 27780D3E19CFA32900C77E44 /* MCOPOPNoopOperation.h in Headers */,
+ 27780D3F19CFA32900C77E44 /* MCOPOPMessageInfo.h in Headers */,
+ 27780D4019CFA32900C77E44 /* MCOSMTP.h in Headers */,
+ 27780D4119CFA32900C77E44 /* MCOSMTPSession.h in Headers */,
+ 27780D4219CFA32900C77E44 /* MCOSMTPSendOperation.h in Headers */,
+ 27780D4319CFA32900C77E44 /* MCOSMTPNoopOperation.h in Headers */,
+ 27780D4419CFA32900C77E44 /* MCOSMTPOperation.h in Headers */,
+ 27780D4619CFA32900C77E44 /* MCONNTP.h in Headers */,
+ 27780D4719CFA32900C77E44 /* MCONNTPSession.h in Headers */,
+ 27780D4819CFA32900C77E44 /* MCONNTPOperation.h in Headers */,
+ 27780D4A19CFA32900C77E44 /* MCONNTPFetchHeaderOperation.h in Headers */,
+ 27780D4B19CFA32900C77E44 /* MCONNTPFetchArticleOperation.h in Headers */,
+ 27780D4C19CFA32900C77E44 /* MCONNTPListNewsgroupsOperation.h in Headers */,
+ 27780D4D19CFA32900C77E44 /* MCONNTPFetchArticlesOperation.h in Headers */,
+ 27780D4E19CFA32900C77E44 /* MCONNTPDisconnectOperation.h in Headers */,
+ 27780D4F19CFA32900C77E44 /* MCONNTPGroupInfo.h in Headers */,
+ 27780D5019CFA32900C77E44 /* MCOAbstract.h in Headers */,
+ 27780D5119CFA32900C77E44 /* MCOAbstractMessage.h in Headers */,
+ 27780D5319CFA32900C77E44 /* MCOAbstractMessagePart.h in Headers */,
+ 27780D5419CFA32900C77E44 /* MCOAbstractMultipart.h in Headers */,
+ 27780D5519CFA32900C77E44 /* MCOAbstractPart.h in Headers */,
+ 27780D5719CFA32A00C77E44 /* MCOAddress.h in Headers */,
+ 27780D5919CFA32A00C77E44 /* MCOConstants.h in Headers */,
+ 27780D5A19CFA32A00C77E44 /* MCOMessageHeader.h in Headers */,
+ 27780D5C19CFA32A00C77E44 /* MCOHTMLRendererDelegate.h in Headers */,
+ 27780D5D19CFA32A00C77E44 /* MCOHTMLRendererIMAPDelegate.h in Headers */,
+ 27780D5E19CFA32A00C77E44 /* MCOAbstractMessageRendererCallback.h in Headers */,
+ 27780D5F19CFA32A00C77E44 /* MCOIMAP.h in Headers */,
+ 27780D6019CFA32A00C77E44 /* MCOIMAPSession.h in Headers */,
+ 27780D6119CFA32A00C77E44 /* MCOIMAPFolder.h in Headers */,
+ 27780D6219CFA32A00C77E44 /* MCOIMAPMessage.h in Headers */,
+ 27780D6319CFA32A00C77E44 /* MCOIMAPMessagePart.h in Headers */,
+ 27780D6419CFA32A00C77E44 /* MCOIMAPMultipart.h in Headers */,
+ 27780D6519CFA32A00C77E44 /* MCOIMAPNamespace.h in Headers */,
+ 27780D6619CFA32A00C77E44 /* MCOIMAPNamespaceItem.h in Headers */,
+ 27780D6719CFA32A00C77E44 /* MCOIMAPPart.h in Headers */,
+ 27780D6819CFA32A00C77E44 /* MCOIMAPFolderInfo.h in Headers */,
+ 27780D6919CFA32A00C77E44 /* MCOIMAPFetchFoldersOperation.h in Headers */,
+ 27780D6A19CFA32A00C77E44 /* MCOIMAPOperation.h in Headers */,
+ 27780D6B19CFA32B00C77E44 /* MCOIMAPFolderInfoOperation.h in Headers */,
+ 27780D6C19CFA32B00C77E44 /* MCOIMAPBaseOperation.h in Headers */,
+ 27780D6E19CFA32B00C77E44 /* MCOIMAPAppendMessageOperation.h in Headers */,
+ 27780D6F19CFA32B00C77E44 /* MCOIMAPCopyMessagesOperation.h in Headers */,
+ 27780D7019CFA32B00C77E44 /* MCOIMAPFetchMessagesOperation.h in Headers */,
+ 27780D7119CFA32B00C77E44 /* MCOIMAPFetchContentOperation.h in Headers */,
+ 27780D7219CFA32B00C77E44 /* MCOIMAPSearchOperation.h in Headers */,
+ 27780D7319CFA32B00C77E44 /* MCOIMAPIdleOperation.h in Headers */,
+ 27780D7419CFA32B00C77E44 /* MCOIMAPFetchNamespaceOperation.h in Headers */,
+ 27780D7519CFA32B00C77E44 /* MCOIMAPIdentityOperation.h in Headers */,
+ 27780D7619CFA32B00C77E44 /* MCOIMAPCapabilityOperation.h in Headers */,
+ 27780D7719CFA32B00C77E44 /* MCOIMAPQuotaOperation.h in Headers */,
+ 27780D7819CFA32B00C77E44 /* MCOIMAPSearchExpression.h in Headers */,
+ 27780D7919CFA32C00C77E44 /* MCOIMAPFolderStatus.h in Headers */,
+ 27780D7A19CFA32C00C77E44 /* MCOIMAPFolderStatusOperation.h in Headers */,
+ 27780D7B19CFA32C00C77E44 /* MCOIMAPMessageRenderingOperation.h in Headers */,
+ 27780D7C19CFA32C00C77E44 /* MCOIMAPNoopOperation.h in Headers */,
+ 27780D7D19CFA32C00C77E44 /* MCOIMAPIdentity.h in Headers */,
+ 27780D7E19CFA32C00C77E44 /* MCOIMAPMultiDisconnectOperation.h in Headers */,
+ 27780D7F19CFA32C00C77E44 /* MCOAttachment.h in Headers */,
+ 27780D8019CFA32C00C77E44 /* MCOMessageBuilder.h in Headers */,
+ 27780D8119CFA32C00C77E44 /* MCOMessageParser.h in Headers */,
+ 27780D8219CFA32C00C77E44 /* MCOMessagePart.h in Headers */,
+ 27780D8319CFA32C00C77E44 /* MCOMultipart.h in Headers */,
+ 27780D8419CFA32D00C77E44 /* MCORFC822.h in Headers */,
+ 27780D8519CFA32D00C77E44 /* MCOObjectWrapper.h in Headers */,
+ 27780D8619CFA32D00C77E44 /* MCOOperation.h in Headers */,
+ 27780D8819CFA32D00C77E44 /* MCOUtils.h in Headers */,
+ 27780D8919CFA32D00C77E44 /* NSArray+MCO.h in Headers */,
+ 27780D8A19CFA32D00C77E44 /* NSData+MCO.h in Headers */,
+ 27780D8B19CFA32D00C77E44 /* NSDictionary+MCO.h in Headers */,
+ 27780D8C19CFA32D00C77E44 /* NSError+MCO.h in Headers */,
+ 27780D8D19CFA32D00C77E44 /* NSObject+MCO.h in Headers */,
+ 27780D8E19CFA32E00C77E44 /* NSString+MCO.h in Headers */,
+ 27780D8F19CFA32E00C77E44 /* NSValue+MCO.h in Headers */,
+ 27780D9019CFA32E00C77E44 /* MCOIndexSet.h in Headers */,
+ 27780D9219CFA32E00C77E44 /* MCORange.h in Headers */,
+ 27780D9319CFA32E00C77E44 /* NSIndexSet+MCO.h in Headers */,
+ 27780D9419CFA32E00C77E44 /* NSSet+MCO.h in Headers */,
+ 27780D9519CFA32E00C77E44 /* MCOMailProvider.h in Headers */,
+ 27780D9619CFA32E00C77E44 /* MCOMailProvidersManager.h in Headers */,
+ 27780D9719CFA32F00C77E44 /* MCONetService.h in Headers */,
+ 27780D9819CFA32F00C77E44 /* MCOProvider.h in Headers */,
+ 27780D9919CFA32F00C77E44 /* MCObjC.h in Headers */,
+ 27780D9A19CFA32F00C77E44 /* MCAsyncIMAP.h in Headers */,
+ 27780D9B19CFA32F00C77E44 /* MCIMAPAsyncConnection.h in Headers */,
+ 27780D9C19CFA32F00C77E44 /* MCIMAPAsyncSession.h in Headers */,
+ 27780D9D19CFA32F00C77E44 /* MCIMAPOperation.h in Headers */,
+ 27780D9E19CFA32F00C77E44 /* MCIMAPOperationCallback.h in Headers */,
+ 27780D9F19CFA33000C77E44 /* MCIMAPCheckAccountOperation.h in Headers */,
+ 27780DA019CFA33000C77E44 /* MCIMAPConnectOperation.h in Headers */,
+ 27780DA119CFA33000C77E44 /* MCIMAPFetchFoldersOperation.h in Headers */,
+ 27780DA219CFA33000C77E44 /* MCIMAPRenameFolderOperation.h in Headers */,
+ 27780DA319CFA33000C77E44 /* MCIMAPDeleteFolderOperation.h in Headers */,
+ 27780DA419CFA33000C77E44 /* MCIMAPCreateFolderOperation.h in Headers */,
+ 27780DA519CFA33000C77E44 /* MCIMAPSubscribeFolderOperation.h in Headers */,
+ 27780DA619CFA33100C77E44 /* MCIMAPAppendMessageOperation.h in Headers */,
+ 27780DA719CFA33100C77E44 /* MCIMAPCopyMessagesOperation.h in Headers */,
+ 27780DA819CFA33100C77E44 /* MCIMAPExpungeOperation.h in Headers */,
+ 27780DA919CFA33100C77E44 /* MCIMAPFetchMessagesOperation.h in Headers */,
+ 27780DAA19CFA33100C77E44 /* MCIMAPFetchContentOperation.h in Headers */,
+ 27780DAB19CFA33100C77E44 /* MCIMAPStoreFlagsOperation.h in Headers */,
+ 27780DAC19CFA33100C77E44 /* MCIMAPStoreLabelsOperation.h in Headers */,
+ 27780DAD19CFA33200C77E44 /* MCIMAPSearchOperation.h in Headers */,
+ 27780DAE19CFA33200C77E44 /* MCIMAPIdleOperation.h in Headers */,
+ 27780DAF19CFA33200C77E44 /* MCIMAPFetchNamespaceOperation.h in Headers */,
+ 27780DB019CFA33200C77E44 /* MCIMAPIdentityOperation.h in Headers */,
+ 27780DB119CFA33200C77E44 /* MCIMAPFolderInfoOperation.h in Headers */,
+ 27780DB219CFA33200C77E44 /* MCIMAPCapabilityOperation.h in Headers */,
+ 27780DB319CFA33200C77E44 /* MCIMAPQuotaOperation.h in Headers */,
+ 27780DB419CFA33300C77E44 /* MCIMAPFolderStatusOperation.h in Headers */,
+ 27780DB519CFA33300C77E44 /* MCIMAPDisconnectOperation.h in Headers */,
+ 27780DB619CFA33300C77E44 /* MCIMAPMessageRenderingOperation.h in Headers */,
+ 27780DB719CFA33300C77E44 /* MCIMAPNoopOperation.h in Headers */,
+ 27780DB819CFA33300C77E44 /* MCIMAPMultiDisconnectOperation.h in Headers */,
+ 27780DB919CFA33300C77E44 /* MCAsyncPOP.h in Headers */,
+ 27780DBA19CFA33400C77E44 /* MCPOPAsyncSession.h in Headers */,
+ 27780DBB19CFA33400C77E44 /* MCPOPFetchHeaderOperation.h in Headers */,
+ 27780DBC19CFA33400C77E44 /* MCPOPFetchMessageOperation.h in Headers */,
+ 27780DBD19CFA33400C77E44 /* MCPOPDeleteMessagesOperation.h in Headers */,
+ 27780DBE19CFA33400C77E44 /* MCPOPFetchMessagesOperation.h in Headers */,
+ 27780DBF19CFA33400C77E44 /* MCPOPCheckAccountOperation.h in Headers */,
+ 27780DC019CFA33500C77E44 /* MCPOPNoopOperation.h in Headers */,
+ 27780DC119CFA33500C77E44 /* MCPOPOperation.h in Headers */,
+ 27780DC219CFA33500C77E44 /* MCPOPOperationCallback.h in Headers */,
+ 27780DC319CFA33500C77E44 /* MCAsyncNNTP.h in Headers */,
+ 27780DC419CFA33500C77E44 /* MCNNTPAsyncSession.h in Headers */,
+ 27780DC519CFA33500C77E44 /* MCNNTPFetchHeaderOperation.h in Headers */,
+ 27780DC619CFA33600C77E44 /* MCNNTPFetchArticleOperation.h in Headers */,
+ 27780DC719CFA33600C77E44 /* MCNNTPListNewsgroupsOperation.h in Headers */,
+ 27780DC819CFA33600C77E44 /* MCNNTPFetchArticlesOperation.h in Headers */,
+ 27780DC919CFA33600C77E44 /* MCNNTPCheckAccountOperation.h in Headers */,
+ 27780DCA19CFA33600C77E44 /* MCNNTPDisconnectOperation.h in Headers */,
+ 27780DCB19CFA33700C77E44 /* MCNNTPOperation.h in Headers */,
+ 27780DCC19CFA33700C77E44 /* MCNNTPOperationCallback.h in Headers */,
+ 27780DCD19CFA33700C77E44 /* MCAsync.h in Headers */,
+ 27780DCE19CFA33700C77E44 /* MCCertificateUtils.h in Headers */,
+ 27780DCF19CFA33700C77E44 /* MCZip.h in Headers */,
+ 27780DD019CFA33800C77E44 /* ioapi.h in Headers */,
+ 27780DD119CFA33800C77E44 /* mztools.h in Headers */,
+ 27780DD219CFA33800C77E44 /* unzip.h in Headers */,
+ 27780DD319CFA33800C77E44 /* zip.h in Headers */,
+ 27780DD419CFA33800C77E44 /* MCAbstract.h in Headers */,
+ 27780DD519CFA33900C77E44 /* MCAbstractMessage.h in Headers */,
+ 27780DD619CFA33900C77E44 /* MCAbstractMessagePart.h in Headers */,
+ 27780DD719CFA33900C77E44 /* MCAbstractMultipart.h in Headers */,
+ 27780DD819CFA33900C77E44 /* MCAbstractPart.h in Headers */,
+ 27780DD919CFA33900C77E44 /* MCAddress.h in Headers */,
+ 27780DDA19CFA33A00C77E44 /* MCMessageConstants.h in Headers */,
+ 27780DDB19CFA33A00C77E44 /* MCMessageHeader.h in Headers */,
+ 27780DDC19CFA33A00C77E44 /* MCArray.h in Headers */,
+ 27780DDD19CFA33A00C77E44 /* MCAssert.h in Headers */,
+ 27780DDE19CFA33A00C77E44 /* MCAutoreleasePool.h in Headers */,
+ 27780DDF19CFA33B00C77E44 /* MCBase64.h in Headers */,
+ 27780DE019CFA33B00C77E44 /* MCBaseTypes.h in Headers */,
+ 27780DE119CFA33B00C77E44 /* MCConnectionLogger.h in Headers */,
+ 27780DE219CFA33B00C77E44 /* MCConnectionLoggerUtils.h in Headers */,
+ 27780DE319CFA33B00C77E44 /* MCData.h in Headers */,
+ 27780DE419CFA33C00C77E44 /* MCHash.h in Headers */,
+ 27780DE519CFA33C00C77E44 /* MCHashMap.h in Headers */,
+ 27780DE619CFA33C00C77E44 /* MCHTMLCleaner.h in Headers */,
+ 27780DE719CFA33C00C77E44 /* MCICUTypes.h in Headers */,
+ 27780DE819CFA33D00C77E44 /* MCIndexSet.h in Headers */,
+ 27780DE919CFA33D00C77E44 /* MCIterator.h in Headers */,
+ 27780DEA19CFA33D00C77E44 /* MCJSON.h in Headers */,
+ 27780DEB19CFA33D00C77E44 /* MCJSONParser.h in Headers */,
+ 27780DEC19CFA33E00C77E44 /* MCLibetpan.h in Headers */,
+ 27780DED19CFA33E00C77E44 /* MCLibetpanTypes.h in Headers */,
+ 27780DEE19CFA33E00C77E44 /* MCLog.h in Headers */,
+ 27780DEF19CFA33E00C77E44 /* MCMainThread.h in Headers */,
+ 27780DF019CFA33F00C77E44 /* MCMD5.h in Headers */,
+ 27780DF119CFA33F00C77E44 /* MCNull.h in Headers */,
+ 27780DF219CFA33F00C77E44 /* MCObject.h in Headers */,
+ 27780DF319CFA33F00C77E44 /* MCOperation.h in Headers */,
+ 27780DF419CFA33F00C77E44 /* MCOperationCallback.h in Headers */,
+ 27780DF519CFA34000C77E44 /* MCOperationQueue.h in Headers */,
+ 27780DF619CFA34000C77E44 /* MCOperationQueueCallback.h in Headers */,
+ 27780DF719CFA34000C77E44 /* MCRange.h in Headers */,
+ 27780DF819CFA34000C77E44 /* MCSet.h in Headers */,
+ 27780DF919CFA34100C77E44 /* MCString.h in Headers */,
+ 27780DFA19CFA34100C77E44 /* MCUtils.h in Headers */,
+ 27780DFB19CFA34100C77E44 /* MCValue.h in Headers */,
+ 27780DFD19CFA34200C77E44 /* MCIMAP.h in Headers */,
+ 27780DFE19CFA34200C77E44 /* MCIMAPFolder.h in Headers */,
+ 27780DFF19CFA34200C77E44 /* MCIMAPMessage.h in Headers */,
+ 27780E0019CFA34300C77E44 /* MCIMAPMessagePart.h in Headers */,
+ 27780E0119CFA34300C77E44 /* MCIMAPMultipart.h in Headers */,
+ 27780E0219CFA34300C77E44 /* MCIMAPNamespace.h in Headers */,
+ 27780E0319CFA34300C77E44 /* MCIMAPNamespaceItem.h in Headers */,
+ 27780E0419CFA34400C77E44 /* MCIMAPPart.h in Headers */,
+ 27780E0519CFA34400C77E44 /* MCIMAPProgressCallback.h in Headers */,
+ 27780E0619CFA34400C77E44 /* MCIMAPSearchExpression.h in Headers */,
+ 27780E0719CFA34500C77E44 /* MCIMAPSession.h in Headers */,
+ 27780E0819CFA34500C77E44 /* MCIMAPSyncResult.h in Headers */,
+ 27780E0919CFA34500C77E44 /* MCIMAPFolderStatus.h in Headers */,
+ 27780E0A19CFA34500C77E44 /* MCIMAPIdentity.h in Headers */,
+ 27780E0B19CFA34600C77E44 /* MCPOP.h in Headers */,
+ 27780E0C19CFA34600C77E44 /* MCPOPMessageInfo.h in Headers */,
+ 27780E0D19CFA34600C77E44 /* MCPOPProgressCallback.h in Headers */,
+ 27780E0E19CFA34600C77E44 /* MCPOPSession.h in Headers */,
+ 27780E0F19CFA34700C77E44 /* MCNNTP.h in Headers */,
+ 27780E1019CFA34700C77E44 /* MCNNTPGroupInfo.h in Headers */,
+ 27780E1119CFA34700C77E44 /* MCNNTPProgressCallback.h in Headers */,
+ 27780E1219CFA34800C77E44 /* MCNNTPSession.h in Headers */,
+ 27780E1319CFA34800C77E44 /* MCAddressDisplay.h in Headers */,
+ 27780E1419CFA34800C77E44 /* MCDateFormatter.h in Headers */,
+ 27780E1519CFA34800C77E44 /* MCSizeFormatter.h in Headers */,
+ 27780E1619CFA34900C77E44 /* MCHTMLRenderer.h in Headers */,
+ 27780E1719CFA34900C77E44 /* MCHTMLRendererCallback.h in Headers */,
+ 27780E1819CFA34900C77E44 /* MCRenderer.h in Headers */,
+ 27780E1919CFA34A00C77E44 /* MCHTMLBodyRendererTemplateCallback.h in Headers */,
+ 27780E1A19CFA34A00C77E44 /* MCHTMLRendererIMAPDataCallback.h in Headers */,
+ 27780E1B19CFA34A00C77E44 /* MCAttachment.h in Headers */,
+ 27780E1C19CFA34B00C77E44 /* MCMessageBuilder.h in Headers */,
+ 27780E1D19CFA34B00C77E44 /* MCMessageParser.h in Headers */,
+ 27780E1E19CFA34B00C77E44 /* MCMessagePart.h in Headers */,
+ 27780E1F19CFA34C00C77E44 /* MCMultipart.h in Headers */,
+ 27780E2019CFA34C00C77E44 /* MCRFC822.h in Headers */,
+ 27780E2119CFA34C00C77E44 /* MCSMTP.h in Headers */,
+ 27780E2219CFA34C00C77E44 /* MCSMTPProgressCallback.h in Headers */,
+ 27780E2319CFA34D00C77E44 /* MCSMTPSession.h in Headers */,
+ 27780E2419CFA34D00C77E44 /* MCMailProvider.h in Headers */,
+ 27780E2519CFA34D00C77E44 /* MCMailProvidersManager.h in Headers */,
+ 27780E2619CFA34E00C77E44 /* MCNetService.h in Headers */,
+ 27780E2719CFA34E00C77E44 /* MCProvider.h in Headers */,
+ 27780E2819CFA34E00C77E44 /* MCCore.h in Headers */,
+ 27780E2919CFA34F00C77E44 /* MailCore.h in Headers */,
+ 27780D3A19CFA32900C77E44 /* MCOPOPOperation+Private.h in Headers */,
+ 27780D4519CFA32900C77E44 /* MCOSMTPOperation+Private.h in Headers */,
+ 27780D4919CFA32900C77E44 /* MCONNTPOperation+Private.h in Headers */,
+ 27780D5219CFA32900C77E44 /* MCOAbstractMessage+Private.h in Headers */,
+ 27780D5619CFA32900C77E44 /* MCOAbstractPart+Private.h in Headers */,
+ 27780D5819CFA32A00C77E44 /* MCOAddress+Private.h in Headers */,
+ 27780D5B19CFA32A00C77E44 /* MCOMessageHeader+Private.h in Headers */,
+ 27780D6D19CFA32B00C77E44 /* MCOIMAPBaseOperation+Private.h in Headers */,
+ 27780D8719CFA32D00C77E44 /* MCOOperation+Private.h in Headers */,
+ 27780D9119CFA32E00C77E44 /* MCOIndexSet+Private.h in Headers */,
+ 27780DFC19CFA34200C77E44 /* MCValuePrivate.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
/* Begin PBXNativeTarget section */
+ 27780C2A19CF9CD100C77E44 /* mailcore ios */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 27780C3719CF9CD100C77E44 /* Build configuration list for PBXNativeTarget "mailcore ios" */;
+ buildPhases = (
+ 27780C2D19CF9CD100C77E44 /* Sources */,
+ 27780C2F19CF9CD100C77E44 /* ShellScript */,
+ 27780C3019CF9CD100C77E44 /* Frameworks */,
+ 27780C3519CF9CD100C77E44 /* Resources */,
+ 27780D3319CF9FA300C77E44 /* Headers */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ 27780C4019CF9DE600C77E44 /* PBXTargetDependency */,
+ );
+ name = "mailcore ios";
+ productName = "mailcore framework";
+ productReference = 27780C3A19CF9CD100C77E44 /* MailCore-ios.framework */;
+ productType = "com.apple.product-type.framework";
+ };
C64EA536169E772200778456 /* static mailcore2 osx */ = {
isa = PBXNativeTarget;
buildConfigurationList = C64EA53B169E772200778456 /* Build configuration list for PBXNativeTarget "static mailcore2 osx" */;
@@ -2665,6 +3738,7 @@
C6BD28A6170BD87600A91AC1 /* ShellScript */,
C6BD2889170BD71100A91AC1 /* Frameworks */,
C6BD288B170BD71100A91AC1 /* Resources */,
+ 27780C4119CF9E1400C77E44 /* Headers */,
);
buildRules = (
);
@@ -2702,11 +3776,20 @@
C64EA78B169F259200778456 /* tests */,
C6A81B901706840C00882C15 /* test-ios */,
C6BD288C170BD71100A91AC1 /* mailcore osx */,
+ 27780C2A19CF9CD100C77E44 /* mailcore ios */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
+ 27780C3519CF9CD100C77E44 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 27780C3619CF9CD100C77E44 /* providers.json in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
84AF9E7F172DBB0000E60AA3 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -2740,6 +3823,19 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
+ 27780C2F19CF9CD100C77E44 /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "rsync -a \"$BUILT_PRODUCTS_DIR/include/MailCore/\" \"$BUILT_PRODUCTS_DIR/$PUBLIC_HEADERS_FOLDER_PATH\"\ncd \"$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME\"\nrm -f Headers\nln -sf \"Versions/Current/Headers\" Headers\n";
+ };
C64EA780169E867600778456 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 12;
@@ -2782,6 +3878,14 @@
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
+ 27780C2D19CF9CD100C77E44 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 27780C2E19CF9CD100C77E44 /* MCOFramework.mm in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
C64EA533169E772200778456 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -3222,6 +4326,11 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
+ 27780C4019CF9DE600C77E44 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = C6BA2B091705F4E6003F0E9E /* static mailcore2 ios */;
+ targetProxy = 27780C3F19CF9DE600C77E44 /* PBXContainerItemProxy */;
+ };
C6A81BB11706852200882C15 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = C6BA2B091705F4E6003F0E9E /* static mailcore2 ios */;
@@ -3240,6 +4349,66 @@
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
+ 27780C3819CF9CD100C77E44 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COMBINE_HIDPI_IMAGES = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ FRAMEWORK_VERSION = A;
+ INFOPLIST_FILE = "framework-Info.plist";
+ INSTALL_PATH = "@executable_path/../Frameworks";
+ OTHER_LDFLAGS = (
+ "-lctemplate-ios",
+ "-letpan-ios",
+ "-licudata",
+ "-licui18n",
+ "-licuuc",
+ "-lxml2",
+ "-lsasl2",
+ "-liconv",
+ "-ltidy",
+ "-lz",
+ "-licucore",
+ "-ObjC",
+ );
+ PRODUCT_NAME = "MailCore-ios";
+ SDKROOT = iphoneos;
+ WRAPPER_EXTENSION = framework;
+ };
+ name = Debug;
+ };
+ 27780C3919CF9CD100C77E44 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ COMBINE_HIDPI_IMAGES = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ FRAMEWORK_VERSION = A;
+ INFOPLIST_FILE = "framework-Info.plist";
+ INSTALL_PATH = "@executable_path/../Frameworks";
+ OTHER_LDFLAGS = (
+ "-lctemplate-ios",
+ "-letpan-ios",
+ "-licudata",
+ "-licui18n",
+ "-licuuc",
+ "-lxml2",
+ "-lsasl2",
+ "-liconv",
+ "-ltidy",
+ "-lz",
+ "-licucore",
+ "-ObjC",
+ );
+ PRODUCT_NAME = "MailCore-ios";
+ SDKROOT = iphoneos;
+ WRAPPER_EXTENSION = framework;
+ };
+ name = Release;
+ };
C64EA539169E772200778456 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -3535,6 +4704,15 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
+ 27780C3719CF9CD100C77E44 /* Build configuration list for PBXNativeTarget "mailcore ios" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 27780C3819CF9CD100C77E44 /* Debug */,
+ 27780C3919CF9CD100C77E44 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
C64EA531169E772200778456 /* Build configuration list for PBXProject "mailcore2" */ = {
isa = XCConfigurationList;
buildConfigurations = (
diff --git a/example/ios/iOS UI Test/iOS UI Test/MCTMsgViewController.mm b/example/ios/iOS UI Test/iOS UI Test/MCTMsgViewController.mm
index ed41fd87..db8a1122 100755
--- a/example/ios/iOS UI Test/iOS UI Test/MCTMsgViewController.mm
+++ b/example/ios/iOS UI Test/iOS UI Test/MCTMsgViewController.mm
@@ -50,7 +50,7 @@
}
else {
[_messageView setMessage:NULL];
- MCOIMAPFetchContentOperation * op = [_session fetchMessageByUIDOperationWithFolder:_folder uid:[_message uid]];
+ MCOIMAPFetchContentOperation * op = [_session fetchMessageOperationWithFolder:_folder uid:[_message uid]];
[_ops addObject:op];
[op start:^(NSError * error, NSData * data) {
if ([error code] != MCOErrorNone) {
@@ -99,7 +99,7 @@
[_pending addObject:partUniqueID];
- MCOIMAPFetchContentOperation * op = [_session fetchMessageAttachmentByUIDOperationWithFolder:folder uid:[_message uid] partID:[part partID] encoding:[part encoding]];
+ MCOIMAPFetchContentOperation * op = [_session fetchMessageAttachmentOperationWithFolder:folder uid:[_message uid] partID:[part partID] encoding:[part encoding]];
[_ops addObject:op];
[op start:^(NSError * error, NSData * data) {
if ([error code] != MCOErrorNone) {
diff --git a/example/mac/macExample/macExample/MCTMsgListViewController.m b/example/mac/macExample/macExample/MCTMsgListViewController.m
index 0d7cee7a..01aad8ae 100644
--- a/example/mac/macExample/macExample/MCTMsgListViewController.m
+++ b/example/mac/macExample/macExample/MCTMsgListViewController.m
@@ -58,7 +58,7 @@
MCOIMAPMessagesRequestKindInternalDate | MCOIMAPMessagesRequestKindHeaderSubject |
MCOIMAPMessagesRequestKindFlags);
- _op = [_session fetchMessagesByUIDOperationWithFolder:FOLDER requestKind:requestKind uids:[MCOIndexSet indexSetWithRange:MCORangeMake(1, UINT64_MAX)]];
+ _op = [_session fetchMessagesOperationWithFolder:FOLDER requestKind:requestKind uids:[MCOIndexSet indexSetWithRange:MCORangeMake(1, UINT64_MAX)]];
[_op setProgress:^(unsigned int current){
//NSLog(@"progress: %u", current);
}];
diff --git a/example/mac/macExample/macExample/MCTMsgViewController.m b/example/mac/macExample/macExample/MCTMsgViewController.m
index f26b783f..67cc3892 100644
--- a/example/mac/macExample/macExample/MCTMsgViewController.m
+++ b/example/mac/macExample/macExample/MCTMsgViewController.m
@@ -49,7 +49,7 @@
}
else {
[_messageView setMessage:NULL];
- MCOIMAPFetchContentOperation * op = [_session fetchMessageByUIDOperationWithFolder:_folder uid:[_message uid]];
+ MCOIMAPFetchContentOperation * op = [_session fetchMessageOperationWithFolder:_folder uid:[_message uid]];
[_ops addObject:op];
[op start:^(NSError * error, NSData * data) {
if ([error code] != MCOErrorNone) {
@@ -84,7 +84,7 @@
[_pending addObject:partUniqueID];
- MCOIMAPFetchContentOperation * op = [_session fetchMessageAttachmentByUIDOperationWithFolder:folder uid:[_message uid] partID:[part partID] encoding:[part encoding]];
+ MCOIMAPFetchContentOperation * op = [_session fetchMessageAttachmentOperationWithFolder:folder uid:[_message uid] partID:[part partID] encoding:[part encoding]];
[_ops addObject:op];
[op start:^(NSError * error, NSData * data) {
if ([error code] != MCOErrorNone) {
diff --git a/resources/providers.json b/resources/providers.json
index b53e6175..10d60b51 100644
--- a/resources/providers.json
+++ b/resources/providers.json
@@ -1,22 +1,152 @@
{
+ "hushmail":{
+ "servers":{
+ "imap":[
+ {
+ "port": 993,
+ "hostname":"imap.hushmail.com",
+ "ssl":true
+ }
+ ],
+ "pop":[
+ {
+ "port": 995,
+ "hostname":"pop.hushmail.com",
+ "ssl":true
+ }
+ ],
+ "smtp":[
+ {
+ "port":587,
+ "hostname":"smtp.hushmail.com",
+ "ssl":true
+ },
+ {
+ "port":465,
+ "hostname":"smtp.hushmail.com",
+ "ssl":true
+ },
+ {
+ "port":25,
+ "hostname":"smtp.hushmail.com",
+ "starttls":true
+ }
+ ]
+ },
+ "domain-match":[
+ "hushmail\\.com"
+ ]
+ },
+ "mail":{
+ "servers":{
+ "imap":[
+ {
+ "port": 993,
+ "hostname":"imap.mail.com",
+ "ssl":true
+ }
+ ],
+ "pop":[
+ {
+ "port": 995,
+ "hostname":"pop.mail.com",
+ "ssl":true
+ }
+ ],
+ "smtp":[
+ {
+ "port":587,
+ "hostname":"smtp.mail.com",
+ "ssl":true
+ },
+ {
+ "port":465,
+ "hostname":"smtp.mail.com",
+ "ssl":true
+ },
+ {
+ "port":25,
+ "hostname":"smtp.mail.com",
+ "ssl":true
+ }
+ ]
+ },
+ "domain-match":[
+ "mail\\.com"
+ ]
+ },
+ "zoho":{
+ "servers":{
+ "imap":[
+ {
+ "port": 993,
+ "hostname":"imap.zoho.com",
+ "ssl":true
+ }
+ ],
+ "pop":[
+ {
+ "port": 995,
+ "hostname":"pop.zoho.com",
+ "ssl":true
+ }
+ ],
+ "smtp":[
+ {
+ "port":465,
+ "hostname":"smtp.zoho.com",
+ "ssl":true
+ },
+ {
+ "port":587,
+ "hostname":"smtp.zoho.com",
+ "starttls":true
+ }
+ ]
+ },
+ "domain-match":[
+ "zoho\\.com"
+ ]
+ },
+ "juno":{
+ "servers":{
+ "pop":[
+ {
+ "port": 995,
+ "hostname":"pop.juno.com",
+ "ssl":true
+ }
+ ],
+ "smtp":[
+ {
+ "port":465,
+ "hostname":"smtp.juno.com",
+ "starttls":true
+ }
+ ]
+ },
+ "domain-match":[
+ "juno\\.com"
+ ]
+ },
"mobileme":{
"servers":{
"imap":[
{
"port":993,
- "hostname":"mail.me.com",
+ "hostname":"imap.mail.me.com",
"ssl":true
},
{
"port":143,
- "hostname":"mail.me.com",
+ "hostname":"imap.mail.me.com",
"starttls":true
}
],
"smtp":[
{
"port":587,
- "hostname":"smtp.me.com",
+ "hostname":"smtp.mail.me.com",
"starttls":true
}
]
@@ -957,6 +1087,34 @@
"trash": "Корзина"
}
},
+ "yandex": {
+ "servers": {
+ "imap": [
+ {
+ "port": 993,
+ "hostname": "imap.yandex.ru",
+ "ssl": true
+ }
+ ],
+ "smtp": [
+ {
+ "port": 465,
+ "hostname": "smtp.yandex.ru",
+ "ssl": true
+ }
+ ]
+
+ },
+ "domain-match": [
+ "yandex\\.ru"
+ ],
+ "mailboxes": {
+ "drafts": "Черновики",
+ "spam": "Спам",
+ "sentmail": "Отправленные",
+ "trash": "Удалённые"
+ }
+ },
"comcast": {
"servers": {
"pop": [{
diff --git a/scripts/build-mailcore2-ios.sh b/scripts/build-mailcore2-ios.sh
index b6d3bfe7..d388d530 100755
--- a/scripts/build-mailcore2-ios.sh
+++ b/scripts/build-mailcore2-ios.sh
@@ -1,17 +1,20 @@
#!/bin/sh
-if xcodebuild -showsdks|grep iphoneos6.1 >/dev/null ; then
- sdkversion=6.1
- devicearchs="armv7 armv7s"
-elif xcodebuild -showsdks|grep iphoneos7.0 >/dev/null ; then
- sdkversion=7.0
+if xcodebuild -showsdks|grep iphoneos8.1 >/dev/null ; then
+ sdkversion=8.1
+ devicearchs="armv7 armv7s arm64"
+elif xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
+ sdkversion=8.0
devicearchs="armv7 armv7s arm64"
elif xcodebuild -showsdks|grep iphoneos7.1 >/dev/null ; then
sdkversion=7.1
devicearchs="armv7 armv7s arm64"
-elif xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
- sdkversion=8.0
+elif xcodebuild -showsdks|grep iphoneos7.0 >/dev/null ; then
+ sdkversion=7.0
devicearchs="armv7 armv7s arm64"
+elif xcodebuild -showsdks|grep iphoneos6.1 >/dev/null ; then
+ sdkversion=6.1
+ devicearchs="armv7 armv7s"
else
echo SDK not found
exit 1
@@ -69,7 +72,7 @@ if test x$? != x0 ; then
exit 1
fi
sdk="iphonesimulator$sdkversion"
-simarchs="i386"
+simarchs="i386 x86_64"
echo building $sdk
xcodebuild -project mailcore2.xcodeproj -sdk $sdk -target "static mailcore2 ios" -configuration Release SYMROOT="$tmpdir/bin" OBJROOT="$tmpdir/obj" ARCHS="$simarchs"
if test x$? != x0 ; then
diff --git a/scripts/get-prebuilt.sh b/scripts/get-prebuilt.sh
index c9b9e193..b7d76670 100755
--- a/scripts/get-prebuilt.sh
+++ b/scripts/get-prebuilt.sh
@@ -2,6 +2,7 @@
url="https://github.com/MailCore/mailcore2-deps"
url_prefix="$url/raw/master"
+content_prefix="https://raw.githubusercontent.com/MailCore/mailcore2-deps/master"
if test x$1 != xskipprebuilt ; then
file_timestamp=0
@@ -15,8 +16,7 @@ if test x$1 != xskipprebuilt ; then
fi
if test $age -gt 0 ; then
networkerror=no
- #echo "$url_prefix/prebuilt.list"
- curl -3 -s -L "$url_prefix/prebuilt.list" > prebuilt.list.tmp
+ curl -s -L "$content_prefix/prebuilt.list" > prebuilt.list.tmp
if test x$? != x0 ; then
networkerror=yes
fi
diff --git a/scripts/prepare-ctemplate-ios.sh b/scripts/prepare-ctemplate-ios.sh
index d23c10fd..228f2294 100755
--- a/scripts/prepare-ctemplate-ios.sh
+++ b/scripts/prepare-ctemplate-ios.sh
@@ -2,7 +2,10 @@
url="https://github.com/dinhviethoa/ctemplate"
-if xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
+if xcodebuild -showsdks|grep iphoneos8.1 >/dev/null ; then
+ sdkversion=8.1
+ MARCHS="armv7 armv7s arm64"
+elif xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
sdkversion=8.0
MARCHS="armv7 armv7s arm64"
elif xcodebuild -showsdks|grep iphoneos7.1 >/dev/null ; then
diff --git a/scripts/prepare-icu4c-ios.sh b/scripts/prepare-icu4c-ios.sh
index 1e84686a..2e01c2db 100755
--- a/scripts/prepare-icu4c-ios.sh
+++ b/scripts/prepare-icu4c-ios.sh
@@ -1,11 +1,14 @@
#!/bin/sh
-if xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
+if xcodebuild -showsdks|grep iphoneos8.1 >/dev/null ; then
+ sdkversion=8.1
+ archs="armv7 armv7s arm64 i386 x86_64"
+elif xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
sdkversion=8.0
archs="armv7 armv7s arm64 i386 x86_64"
elif xcodebuild -showsdks|grep iphoneos7.1 >/dev/null ; then
- sdkversion=7.1
- archs="armv7 armv7s arm64 i386 x86_64"
+ sdkversion=7.1
+ archs="armv7 armv7s arm64 i386 x86_64"
elif xcodebuild -showsdks|grep iphoneos7.0 >/dev/null ; then
sdkversion=7.0
archs="armv7 armv7s arm64 i386 x86_64"
@@ -95,13 +98,20 @@ make # >> "$logdir/icu4c-build.log"
make install "prefix=$tmpdir/crossbuild/icu4c-$MARCH" # >> "$logdir/icu4c-build.log"
ARCH=arm
-if xcodebuild -showsdks|grep iphoneos7.0 >/dev/null ; then
+if xcodebuild -showsdks|grep iphoneos8.1 >/dev/null ; then
+ sdkversion=8.1
+ MARCHS="armv7 armv7s arm64"
+elif xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
+ sdkversion=8.0
+ MARCHS="armv7 armv7s arm64"
+elif xcodebuild -showsdks|grep iphoneos7.1 >/dev/null ; then
+ sdkversion=7.1
+ MARCHS="armv7 armv7s arm64"
+elif xcodebuild -showsdks|grep iphoneos7.0 >/dev/null ; then
sdkversion=7.0
MARCHS="armv7 armv7s arm64"
elif xcodebuild -showsdks|grep iphoneos6.1 >/dev/null ; then
MARCHS="armv7 armv7s"
-elif xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
- MARCHS="armv7 armv7s arm64"
else
echo SDK not found
exit 1
diff --git a/scripts/prepare-icu4c-macos.sh b/scripts/prepare-icu4c-macos.sh
index 13455f44..d7d6f46b 100755
--- a/scripts/prepare-icu4c-macos.sh
+++ b/scripts/prepare-icu4c-macos.sh
@@ -6,7 +6,7 @@ build_version="$version~1"
url="http://download.icu-project.org/files/icu4c/$versionfolder/icu4c-$version-src.tgz"
package_filename="icu4c-$version-src.tgz"
arch="x86_64"
-sysrootpath="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk"
+sysrootpath="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk"
enable_icu_data=0
arch_flags=""
diff --git a/scripts/prepare-libetpan-ios.sh b/scripts/prepare-libetpan-ios.sh
index 154f855b..a781656e 100755
--- a/scripts/prepare-libetpan-ios.sh
+++ b/scripts/prepare-libetpan-ios.sh
@@ -1,6 +1,9 @@
#!/bin/sh
-if xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
+if xcodebuild -showsdks|grep iphoneos8.1 >/dev/null ; then
+ sdkversion=8.1
+ devicearchs="armv7 armv7s arm64"
+elif xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
sdkversion=8.0
devicearchs="armv7 armv7s arm64"
elif xcodebuild -showsdks|grep iphoneos7.1 >/dev/null ; then
@@ -18,7 +21,7 @@ else
fi
url="https://github.com/dinhviethoa/libetpan.git"
-rev=4d5df1aec89ec19f2c51249986007267a1adea27
+rev=126bd7c564d0b60eec90684af179f96873edae48
pushd `dirname $0` > /dev/null
scriptpath=`pwd`
diff --git a/scripts/prepare-libetpan-macos.sh b/scripts/prepare-libetpan-macos.sh
index 562f30d6..6752973d 100755
--- a/scripts/prepare-libetpan-macos.sh
+++ b/scripts/prepare-libetpan-macos.sh
@@ -1,7 +1,7 @@
#!/bin/sh
url="https://github.com/dinhviethoa/libetpan.git"
-rev=4d5df1aec89ec19f2c51249986007267a1adea27
+rev=126bd7c564d0b60eec90684af179f96873edae48
pushd `dirname $0` > /dev/null
scriptpath=`pwd`
diff --git a/scripts/prepare-tidy-ios.sh b/scripts/prepare-tidy-ios.sh
index cae34513..0bce77d0 100755
--- a/scripts/prepare-tidy-ios.sh
+++ b/scripts/prepare-tidy-ios.sh
@@ -1,8 +1,11 @@
#!/bin/sh
-if xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
+if xcodebuild -showsdks|grep iphoneos8.1 >/dev/null ; then
+ sdkversion=8.1
+ devicearchs="armv7 armv7s arm64"
+elif xcodebuild -showsdks|grep iphoneos8.0 >/dev/null ; then
sdkversion=8.0
- devicearchs="armv7 armv7s arm64"
+ devicearchs="armv7 armv7s arm64"
elif xcodebuild -showsdks|grep iphoneos7.1 >/dev/null ; then
sdkversion=7.1
devicearchs="armv7 armv7s arm64"
diff --git a/scripts/prepare.sh b/scripts/prepare.sh
index 9b76ec12..6ba0c188 100755
--- a/scripts/prepare.sh
+++ b/scripts/prepare.sh
@@ -1,4 +1,15 @@
#!/bin/sh
-./prepare-mac.sh
-./prepare-ios.sh
+# If this script is run outside of Xcode, prepare both platforms by default
+if [ -z "$SDKROOT" ]; then
+ SDKROOT="MacOSX iPhone"
+fi
+
+if echo "$SDKROOT" | grep -q "MacOSX"; then
+ echo "Preparing Mac"
+ ./prepare-mac.sh
+fi
+if echo "$SDKROOT" | grep -q "iPhone"; then
+ echo "Preparing iOS"
+ ./prepare-ios.sh
+fi
diff --git a/scripts/travis/script.sh b/scripts/travis/script.sh
index 0790e1d3..3473452b 100755
--- a/scripts/travis/script.sh
+++ b/scripts/travis/script.sh
@@ -4,22 +4,30 @@ set -e
echo Operating system:
uname
+mkdir -p Externals/prebuilt
+cd Externals/prebuilt
+git clone --depth=1 https://github.com/MailCore/mailcore2-deps
+cd ../..
+cp Externals/prebuilt/mailcore2-deps/prebuilt.list scripts/prebuilt.list
+mkdir -p Externals/builds/builds
+rsync --exclude=.git -av Externals/prebuilt/mailcore2-deps/ Externals/builds/builds/
+
if test x"`uname`" = xDarwin ; then
echo Building library for iPhoneOS
- xctool -project build-mac/mailcore2.xcodeproj -sdk iphoneos7.1 -scheme "static mailcore2 ios" build ARCHS="armv7 armv7s arm64"
+ xctool -project build-mac/mailcore2.xcodeproj -sdk iphoneos8.0 -scheme "static mailcore2 ios" build ARCHS="armv7 armv7s arm64"
echo Building library for iPhoneSimulator
- xctool -project build-mac/mailcore2.xcodeproj -sdk iphonesimulator7.1 -scheme "static mailcore2 ios" build ARCHS="i386 x86_64"
+ xctool -project build-mac/mailcore2.xcodeproj -sdk iphonesimulator8.0 -scheme "static mailcore2 ios" build ARCHS="i386 x86_64"
#echo Link test for iPhoneOS
#xcodebuild -project build-mac/mailcore2.xcodeproj -sdk iphoneos7.1 -target "test-ios" CODE_SIGN_IDENTITY="" build
echo Link test for iPhoneSimulator
- xctool -project build-mac/mailcore2.xcodeproj -sdk iphonesimulator7.1 -scheme "test-ios" build ARCHS="i386 x86_64"
+ xctool -project build-mac/mailcore2.xcodeproj -sdk iphonesimulator8.0 -scheme "test-ios" build ARCHS="i386 x86_64"
echo Building library for Mac
- xctool -project build-mac/mailcore2.xcodeproj -sdk macosx10.8 -scheme "static mailcore2 osx" build
+ xctool -project build-mac/mailcore2.xcodeproj -sdk macosx10.9 -scheme "static mailcore2 osx" build
echo Building framework for Mac
- xctool -project build-mac/mailcore2.xcodeproj -sdk macosx10.8 -scheme "mailcore osx" build
+ xctool -project build-mac/mailcore2.xcodeproj -sdk macosx10.9 -scheme "mailcore osx" build
echo Link test for Mac
- xctool -project build-mac/mailcore2.xcodeproj -sdk macosx10.8 -scheme "tests" build
+ xctool -project build-mac/mailcore2.xcodeproj -sdk macosx10.9 -scheme "tests" build
fi
echo Testing CMake build
diff --git a/src/async/imap/MCIMAPAsyncSession.cc b/src/async/imap/MCIMAPAsyncSession.cc
index 68625746..ef3bb621 100755
--- a/src/async/imap/MCIMAPAsyncSession.cc
+++ b/src/async/imap/MCIMAPAsyncSession.cc
@@ -524,7 +524,32 @@ IMAPFetchContentOperation * IMAPAsyncSession::fetchMessageAttachmentByUIDOperati
return op;
}
-IMAPOperation * IMAPAsyncSession::storeFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags)
+IMAPFetchContentOperation * IMAPAsyncSession::fetchMessageByNumberOperation(String * folder, uint32_t number, bool urgent)
+{
+ IMAPFetchContentOperation * op = new IMAPFetchContentOperation();
+ op->setMainSession(this);
+ op->setFolder(folder);
+ op->setNumber(number);
+ op->setUrgent(urgent);
+ op->autorelease();
+ return op;
+}
+
+IMAPFetchContentOperation * IMAPAsyncSession::fetchMessageAttachmentByNumberOperation(String * folder, uint32_t number, String * partID,
+ Encoding encoding, bool urgent)
+{
+ IMAPFetchContentOperation * op = new IMAPFetchContentOperation();
+ op->setMainSession(this);
+ op->setFolder(folder);
+ op->setNumber(number);
+ op->setPartID(partID);
+ op->setEncoding(encoding);
+ op->setUrgent(urgent);
+ op->autorelease();
+ return op;
+}
+
+IMAPOperation * IMAPAsyncSession::storeFlagsByUIDOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags)
{
IMAPStoreFlagsOperation * op = new IMAPStoreFlagsOperation();
op->setMainSession(this);
@@ -537,7 +562,20 @@ IMAPOperation * IMAPAsyncSession::storeFlagsOperation(String * folder, IndexSet
return op;
}
-IMAPOperation * IMAPAsyncSession::storeLabelsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, Array * labels)
+IMAPOperation * IMAPAsyncSession::storeFlagsByNumberOperation(String * folder, IndexSet * numbers, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags)
+{
+ IMAPStoreFlagsOperation * op = new IMAPStoreFlagsOperation();
+ op->setMainSession(this);
+ op->setFolder(folder);
+ op->setNumbers(numbers);
+ op->setKind(kind);
+ op->setFlags(flags);
+ op->setCustomFlags(customFlags);
+ op->autorelease();
+ return op;
+}
+
+IMAPOperation * IMAPAsyncSession::storeLabelsByUIDOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, Array * labels)
{
IMAPStoreLabelsOperation * op = new IMAPStoreLabelsOperation();
op->setMainSession(this);
@@ -549,6 +587,18 @@ IMAPOperation * IMAPAsyncSession::storeLabelsOperation(String * folder, IndexSet
return op;
}
+IMAPOperation * IMAPAsyncSession::storeLabelsByNumberOperation(String * folder, IndexSet * numbers, IMAPStoreFlagsRequestKind kind, Array * labels)
+{
+ IMAPStoreLabelsOperation * op = new IMAPStoreLabelsOperation();
+ op->setMainSession(this);
+ op->setFolder(folder);
+ op->setNumbers(numbers);
+ op->setKind(kind);
+ op->setLabels(labels);
+ op->autorelease();
+ return op;
+}
+
IMAPSearchOperation * IMAPAsyncSession::searchOperation(String * folder, IMAPSearchKind kind, String * searchString)
{
IMAPSearchOperation * op = new IMAPSearchOperation();
diff --git a/src/async/imap/MCIMAPAsyncSession.h b/src/async/imap/MCIMAPAsyncSession.h
index 333783b2..a7ec90a0 100755
--- a/src/async/imap/MCIMAPAsyncSession.h
+++ b/src/async/imap/MCIMAPAsyncSession.h
@@ -133,8 +133,14 @@ namespace mailcore {
virtual IMAPFetchContentOperation * fetchMessageAttachmentByUIDOperation(String * folder, uint32_t uid, String * partID,
Encoding encoding, bool urgent = false);
- virtual IMAPOperation * storeFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags = NULL);
- virtual IMAPOperation * storeLabelsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, Array * labels);
+ virtual IMAPFetchContentOperation * fetchMessageByNumberOperation(String * folder, uint32_t number, bool urgent = false);
+ virtual IMAPFetchContentOperation * fetchMessageAttachmentByNumberOperation(String * folder, uint32_t number, String * partID,
+ Encoding encoding, bool urgent = false);
+
+ virtual IMAPOperation * storeFlagsByUIDOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags = NULL);
+ virtual IMAPOperation * storeFlagsByNumberOperation(String * folder, IndexSet * numbers, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags = NULL);
+ virtual IMAPOperation * storeLabelsByUIDOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, Array * labels);
+ virtual IMAPOperation * storeLabelsByNumberOperation(String * folder, IndexSet * numbers, IMAPStoreFlagsRequestKind kind, Array * labels);
virtual IMAPSearchOperation * searchOperation(String * folder, IMAPSearchKind kind, String * searchString);
virtual IMAPSearchOperation * searchOperation(String * folder, IMAPSearchExpression * expression);
diff --git a/src/async/imap/MCIMAPFetchContentOperation.cc b/src/async/imap/MCIMAPFetchContentOperation.cc
index de3b911e..049ac8a7 100644
--- a/src/async/imap/MCIMAPFetchContentOperation.cc
+++ b/src/async/imap/MCIMAPFetchContentOperation.cc
@@ -16,6 +16,7 @@ using namespace mailcore;
IMAPFetchContentOperation::IMAPFetchContentOperation()
{
mUid = 0;
+ mNumber = 0;
mPartID = NULL;
mEncoding = Encoding7Bit;
mData = NULL;
@@ -37,6 +38,16 @@ uint32_t IMAPFetchContentOperation::uid()
return mUid;
}
+void IMAPFetchContentOperation::setNumber(uint32_t value)
+{
+ mNumber = value;
+}
+
+uint32_t IMAPFetchContentOperation::number()
+{
+ return mNumber;
+}
+
void IMAPFetchContentOperation::setPartID(String * partID)
{
MC_SAFE_REPLACE_COPY(String, mPartID, partID);
@@ -65,11 +76,21 @@ Data * IMAPFetchContentOperation::data()
void IMAPFetchContentOperation::main()
{
ErrorCode error;
- if (mPartID != NULL) {
- mData = session()->session()->fetchMessageAttachmentByUID(folder(), mUid, mPartID, mEncoding, this, &error);
+ if (mUid != 0) {
+ if (mPartID != NULL) {
+ mData = session()->session()->fetchMessageAttachmentByUID(folder(), mUid, mPartID, mEncoding, this, &error);
+ }
+ else {
+ mData = session()->session()->fetchMessageByUID(folder(), mUid, this, &error);
+ }
}
else {
- mData = session()->session()->fetchMessageByUID(folder(), mUid, this, &error);
+ if (mPartID != NULL) {
+ mData = session()->session()->fetchMessageAttachmentByNumber(folder(), mNumber, mPartID, mEncoding, this, &error);
+ }
+ else {
+ mData = session()->session()->fetchMessageByNumber(folder(), mNumber, this, &error);
+ }
}
MC_SAFE_RETAIN(mData);
setError(error);
diff --git a/src/async/imap/MCIMAPFetchContentOperation.h b/src/async/imap/MCIMAPFetchContentOperation.h
index 3d4dd17d..3cae3c5a 100644
--- a/src/async/imap/MCIMAPFetchContentOperation.h
+++ b/src/async/imap/MCIMAPFetchContentOperation.h
@@ -24,6 +24,9 @@ namespace mailcore {
virtual void setUid(uint32_t uid);
virtual uint32_t uid();
+ virtual void setNumber(uint32_t value);
+ virtual uint32_t number();
+
virtual void setPartID(String * partID);
virtual String * partID();
@@ -38,6 +41,7 @@ namespace mailcore {
private:
uint32_t mUid;
+ uint32_t mNumber;
String * mPartID;
Encoding mEncoding;
Data * mData;
diff --git a/src/async/imap/MCIMAPFolderInfoOperation.cc b/src/async/imap/MCIMAPFolderInfoOperation.cc
index 8ca500f3..0ea0d005 100644
--- a/src/async/imap/MCIMAPFolderInfoOperation.cc
+++ b/src/async/imap/MCIMAPFolderInfoOperation.cc
@@ -20,6 +20,7 @@ IMAPFolderInfoOperation::IMAPFolderInfoOperation()
mMessageCount = 0;
mModSequenceValue = 0;
mFirstUnseenUid = 0;
+ mAllowsNewPermanentFlags = false;
}
IMAPFolderInfoOperation::~IMAPFolderInfoOperation()
@@ -51,6 +52,11 @@ uint32_t IMAPFolderInfoOperation::firstUnseenUid()
return mFirstUnseenUid;
}
+bool IMAPFolderInfoOperation::allowsNewPermanentFlags()
+{
+ return mAllowsNewPermanentFlags;
+}
+
void IMAPFolderInfoOperation::main()
{
ErrorCode error;
@@ -73,7 +79,8 @@ void IMAPFolderInfoOperation::main()
mModSequenceValue = session()->session()->modSequenceValue();
mMessageCount = session()->session()->lastFolderMessageCount();
mFirstUnseenUid = session()->session()->firstUnseenUid();
-
+ mAllowsNewPermanentFlags = session()->session()->allowsNewPermanentFlags();
+
setError(error);
}
diff --git a/src/async/imap/MCIMAPFolderInfoOperation.h b/src/async/imap/MCIMAPFolderInfoOperation.h
index 9b0027a4..b53be2cb 100644
--- a/src/async/imap/MCIMAPFolderInfoOperation.h
+++ b/src/async/imap/MCIMAPFolderInfoOperation.h
@@ -26,6 +26,7 @@ namespace mailcore {
virtual uint64_t modSequenceValue();
virtual int messageCount();
virtual uint32_t firstUnseenUid();
+ virtual bool allowsNewPermanentFlags();
public: // subclass behavior
virtual void main();
@@ -37,7 +38,8 @@ namespace mailcore {
uint64_t mModSequenceValue;
int mMessageCount;
uint32_t mFirstUnseenUid;
-
+ bool mAllowsNewPermanentFlags;
+
};
}
diff --git a/src/async/imap/MCIMAPStoreFlagsOperation.cc b/src/async/imap/MCIMAPStoreFlagsOperation.cc
index df68529a..a049333e 100644
--- a/src/async/imap/MCIMAPStoreFlagsOperation.cc
+++ b/src/async/imap/MCIMAPStoreFlagsOperation.cc
@@ -16,6 +16,7 @@ using namespace mailcore;
IMAPStoreFlagsOperation::IMAPStoreFlagsOperation()
{
mUids = NULL;
+ mNumbers = NULL;
mKind = IMAPStoreFlagsRequestKindAdd;
mFlags = MessageFlagNone;
mCustomFlags = NULL;
@@ -23,6 +24,7 @@ IMAPStoreFlagsOperation::IMAPStoreFlagsOperation()
IMAPStoreFlagsOperation::~IMAPStoreFlagsOperation()
{
+ MC_SAFE_RELEASE(mNumbers);
MC_SAFE_RELEASE(mUids);
MC_SAFE_RELEASE(mCustomFlags);
}
@@ -37,6 +39,16 @@ IndexSet * IMAPStoreFlagsOperation::uids()
return mUids;
}
+void IMAPStoreFlagsOperation::setNumbers(IndexSet * numbers)
+{
+ MC_SAFE_REPLACE_RETAIN(IndexSet, mNumbers, numbers);
+}
+
+IndexSet * IMAPStoreFlagsOperation::numbers()
+{
+ return mNumbers;
+}
+
void IMAPStoreFlagsOperation::setKind(IMAPStoreFlagsRequestKind kind)
{
mKind = kind;
@@ -70,6 +82,11 @@ Array * IMAPStoreFlagsOperation::customFlags()
void IMAPStoreFlagsOperation::main()
{
ErrorCode error;
- session()->session()->storeFlagsAndCustomFlags(folder(), mUids, mKind, mFlags, mCustomFlags, &error);
+ if (mUids != NULL) {
+ session()->session()->storeFlagsAndCustomFlagsByUID(folder(), mUids, mKind, mFlags, mCustomFlags, &error);
+ }
+ else {
+ session()->session()->storeFlagsAndCustomFlagsByNumber(folder(), mNumbers, mKind, mFlags, mCustomFlags, &error);
+ }
setError(error);
}
diff --git a/src/async/imap/MCIMAPStoreFlagsOperation.h b/src/async/imap/MCIMAPStoreFlagsOperation.h
index f6219b30..1687f5cd 100644
--- a/src/async/imap/MCIMAPStoreFlagsOperation.h
+++ b/src/async/imap/MCIMAPStoreFlagsOperation.h
@@ -24,6 +24,9 @@ namespace mailcore {
virtual void setUids(IndexSet * uids);
virtual IndexSet * uids();
+ virtual void setNumbers(IndexSet * numbers);
+ virtual IndexSet * numbers();
+
virtual void setKind(IMAPStoreFlagsRequestKind kind);
virtual IMAPStoreFlagsRequestKind kind();
@@ -38,6 +41,7 @@ namespace mailcore {
private:
IndexSet * mUids;
+ IndexSet * mNumbers;
IMAPStoreFlagsRequestKind mKind;
MessageFlag mFlags;
Array * mCustomFlags;
diff --git a/src/async/imap/MCIMAPStoreLabelsOperation.cc b/src/async/imap/MCIMAPStoreLabelsOperation.cc
index ed738d11..3ad2212a 100644
--- a/src/async/imap/MCIMAPStoreLabelsOperation.cc
+++ b/src/async/imap/MCIMAPStoreLabelsOperation.cc
@@ -16,12 +16,14 @@ using namespace mailcore;
IMAPStoreLabelsOperation::IMAPStoreLabelsOperation()
{
mUids = NULL;
+ mNumbers = NULL;
mKind = IMAPStoreFlagsRequestKindAdd;
mLabels = NULL;
}
IMAPStoreLabelsOperation::~IMAPStoreLabelsOperation()
{
+ MC_SAFE_RELEASE(mNumbers);
MC_SAFE_RELEASE(mUids);
MC_SAFE_RELEASE(mLabels);
}
@@ -36,6 +38,16 @@ IndexSet * IMAPStoreLabelsOperation::uids()
return mUids;
}
+void IMAPStoreLabelsOperation::setNumbers(IndexSet * numbers)
+{
+ MC_SAFE_REPLACE_RETAIN(IndexSet, mNumbers, numbers);
+}
+
+IndexSet * IMAPStoreLabelsOperation::numbers()
+{
+ return mNumbers;
+}
+
void IMAPStoreLabelsOperation::setKind(IMAPStoreFlagsRequestKind kind)
{
mKind = kind;
@@ -59,7 +71,12 @@ Array * IMAPStoreLabelsOperation::labels()
void IMAPStoreLabelsOperation::main()
{
ErrorCode error;
- session()->session()->storeLabels(folder(), mUids, mKind, mLabels, &error);
+ if (mUids != NULL) {
+ session()->session()->storeLabelsByUID(folder(), mUids, mKind, mLabels, &error);
+ }
+ else {
+ session()->session()->storeLabelsByNumber(folder(), mUids, mKind, mLabels, &error);
+ }
setError(error);
}
diff --git a/src/async/imap/MCIMAPStoreLabelsOperation.h b/src/async/imap/MCIMAPStoreLabelsOperation.h
index 822cd83f..53348309 100644
--- a/src/async/imap/MCIMAPStoreLabelsOperation.h
+++ b/src/async/imap/MCIMAPStoreLabelsOperation.h
@@ -24,6 +24,9 @@ namespace mailcore {
virtual void setUids(IndexSet * uids);
virtual IndexSet * uids();
+ virtual void setNumbers(IndexSet * numbers);
+ virtual IndexSet * numbers();
+
virtual void setKind(IMAPStoreFlagsRequestKind kind);
virtual IMAPStoreFlagsRequestKind kind();
@@ -35,6 +38,7 @@ namespace mailcore {
private:
IndexSet * mUids;
+ IndexSet * mNumbers;
IMAPStoreFlagsRequestKind mKind;
Array * /* String */ mLabels;
diff --git a/src/core/abstract/MCAbstractPart.cc b/src/core/abstract/MCAbstractPart.cc
index 50f12249..5b7a1c9a 100644
--- a/src/core/abstract/MCAbstractPart.cc
+++ b/src/core/abstract/MCAbstractPart.cc
@@ -27,6 +27,7 @@ AbstractPart::AbstractPart(AbstractPart * other)
setContentDescription(other->mContentDescription);
setInlineAttachment(other->mInlineAttachment);
setPartType(other->mPartType);
+ setContentTypeParameters(other->mContentTypeParameters);
}
void AbstractPart::init()
@@ -40,6 +41,7 @@ void AbstractPart::init()
mContentDescription = NULL;
mInlineAttachment = false;
mPartType = PartTypeSingle;
+ mContentTypeParameters = NULL;
}
AbstractPart::~AbstractPart()
@@ -51,6 +53,7 @@ AbstractPart::~AbstractPart()
MC_SAFE_RELEASE(mContentID);
MC_SAFE_RELEASE(mContentLocation);
MC_SAFE_RELEASE(mContentDescription);
+ MC_SAFE_RELEASE(mContentTypeParameters);
}
String * AbstractPart::description()
@@ -76,6 +79,11 @@ String * AbstractPart::description()
result->appendUTF8Format("content-description: %s\n", mContentDescription->UTF8Characters());
}
result->appendUTF8Format("inline: %i\n", mInlineAttachment);
+ if (mContentTypeParameters != NULL) {
+ mc_foreachhashmapKeyAndValue(String, key, String, value, mContentTypeParameters) {
+ result->appendUTF8Format("%s: %s\n", key->UTF8Characters(), value->UTF8Characters());
+ }
+ }
result->appendUTF8Format(">");
return result;
@@ -395,3 +403,46 @@ void AbstractPart::importSerializable(HashMap * serializable)
}
}
}
+
+void AbstractPart::setContentTypeParameters(HashMap * parameters)
+{
+ MC_SAFE_REPLACE_COPY(HashMap, mContentTypeParameters, parameters);
+}
+
+Array * AbstractPart::allContentTypeParametersNames()
+{
+ if (mContentTypeParameters == NULL)
+ return Array::array();
+ return mContentTypeParameters->allKeys();
+}
+
+void AbstractPart::setContentTypeParameter(String * name, String * object)
+{
+ if (mContentTypeParameters == NULL) {
+ mContentTypeParameters = new HashMap();
+ }
+ removeContentTypeParameter(name);
+ mContentTypeParameters->setObjectForKey(name, object);
+}
+
+void AbstractPart::removeContentTypeParameter(String * name)
+{
+ if (mContentTypeParameters == NULL)
+ return;
+ mc_foreachhashmapKey(String, key, mContentTypeParameters) {
+ if (key->isEqualCaseInsensitive(name)) {
+ mContentTypeParameters->removeObjectForKey(key);
+ break;
+ }
+ }
+}
+
+String * AbstractPart::contentTypeParameterValueForName(String * name)
+{
+ mc_foreachhashmapKey(String, key, mContentTypeParameters) {
+ if (key->isEqualCaseInsensitive(name)) {
+ return (String *) mContentTypeParameters->objectForKey(key);
+ }
+ }
+ return NULL;
+}
diff --git a/src/core/abstract/MCAbstractPart.h b/src/core/abstract/MCAbstractPart.h
index 7f641205..0fcbf279 100644
--- a/src/core/abstract/MCAbstractPart.h
+++ b/src/core/abstract/MCAbstractPart.h
@@ -48,6 +48,12 @@ namespace mailcore {
virtual String * decodedStringForData(Data * data);
+ void setContentTypeParameters(HashMap * parameters);
+ Array * allContentTypeParametersNames();
+ void setContentTypeParameter(String * name, String * object);
+ void removeContentTypeParameter(String * name);
+ String * contentTypeParameterValueForName(String * name);
+
public: // subclass behavior
AbstractPart(AbstractPart * other);
virtual String * description();
@@ -70,6 +76,7 @@ namespace mailcore {
String * mContentDescription;
bool mInlineAttachment;
PartType mPartType;
+ HashMap * mContentTypeParameters;
void init();
};
diff --git a/src/core/abstract/MCMessageConstants.h b/src/core/abstract/MCMessageConstants.h
index 222ca322..c81f8360 100644
--- a/src/core/abstract/MCMessageConstants.h
+++ b/src/core/abstract/MCMessageConstants.h
@@ -178,6 +178,7 @@ namespace mailcore {
IMAPSearchKindRecipient, // Recipient is the combination of To, Cc and Bcc
IMAPSearchKindSubject,
IMAPSearchKindContent,
+ IMAPSearchKindBody,
IMAPSearchKindUIDs,
IMAPSearchKindHeader,
IMAPSearchKindRead,
@@ -247,6 +248,7 @@ namespace mailcore {
ErrorNoSender,
ErrorNoRecipient,
ErrorNoop,
+ ErrorGmailApplicationSpecificPasswordRequired,
};
enum PartType {
diff --git a/src/core/abstract/MCMessageHeader.cc b/src/core/abstract/MCMessageHeader.cc
index 6e8d2c09..89dec15c 100644
--- a/src/core/abstract/MCMessageHeader.cc
+++ b/src/core/abstract/MCMessageHeader.cc
@@ -62,7 +62,6 @@ void MessageHeader::init(bool generateDate, bool generateMessageID)
mDate = (time_t) -1;
mReceivedDate = (time_t) -1;
mExtraHeaders = NULL;
- mlcExtraHeaders = NULL;
if (generateDate) {
time_t date;
@@ -116,7 +115,6 @@ MessageHeader::~MessageHeader()
MC_SAFE_RELEASE(mReplyTo);
MC_SAFE_RELEASE(mSubject);
MC_SAFE_RELEASE(mExtraHeaders);
- MC_SAFE_RELEASE(mlcExtraHeaders);
}
String * MessageHeader::description()
@@ -307,13 +305,6 @@ String * MessageHeader::userAgent()
void MessageHeader::setExtraHeaders(HashMap * headers)
{
MC_SAFE_REPLACE_COPY(HashMap, mExtraHeaders, headers);
- MC_SAFE_RELEASE(mlcExtraHeaders);
- if (mExtraHeaders != NULL) {
- mlcExtraHeaders = new HashMap();
- mc_foreachhashmapKeyAndValue(String, key, String, value, mExtraHeaders) {
- mlcExtraHeaders->setObjectForKey(key->lowercaseString(), value);
- }
- }
}
Array * MessageHeader::allExtraHeadersNames()
@@ -328,30 +319,30 @@ void MessageHeader::setExtraHeader(String * name, String * object)
if (mExtraHeaders == NULL) {
mExtraHeaders = new HashMap();
}
- if (mlcExtraHeaders == NULL) {
- mlcExtraHeaders = new HashMap();
- }
- if (object == NULL) {
- removeExtraHeader(name);
- return;
- }
+ removeExtraHeader(name);
mExtraHeaders->setObjectForKey(name, object);
- mlcExtraHeaders->setObjectForKey(name->lowercaseString(), object);
}
void MessageHeader::removeExtraHeader(String * name)
{
if (mExtraHeaders == NULL)
return;
- mExtraHeaders->removeObjectForKey(name);
- mlcExtraHeaders->removeObjectForKey(name);
+ mc_foreachhashmapKey(String, key, mExtraHeaders) {
+ if (key->isEqualCaseInsensitive(name)) {
+ mExtraHeaders->removeObjectForKey(key);
+ break;
+ }
+ }
}
String * MessageHeader::extraHeaderValueForName(String * name)
{
- if (mlcExtraHeaders == NULL)
- return NULL;
- return (String *) mlcExtraHeaders->objectForKey(name->lowercaseString());
+ mc_foreachhashmapKey(String, key, mExtraHeaders) {
+ if (key->isEqualCaseInsensitive(name)) {
+ return (String *) mExtraHeaders->objectForKey(key);
+ }
+ }
+ return NULL;
}
String * MessageHeader::extractedSubject()
diff --git a/src/core/abstract/MCMessageHeader.h b/src/core/abstract/MCMessageHeader.h
index 51b1e2f7..4018343c 100644
--- a/src/core/abstract/MCMessageHeader.h
+++ b/src/core/abstract/MCMessageHeader.h
@@ -99,7 +99,6 @@ namespace mailcore {
time_t mDate;
time_t mReceivedDate;
HashMap * mExtraHeaders;
- HashMap * mlcExtraHeaders;
void init(bool generateDate, bool generateMessageID);
void setExtraHeaders(HashMap *headers);
Array * recipientWithReplyAll(bool replyAll, bool includeTo, bool includeCc, Array * senderEmails);
diff --git a/src/core/basetypes/MCIterator.h b/src/core/basetypes/MCIterator.h
index c8b23fab..e1f258d4 100644
--- a/src/core/basetypes/MCIterator.h
+++ b/src/core/basetypes/MCIterator.h
@@ -32,13 +32,13 @@ for (unsigned int __index = 0; NULL != (__variable = (type *) mailcore::ArrayIte
keyType * __key; \
HashMapIterator __key##__iterator = HashMapIteratorInit(__hashmap, true, false); \
while (HashMapIteratorRun(&__key##__iterator)) \
-while (HashMapIteratorNext(&__key##__iterator, &__key, NULL))
+while (HashMapIteratorNext(&__key##__iterator, (Object **) &__key, (Object **) NULL))
#define mc_foreachhashmapValue(valueType, __value, __hashmap) \
valueType * __value; \
HashMapIterator __value##__iterator = HashMapIteratorInit(__hashmap, false, true); \
while (HashMapIteratorRun(&__value##__iterator)) \
-while (HashMapIteratorNext(&__value##__iterator, NULL, (Object **) &__value))
+while (HashMapIteratorNext(&__value##__iterator, (Object **) NULL, (Object **) &__value))
#define mc_foreachhashmapKeyAndValue(keyType, __key, valueType, __value, __hashmap) \
keyType * __key; \
diff --git a/src/core/basetypes/MCObject.cc b/src/core/basetypes/MCObject.cc
index 0e8d9639..1d8f0c27 100644
--- a/src/core/basetypes/MCObject.cc
+++ b/src/core/basetypes/MCObject.cc
@@ -130,6 +130,7 @@ struct mainThreadCallData {
static pthread_once_t delayedPerformOnce = PTHREAD_ONCE_INIT;
static chash * delayedPerformHash = NULL;
+static pthread_mutex_t delayedPerformLock = PTHREAD_MUTEX_INITIALIZER;
static void reallyInitDelayedPerform()
{
@@ -164,7 +165,9 @@ static void removeFromPerformHash(Object * obj, Object::Method method, void * co
key.data = &keyData;
key.len = sizeof(keyData);
+ pthread_mutex_lock(&delayedPerformLock);
chash_delete(delayedPerformHash, (chashdatum *) &key, NULL);
+ pthread_mutex_unlock(&delayedPerformLock);
}
static void queueIdentifierDestructor(void * identifier)
@@ -196,7 +199,9 @@ static void addToPerformHash(Object * obj, Object::Method method, void * context
key.len = sizeof(keyData);
value.data = performValue;
value.len = 0;
+ pthread_mutex_lock(&delayedPerformLock);
chash_set(delayedPerformHash, &key, &value, NULL);
+ pthread_mutex_unlock(&delayedPerformLock);
}
static void * getFromPerformHash(Object * obj, Object::Method method, void * context, void * targetDispatchQueue)
@@ -221,7 +226,9 @@ static void * getFromPerformHash(Object * obj, Object::Method method, void * con
key.data = &keyData;
key.len = sizeof(keyData);
+ pthread_mutex_lock(&delayedPerformLock);
r = chash_get(delayedPerformHash, &key, &value);
+ pthread_mutex_unlock(&delayedPerformLock);
if (r < 0)
return NULL;
diff --git a/src/core/basetypes/MCOperationQueue.cc b/src/core/basetypes/MCOperationQueue.cc
index e45f04ee..7783a978 100644
--- a/src/core/basetypes/MCOperationQueue.cc
+++ b/src/core/basetypes/MCOperationQueue.cc
@@ -178,11 +178,21 @@ void OperationQueue::checkRunningOnMainThread(void * context)
{
retain(); // (4)
if (_pendingCheckRunning) {
+#if __APPLE__
+ cancelDelayedPerformMethodOnDispatchQueue((Object::Method) &OperationQueue::checkRunningAfterDelay, NULL, mDispatchQueue);
+#else
cancelDelayedPerformMethod((Object::Method) &OperationQueue::checkRunningAfterDelay, NULL);
+#endif
release(); // (4)
}
_pendingCheckRunning = true;
+
+#if __APPLE__
+ performMethodOnDispatchQueueAfterDelay((Object::Method) &OperationQueue::checkRunningAfterDelay, NULL, mDispatchQueue, 1);
+#else
performMethodAfterDelay((Object::Method) &OperationQueue::checkRunningAfterDelay, NULL, 1);
+#endif
+
release(); // (1)
}
@@ -215,6 +225,11 @@ void OperationQueue::stoppedOnMainThread(void * context)
mCallback->queueStoppedRunning();
}
+ if (mOperations->count() > 0) {
+ //Operations have been added while thread was quitting, so restart automatically
+ startThread();
+ }
+
release(); // (2)
release(); // (3)
diff --git a/src/core/basetypes/MCString.cc b/src/core/basetypes/MCString.cc
index 5c2da323..bcc1ec9d 100644
--- a/src/core/basetypes/MCString.cc
+++ b/src/core/basetypes/MCString.cc
@@ -1355,17 +1355,8 @@ static void charactersParsed(void * context,
}
String * modifiedString;
modifiedString = new String((const char *) ch, len);
- modifiedString->replaceOccurrencesOfString(MCSTR("\n"), MCSTR(" "));
- modifiedString->replaceOccurrencesOfString(MCSTR("\r"), MCSTR(" "));
- modifiedString->replaceOccurrencesOfString(MCSTR("\t"), MCSTR(" "));
-
- UChar specialCh[2];
- specialCh[0] = 133;
- specialCh[1] = 0;
- modifiedString->replaceOccurrencesOfString(String::stringWithCharacters(specialCh), MCSTR(" "));
-
- while (modifiedString->replaceOccurrencesOfString(MCSTR(" "), MCSTR(" ")) > 0) {
- }
+ modifiedString->autorelease();
+ modifiedString = modifiedString->stripWhitespace();
if (modifiedString->length() > 0) {
if (state->lastCharIsWhitespace) {
@@ -1413,7 +1404,6 @@ static void charactersParsed(void * context,
state->hasText = true;
}
}
- modifiedString->release();
}
/* GCS: custom error function to ignore errors */
@@ -1830,6 +1820,13 @@ String * String::stripWhitespace()
str->replaceOccurrencesOfString(MCSTR("\v"), MCSTR(" "));
str->replaceOccurrencesOfString(MCSTR("\f"), MCSTR(" "));
str->replaceOccurrencesOfString(MCSTR("\r"), MCSTR(" "));
+ UChar ch[2];
+ ch[0] = 160;
+ ch[1] = 0;
+ str->replaceOccurrencesOfString(String::stringWithCharacters(ch), MCSTR(" "));
+ ch[0] = 133;
+ ch[1] = 0;
+ str->replaceOccurrencesOfString(String::stringWithCharacters(ch), MCSTR(" "));
while (str->replaceOccurrencesOfString(MCSTR(" "), MCSTR(" ")) > 0) {
/* do nothing */
@@ -1863,6 +1860,8 @@ bool String::hasPrefix(String * prefix)
String * String::lastPathComponent()
{
// TODO: Improve Windows compatibility.
+ if (mUnicodeChars == NULL)
+ return MCSTR("");
UChar * component = u_strrchr(mUnicodeChars, '/');
if (component == NULL)
return (String *) this->copy()->autorelease();
diff --git a/src/core/imap/MCIMAPMessage.cc b/src/core/imap/MCIMAPMessage.cc
index 6cb1472c..7f393f32 100644
--- a/src/core/imap/MCIMAPMessage.cc
+++ b/src/core/imap/MCIMAPMessage.cc
@@ -16,6 +16,7 @@ static AbstractPart * partForPartIDInMessagePart(AbstractMessagePart * part, Str
void IMAPMessage::init()
{
mUid = 0;
+ mSequenceNumber = 0;
mFlags = MessageFlagNone;
mOriginalFlags = MessageFlagNone;
mCustomFlags = NULL;
@@ -35,6 +36,7 @@ IMAPMessage::IMAPMessage(IMAPMessage * other) : AbstractMessage(other)
{
init();
setUid(other->uid());
+ setSequenceNumber(other->sequenceNumber());
setFlags(other->flags());
setOriginalFlags(other->originalFlags());
setCustomFlags(other->customFlags());
@@ -59,7 +61,7 @@ Object * IMAPMessage::copy()
String * IMAPMessage::description()
{
String * result = String::string();
- result->appendUTF8Format("<%s:%p %u\n", className()->UTF8Characters(), this, (unsigned int) uid());
+ result->appendUTF8Format("<%s:%p %u %u\n", className()->UTF8Characters(), this, (unsigned int) uid(), (unsigned int) sequenceNumber());
result->appendString(header()->description());
if (mainPart() != NULL) {
result->appendString(mainPart()->description());
@@ -79,6 +81,16 @@ void IMAPMessage::setUid(uint32_t uid)
mUid = uid;
}
+uint32_t IMAPMessage::sequenceNumber()
+{
+ return mSequenceNumber;
+}
+
+void IMAPMessage::setSequenceNumber(uint32_t value)
+{
+ mSequenceNumber = value;
+}
+
uint32_t IMAPMessage::size()
{
return mSize;
@@ -235,6 +247,7 @@ String * IMAPMessage::htmlRendering(String * folder,
HashMap * IMAPMessage::serializable()
{
+ // sequenceNumber is not serialized.
HashMap * result = AbstractMessage::serializable();
result->setObjectForKey(MCSTR("modSeqValue"), String::stringWithUTF8Format("%llu", (long long unsigned) modSeqValue()));
result->setObjectForKey(MCSTR("uid"), String::stringWithUTF8Format("%lu", (long unsigned) uid()));
@@ -261,6 +274,7 @@ HashMap * IMAPMessage::serializable()
void IMAPMessage::importSerializable(HashMap * serializable)
{
+ // sequenceNumber is not serialized.
AbstractMessage::importSerializable(serializable);
String * modSeq = (String *) serializable->objectForKey(MCSTR("modSeqValue"));
if (modSeq != NULL) {
diff --git a/src/core/imap/MCIMAPMessage.h b/src/core/imap/MCIMAPMessage.h
index a78a04d6..b5266719 100644
--- a/src/core/imap/MCIMAPMessage.h
+++ b/src/core/imap/MCIMAPMessage.h
@@ -20,6 +20,9 @@ namespace mailcore {
IMAPMessage();
virtual ~IMAPMessage();
+ virtual uint32_t sequenceNumber();
+ virtual void setSequenceNumber(uint32_t sequenceNumber);
+
virtual uint32_t uid();
virtual void setUid(uint32_t uid);
@@ -70,6 +73,7 @@ namespace mailcore {
uint64_t mModSeqValue;
uint32_t mUid;
uint32_t mSize;
+ uint32_t mSequenceNumber; // not serialized.
MessageFlag mFlags;
MessageFlag mOriginalFlags;
diff --git a/src/core/imap/MCIMAPSearchExpression.cc b/src/core/imap/MCIMAPSearchExpression.cc
index cd3ccc2d..b3467e59 100644
--- a/src/core/imap/MCIMAPSearchExpression.cc
+++ b/src/core/imap/MCIMAPSearchExpression.cc
@@ -154,6 +154,14 @@ IMAPSearchExpression * IMAPSearchExpression::searchContent(String * value)
return (IMAPSearchExpression *) expr->autorelease();
}
+IMAPSearchExpression * IMAPSearchExpression::searchBody(String * value)
+{
+ IMAPSearchExpression * expr = new IMAPSearchExpression();
+ expr->mKind = IMAPSearchKindBody;
+ MC_SAFE_REPLACE_COPY(String, expr->mValue, value);
+ return (IMAPSearchExpression *) expr->autorelease();
+}
+
IMAPSearchExpression * IMAPSearchExpression::searchUIDs(IndexSet * uids)
{
IMAPSearchExpression * expr = new IMAPSearchExpression();
diff --git a/src/core/imap/MCIMAPSearchExpression.h b/src/core/imap/MCIMAPSearchExpression.h
index a0647216..a6e4833b 100644
--- a/src/core/imap/MCIMAPSearchExpression.h
+++ b/src/core/imap/MCIMAPSearchExpression.h
@@ -33,6 +33,7 @@ namespace mailcore {
static IMAPSearchExpression * searchRecipient(String * value);
static IMAPSearchExpression * searchSubject(String * value);
static IMAPSearchExpression * searchContent(String * value);
+ static IMAPSearchExpression * searchBody(String * value);
static IMAPSearchExpression * searchHeader(String * header, String * value);
static IMAPSearchExpression * searchUIDs(IndexSet * uids);
static IMAPSearchExpression * searchRead();
diff --git a/src/core/imap/MCIMAPSession.cc b/src/core/imap/MCIMAPSession.cc
index a2fe5c9e..50602842 100755
--- a/src/core/imap/MCIMAPSession.cc
+++ b/src/core/imap/MCIMAPSession.cc
@@ -237,59 +237,6 @@ static Array * arrayFromSet(struct mailimap_set * imap_set)
return result;
}
-#if 0
-static int compareValuesUnsignedLong(void * value1, void * value2, void * context)
-{
- Value * concreteValue1 = (Value *) value1;
- Value * concreteValue2 = (Value *) value2;
-
- if (concreteValue2->unsignedLongValue() > concreteValue1->unsignedLongValue()) {
- return 1;
- }
- else if (concreteValue2->unsignedLongValue() < concreteValue1->unsignedLongValue()) {
- return -1;
- }
- else {
- return 0;
- }
-}
-
-static struct mailimap_set * setFromArray(Array * array)
-{
- unsigned int currentIndex = 0;
- unsigned int currentFirst = 0;
- unsigned int currentValue = 0;
- unsigned int lastValue = 0;
- struct mailimap_set * imap_set;
-
- array = array->sortedArray(compareValuesUnsignedLong, NULL);
- imap_set = mailimap_set_new_empty();
-
- while (currentIndex < array->count()) {
- currentValue = (unsigned int) ((Value *) array->objectAtIndex(currentIndex))->unsignedLongValue();
- if (currentFirst == 0) {
- currentFirst = currentValue;
- }
-
- if ((lastValue != 0) && (currentValue != lastValue + 1)) {
- mailimap_set_add_interval(imap_set, currentFirst, lastValue);
- currentFirst = 0;
- lastValue = 0;
- }
- else {
- lastValue = currentValue;
- currentIndex ++;
- }
- }
- if (currentFirst != 0) {
- mailimap_set_add_interval(imap_set, currentFirst, lastValue);
- }
-
- return imap_set;
-}
-
-#endif
-
static clist * splitSet(struct mailimap_set * set, unsigned int splitCount)
{
struct mailimap_set * current_set;
@@ -378,6 +325,7 @@ void IMAPSession::init()
mNamespaceEnabled = false;
mCompressionEnabled = false;
mIsGmail = false;
+ mAllowsNewPermanentFlags = false;
mWelcomeString = NULL;
mNeedsMboxMailWorkaround = false;
mDefaultNamespace = NULL;
@@ -870,6 +818,9 @@ void IMAPSession::login(ErrorCode * pError)
else if (response->locationOfString(MCSTR("Maximum number of connections")) != -1) {
* pError = ErrorGmailTooManySimultaneousConnections;
}
+ else if (response->locationOfString(MCSTR("Application-specific password required")) != -1) {
+ * pError = ErrorGmailApplicationSpecificPasswordRequired;
+ }
else if (response->locationOfString(MCSTR("http://me.com/move")) != -1) {
* pError = ErrorMobileMeMoved;
}
@@ -1077,7 +1028,20 @@ void IMAPSession::select(String * folder, ErrorCode * pError)
mFirstUnseenUid = 0;
}
-
+ if (mImap->imap_selection_info->sel_perm_flags) {
+ clistiter * cur;
+
+ struct mailimap_flag_perm * perm_flag;
+ for(cur = clist_end(mImap->imap_selection_info->sel_perm_flags) ; cur != NULL ;
+ cur = clist_previous(cur)) {
+ perm_flag = (struct mailimap_flag_perm *)clist_content(cur);
+ mAllowsNewPermanentFlags = perm_flag->fl_type == MAILIMAP_FLAG_PERM_ALL;
+ if (mAllowsNewPermanentFlags) {
+ break;
+ }
+ }
+ }
+
mModSequenceValue = get_mod_sequence_value(mImap);
}
@@ -1761,7 +1725,7 @@ void IMAPSession::expunge(String * folder, ErrorCode * pError)
}
static int
-fetch_imap(mailimap * imap, uint32_t uid,
+fetch_imap(mailimap * imap, bool identifier_is_uid, uint32_t identifier,
struct mailimap_fetch_type * fetch_type,
char ** result, size_t * result_len)
{
@@ -1774,8 +1738,13 @@ fetch_imap(mailimap * imap, uint32_t uid,
size_t text_length;
clistiter * cur;
- set = mailimap_set_new_single(uid);
- r = mailimap_uid_fetch(imap, set, fetch_type, &fetch_result);
+ set = mailimap_set_new_single(identifier);
+ if (identifier_is_uid) {
+ r = mailimap_uid_fetch(imap, set, fetch_type, &fetch_result);
+ }
+ else {
+ r = mailimap_fetch(imap, set, fetch_type, &fetch_result);
+ }
mailimap_set_free(set);
@@ -1786,7 +1755,7 @@ fetch_imap(mailimap * imap, uint32_t uid,
return r;
}
- if (clist_begin(fetch_result) == NULL) {
+ if (clist_isempty(fetch_result)) {
mailimap_fetch_list_free(fetch_result);
return MAILIMAP_ERROR_FETCH;
}
@@ -1800,16 +1769,18 @@ fetch_imap(mailimap * imap, uint32_t uid,
cur = clist_next(cur)) {
msg_att_item = (struct mailimap_msg_att_item *) clist_content(cur);
- if (msg_att_item->att_type == MAILIMAP_MSG_ATT_ITEM_STATIC) {
-
- if (msg_att_item->att_data.att_static->att_type ==
- MAILIMAP_MSG_ATT_BODY_SECTION) {
- text = msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part;
- msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part = NULL;
- text_length =
- msg_att_item->att_data.att_static->att_data.att_body_section->sec_length;
- }
+ if (msg_att_item->att_type != MAILIMAP_MSG_ATT_ITEM_STATIC) {
+ continue;
}
+
+ if (msg_att_item->att_data.att_static->att_type !=
+ MAILIMAP_MSG_ATT_BODY_SECTION) {
+ continue;
+ }
+
+ text = msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part;
+ msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part = NULL;
+ text_length = msg_att_item->att_data.att_static->att_data.att_body_section->sec_length;
}
mailimap_fetch_list_free(fetch_result);
@@ -1978,6 +1949,7 @@ static void msg_att_handler(struct mailimap_msg_att * msg_att, void * context)
if (mapping != NULL) {
uid = (uint32_t) ((Value *) mapping->objectForKey(Value::valueWithUnsignedLongValue(msg_att->att_number)))->longLongValue();
}
+ msg->setSequenceNumber(msg_att->att_number);
for(item_iter = clist_begin(msg_att->att_list) ; item_iter != NULL ; item_iter = clist_next(item_iter)) {
struct mailimap_msg_att_item * att_item;
@@ -2469,9 +2441,23 @@ Array * IMAPSession::fetchMessagesByNumberWithExtraHeaders(String * folder, IMAP
return result;
}
-static int fetch_rfc822(mailimap * session,
- uint32_t msgid, char ** result)
+static int fetch_rfc822(mailimap * session, bool identifier_is_uid,
+ uint32_t identifier, char ** result, size_t * result_len)
{
+ struct mailimap_section * section;
+ struct mailimap_fetch_att * fetch_att;
+ struct mailimap_fetch_type * fetch_type;
+
+ section = mailimap_section_new(NULL);
+ fetch_att = mailimap_fetch_att_new_body_peek_section(section);
+ fetch_type = mailimap_fetch_type_new_fetch_att(fetch_att);
+ int r = fetch_imap(session, identifier_is_uid, identifier,
+ fetch_type, result, result_len);
+ mailimap_fetch_type_free(fetch_type);
+
+ return r;
+
+#if 0
int r;
clist * fetch_list;
struct mailimap_section * section;
@@ -2487,9 +2473,14 @@ static int fetch_rfc822(mailimap * session,
fetch_att = mailimap_fetch_att_new_body_peek_section(section);
fetch_type = mailimap_fetch_type_new_fetch_att(fetch_att);
- set = mailimap_set_new_single(msgid);
+ set = mailimap_set_new_single(identifier);
- r = mailimap_uid_fetch(session, set, fetch_type, &fetch_list);
+ if (identifier_is_uid) {
+ r = mailimap_uid_fetch(session, set, fetch_type, &fetch_list);
+ }
+ else {
+ r = mailimap_fetch(session, set, fetch_type, &fetch_list);
+ }
mailimap_set_free(set);
mailimap_fetch_type_free(fetch_type);
@@ -2529,27 +2520,41 @@ free:
mailimap_fetch_list_free(fetch_list);
err:
return res;
+#endif
}
Data * IMAPSession::fetchMessageByUID(String * folder, uint32_t uid,
IMAPProgressCallback * progressCallback, ErrorCode * pError)
{
+ return fetchMessage(folder, true, uid, progressCallback, pError);
+}
+
+Data * IMAPSession::fetchMessageByNumber(String * folder, uint32_t number,
+ IMAPProgressCallback * progressCallback, ErrorCode * pError)
+{
+ return fetchMessage(folder, false, number, progressCallback, pError);
+}
+
+Data * IMAPSession::fetchMessage(String * folder, bool identifier_is_uid, uint32_t identifier,
+ IMAPProgressCallback * progressCallback, ErrorCode * pError)
+{
char * rfc822;
+ size_t rfc822_len;
int r;
Data * data;
-
+
selectIfNeeded(folder, pError);
if (* pError != ErrorNone)
return NULL;
-
+
mProgressItemsCount = 0;
mProgressCallback = progressCallback;
-
+
rfc822 = NULL;
- r = fetch_rfc822(mImap, uid, &rfc822);
+ r = fetch_rfc822(mImap, identifier_is_uid, identifier, &rfc822, &rfc822_len);
if (r == MAILIMAP_NO_ERROR) {
size_t len;
-
+
len = 0;
if (rfc822 != NULL) {
len = strlen(rfc822);
@@ -2557,7 +2562,7 @@ Data * IMAPSession::fetchMessageByUID(String * folder, uint32_t uid,
bodyProgress((unsigned int) len, (unsigned int) len);
}
mProgressCallback = NULL;
-
+
if (r == MAILIMAP_ERROR_STREAM) {
mShouldDisconnect = true;
* pError = ErrorConnection;
@@ -2571,22 +2576,23 @@ Data * IMAPSession::fetchMessageByUID(String * folder, uint32_t uid,
* pError = ErrorFetch;
return NULL;
}
-
+
if (rfc822 == NULL) {
data = Data::data();
}
else {
- data = Data::dataWithBytes(rfc822, (unsigned int) strlen(rfc822));
+ data = Data::dataWithBytes(rfc822, (unsigned int) rfc822_len);
}
-
+
mailimap_nstring_free(rfc822);
* pError = ErrorNone;
-
+
return data;
}
-Data * IMAPSession::fetchMessageAttachmentByUID(String * folder, uint32_t uid, String * partID,
- Encoding encoding, IMAPProgressCallback * progressCallback, ErrorCode * pError)
+Data * IMAPSession::fetchMessageAttachment(String * folder, bool identifier_is_uid,
+ uint32_t identifier, String * partID,
+ Encoding encoding, IMAPProgressCallback * progressCallback, ErrorCode * pError)
{
struct mailimap_fetch_type * fetch_type;
struct mailimap_fetch_att * fetch_att;
@@ -2623,7 +2629,7 @@ Data * IMAPSession::fetchMessageAttachmentByUID(String * folder, uint32_t uid, S
fetch_att = mailimap_fetch_att_new_body_peek_section(section);
fetch_type = mailimap_fetch_type_new_fetch_att(fetch_att);
- r = fetch_imap(mImap, uid, fetch_type, &text, &text_length);
+ r = fetch_imap(mImap, identifier_is_uid, identifier, fetch_type, &text, &text_length);
mailimap_fetch_type_free(fetch_type);
mProgressCallback = NULL;
@@ -2652,6 +2658,18 @@ Data * IMAPSession::fetchMessageAttachmentByUID(String * folder, uint32_t uid, S
return data;
}
+Data * IMAPSession::fetchMessageAttachmentByUID(String * folder, uint32_t uid, String * partID,
+ Encoding encoding, IMAPProgressCallback * progressCallback, ErrorCode * pError)
+{
+ return fetchMessageAttachment(folder, true, uid, partID, encoding, progressCallback, pError);
+}
+
+Data * IMAPSession::fetchMessageAttachmentByNumber(String * folder, uint32_t number, String * partID,
+ Encoding encoding, IMAPProgressCallback * progressCallback, ErrorCode * pError)
+{
+ return fetchMessageAttachment(folder, false, number, partID, encoding, progressCallback, pError);
+}
+
IndexSet * IMAPSession::search(String * folder, IMAPSearchKind kind, String * searchString, ErrorCode * pError)
{
IMAPSearchExpression * expr;
@@ -2755,6 +2773,10 @@ static struct mailimap_search_key * searchKeyFromSearchExpression(IMAPSearchExpr
{
return mailimap_search_key_new_text(strdup(expression->value()->UTF8Characters()));
}
+ case IMAPSearchKindBody:
+ {
+ return mailimap_search_key_new_body(strdup(expression->value()->UTF8Characters()));
+ }
case IMAPSearchKindUIDs:
{
return mailimap_search_key_new_uid(setFromIndexSet(expression->uids()));
@@ -2947,7 +2969,14 @@ IndexSet * IMAPSession::search(String * folder, IMAPSearchExpression * expressio
if (mYahooServer) {
charset = NULL;
}
- int r = mailimap_uid_search(mImap, charset, key, &result_list);
+
+ int r;
+ if (mIsGmail) {
+ r = mailimap_uid_search_literalplus(mImap, charset, key, &result_list);
+ }
+ else {
+ r = mailimap_uid_search(mImap, charset, key, &result_list);
+ }
mailimap_search_key_free(key);
MCLog("had error : %i", r);
if (r == MAILIMAP_ERROR_STREAM) {
@@ -3280,12 +3309,18 @@ HashMap * IMAPSession::fetchNamespace(ErrorCode * pError)
return result;
}
-void IMAPSession::storeFlags(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, ErrorCode * pError)
+void IMAPSession::storeFlagsByUID(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, ErrorCode * pError)
{
- this->storeFlagsAndCustomFlags(folder, uids, kind, flags, NULL, pError);
+ this->storeFlagsAndCustomFlagsByUID(folder, uids, kind, flags, NULL, pError);
}
-void IMAPSession::storeFlagsAndCustomFlags(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags, ErrorCode * pError)
+void IMAPSession::storeFlagsAndCustomFlagsByUID(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags, ErrorCode * pError)
+{
+ storeFlagsAndCustomFlags(folder, true, uids, kind, flags, customFlags, pError);
+}
+
+void IMAPSession::storeFlagsAndCustomFlags(String * folder, bool identifier_is_uid, IndexSet * identifiers,
+ IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags, ErrorCode * pError)
{
struct mailimap_set * imap_set;
struct mailimap_store_att_flags * store_att_flags;
@@ -3297,7 +3332,7 @@ void IMAPSession::storeFlagsAndCustomFlags(String * folder, IndexSet * uids, IMA
if (* pError != ErrorNone)
return;
- imap_set = setFromIndexSet(uids);
+ imap_set = setFromIndexSet(identifiers);
if (clist_count(imap_set->set_list) == 0) {
mailimap_set_free(imap_set);
return;
@@ -3388,7 +3423,12 @@ void IMAPSession::storeFlagsAndCustomFlags(String * folder, IndexSet * uids, IMA
store_att_flags = mailimap_store_att_flags_new_set_flags_silent(flag_list);
break;
}
- r = mailimap_uid_store(mImap, current_set, store_att_flags);
+ if (identifier_is_uid) {
+ r = mailimap_uid_store(mImap, current_set, store_att_flags);
+ }
+ else {
+ r = mailimap_store(mImap, current_set, store_att_flags);
+ }
if (r == MAILIMAP_ERROR_STREAM) {
mShouldDisconnect = true;
@@ -3418,7 +3458,27 @@ void IMAPSession::storeFlagsAndCustomFlags(String * folder, IndexSet * uids, IMA
* pError = ErrorNone;
}
-void IMAPSession::storeLabels(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, Array * labels, ErrorCode * pError)
+void IMAPSession::storeFlagsByNumber(String * folder, IndexSet * numbers, IMAPStoreFlagsRequestKind kind, MessageFlag flags, ErrorCode * pError)
+{
+ this->storeFlagsAndCustomFlagsByNumber(folder, numbers, kind, flags, NULL, pError);
+}
+
+void IMAPSession::storeFlagsAndCustomFlagsByNumber(String * folder, IndexSet * numbers, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags, ErrorCode * pError)
+{
+ storeFlagsAndCustomFlags(folder, false, numbers, kind, flags, customFlags, pError);
+}
+
+void IMAPSession::storeLabelsByUID(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, Array * labels, ErrorCode * pError)
+{
+ storeLabels(folder, true, uids, kind, labels, pError);
+}
+
+void IMAPSession::storeLabelsByNumber(String * folder, IndexSet * numbers, IMAPStoreFlagsRequestKind kind, Array * labels, ErrorCode * pError)
+{
+ storeLabels(folder, false, numbers, kind, labels, pError);
+}
+
+void IMAPSession::storeLabels(String * folder, bool identifier_is_uid, IndexSet * identifiers, IMAPStoreFlagsRequestKind kind, Array * labels, ErrorCode * pError)
{
struct mailimap_set * imap_set;
struct mailimap_msg_att_xgmlabels * xgmlabels;
@@ -3429,7 +3489,7 @@ void IMAPSession::storeLabels(String * folder, IndexSet * uids, IMAPStoreFlagsRe
if (* pError != ErrorNone)
return;
- imap_set = setFromIndexSet(uids);
+ imap_set = setFromIndexSet(identifiers);
if (clist_count(imap_set->set_list) == 0) {
mailimap_set_free(imap_set);
return;
@@ -3460,7 +3520,12 @@ void IMAPSession::storeLabels(String * folder, IndexSet * uids, IMAPStoreFlagsRe
fl_sign = 0;
break;
}
- r = mailimap_uid_store_xgmlabels(mImap, current_set, fl_sign, 1, xgmlabels);
+ if (identifier_is_uid) {
+ r = mailimap_uid_store_xgmlabels(mImap, current_set, fl_sign, 1, xgmlabels);
+ }
+ else {
+ r = mailimap_store_xgmlabels(mImap, current_set, fl_sign, 1, xgmlabels);
+ }
if (r == MAILIMAP_ERROR_STREAM) {
mShouldDisconnect = true;
* pError = ErrorConnection;
@@ -3694,6 +3759,10 @@ bool IMAPSession::isCompressionEnabled()
return mCompressionEnabled;
}
+bool IMAPSession::allowsNewPermanentFlags() {
+ return mAllowsNewPermanentFlags;
+}
+
bool IMAPSession::isDisconnected()
{
return mState == STATE_DISCONNECTED;
diff --git a/src/core/imap/MCIMAPSession.h b/src/core/imap/MCIMAPSession.h
index e52dc74f..591466fc 100755
--- a/src/core/imap/MCIMAPSession.h
+++ b/src/core/imap/MCIMAPSession.h
@@ -110,8 +110,12 @@ namespace mailcore {
virtual Data * fetchMessageByUID(String * folder, uint32_t uid,
IMAPProgressCallback * progressCallback, ErrorCode * pError);
+ virtual Data * fetchMessageByNumber(String * folder, uint32_t number,
+ IMAPProgressCallback * progressCallback, ErrorCode * pError);
virtual Data * fetchMessageAttachmentByUID(String * folder, uint32_t uid, String * partID,
Encoding encoding, IMAPProgressCallback * progressCallback, ErrorCode * pError);
+ virtual Data * fetchMessageAttachmentByNumber(String * folder, uint32_t number, String * partID,
+ Encoding encoding, IMAPProgressCallback * progressCallback, ErrorCode * pError);
virtual HashMap * fetchMessageNumberUIDMapping(String * folder, uint32_t fromUID, uint32_t toUID,
ErrorCode * pError);
@@ -125,9 +129,13 @@ namespace mailcore {
IMAPProgressCallback * progressCallback,
Array * extraHeaders, ErrorCode * pError);
- virtual void storeFlags(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, ErrorCode * pError);
- virtual void storeFlagsAndCustomFlags(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags, ErrorCode * pError);
- virtual void storeLabels(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, Array * labels, ErrorCode * pError);
+ virtual void storeFlagsByUID(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, ErrorCode * pError);
+ virtual void storeFlagsAndCustomFlagsByUID(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags, ErrorCode * pError);
+ virtual void storeFlagsByNumber(String * folder, IndexSet * numbers, IMAPStoreFlagsRequestKind kind, MessageFlag flags, ErrorCode * pError);
+ virtual void storeFlagsAndCustomFlagsByNumber(String * folder, IndexSet * numbers, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags, ErrorCode * pError);
+
+ virtual void storeLabelsByUID(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, Array * labels, ErrorCode * pError);
+ virtual void storeLabelsByNumber(String * folder, IndexSet * numbers, IMAPStoreFlagsRequestKind kind, Array * labels, ErrorCode * pError);
virtual IndexSet * search(String * folder, IMAPSearchKind kind, String * searchString, ErrorCode * pError);
virtual IndexSet * search(String * folder, IMAPSearchExpression * expression, ErrorCode * pError);
@@ -167,7 +175,8 @@ namespace mailcore {
virtual bool isXOAuthEnabled();
virtual bool isNamespaceEnabled();
virtual bool isCompressionEnabled();
-
+ virtual bool allowsNewPermanentFlags();
+
virtual String * gmailUserDisplayName();
virtual void setConnectionLogger(ConnectionLogger * logger);
@@ -227,6 +236,7 @@ namespace mailcore {
bool mNamespaceEnabled;
bool mCompressionEnabled;
bool mIsGmail;
+ bool mAllowsNewPermanentFlags;
String * mWelcomeString;
bool mNeedsMboxMailWorkaround;
uint32_t mUIDValidity;
@@ -268,6 +278,14 @@ namespace mailcore {
void capabilitySetWithSessionState(IndexSet * capabilities);
bool enableFeature(String * feature);
void enableFeatures();
+ Data * fetchMessage(String * folder, bool identifier_is_uid, uint32_t identifier,
+ IMAPProgressCallback * progressCallback, ErrorCode * pError);
+ void storeFlagsAndCustomFlags(String * folder, bool identifier_is_uid, IndexSet * identifiers,
+ IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags, ErrorCode * pError);
+ Data * fetchMessageAttachment(String * folder, bool identifier_is_uid,
+ uint32_t identifier, String * partID,
+ Encoding encoding, IMAPProgressCallback * progressCallback, ErrorCode * pError);
+ void storeLabels(String * folder, bool identifier_is_uid, IndexSet * identifiers, IMAPStoreFlagsRequestKind kind, Array * labels, ErrorCode * pError);
};
}
diff --git a/src/core/pop/MCPOPSession.cc b/src/core/pop/MCPOPSession.cc
index 0d26682e..b703f16d 100644
--- a/src/core/pop/MCPOPSession.cc
+++ b/src/core/pop/MCPOPSession.cc
@@ -241,7 +241,7 @@ void POPSession::connect(ErrorCode * pError)
default:
r = mailpop3_socket_connect(mPop, MCUTF8(hostname()), port());
- if (r != MAILIMAP_NO_ERROR) {
+ if (r != MAILPOP3_NO_ERROR) {
* pError = ErrorConnection;
return;
}
diff --git a/src/core/renderer/MCDateFormatter.cc b/src/core/renderer/MCDateFormatter.cc
index 2882977d..96d347d5 100644
--- a/src/core/renderer/MCDateFormatter.cc
+++ b/src/core/renderer/MCDateFormatter.cc
@@ -216,6 +216,12 @@ void DateFormatter::prepare()
localeRef = CFLocaleCopyCurrent();
}
mAppleDateFormatter = CFDateFormatterCreate(NULL, localeRef, toAppleStyle(mDateStyle), toAppleStyle(mTimeStyle));
+ if (mDateFormat != NULL) {
+ CFStringRef dateFormatCFString = CFStringCreateWithCharacters(NULL, (const UniChar *) mDateFormat->unicodeCharacters(),
+ mDateFormat->length());
+ CFDateFormatterSetFormat((CFDateFormatterRef) mAppleDateFormatter, dateFormatCFString);
+ CFRelease(dateFormatCFString);
+ }
if (localeIdentifier != NULL) {
CFRelease(localeIdentifier);
}
diff --git a/src/core/rfc822/MCAttachment.cc b/src/core/rfc822/MCAttachment.cc
index 172881cb..63551b6a 100644
--- a/src/core/rfc822/MCAttachment.cc
+++ b/src/core/rfc822/MCAttachment.cc
@@ -87,6 +87,9 @@ HashMap * Attachment::readMimeTypesFile(String * filename)
String * Attachment::mimeTypeForFilename(String * filename)
{
+ if (filename == NULL) {
+ return NULL;
+ }
static HashMap * mimeTypes = NULL;
static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_lock(&lock);
@@ -211,8 +214,6 @@ Attachment * Attachment::attachmentWithText(String * text)
void Attachment::init()
{
mData = NULL;
- mContentTypeParameters = NULL;
- mlcContentTypeParameters = NULL;
setMimeType(MCSTR("application/octet-stream"));
}
@@ -225,14 +226,11 @@ Attachment::Attachment(Attachment * other) : AbstractPart(other)
{
init();
MC_SAFE_REPLACE_RETAIN(Data, mData, other->mData);
- setContentTypeParameters(other->mContentTypeParameters);
}
Attachment::~Attachment()
{
MC_SAFE_RELEASE(mData);
- MC_SAFE_RELEASE(mContentTypeParameters);
- MC_SAFE_RELEASE(mlcContentTypeParameters);
}
String * Attachment::description()
@@ -261,11 +259,6 @@ String * Attachment::description()
else {
result->appendUTF8Format("no data\n");
}
- if (mContentTypeParameters != NULL) {
- mc_foreachhashmapKeyAndValue(String, key, String, value, mContentTypeParameters) {
- result->appendUTF8Format("%s: %s\n", key->UTF8Characters(), value->UTF8Characters());
- }
- }
result->appendUTF8Format(">");
return result;
@@ -296,56 +289,6 @@ String * Attachment::decodedString()
}
}
-void Attachment::setContentTypeParameters(HashMap * parameters)
-{
- MC_SAFE_REPLACE_COPY(HashMap, mContentTypeParameters, parameters);
- MC_SAFE_RELEASE(mlcContentTypeParameters);
- if (mContentTypeParameters != NULL) {
- mlcContentTypeParameters = new HashMap();
- mc_foreachhashmapKeyAndValue(String, key, String, value, mContentTypeParameters) {
- mlcContentTypeParameters->setObjectForKey(key->lowercaseString(), value);
- }
- }
-}
-
-Array * Attachment::allContentTypeParametersNames()
-{
- if (mContentTypeParameters == NULL)
- return Array::array();
- return mContentTypeParameters->allKeys();
-}
-
-void Attachment::setContentTypeParameter(String * name, String * object)
-{
- if (mContentTypeParameters == NULL) {
- mContentTypeParameters = new HashMap();
- }
- if (mlcContentTypeParameters == NULL) {
- mlcContentTypeParameters = new HashMap();
- }
- if (object == NULL) {
- removeContentTypeParameter(name);
- return;
- }
- mContentTypeParameters->setObjectForKey(name, object);
- mlcContentTypeParameters->setObjectForKey(name->lowercaseString(), object);
-}
-
-void Attachment::removeContentTypeParameter(String * name)
-{
- if (mContentTypeParameters == NULL)
- return;
- mContentTypeParameters->removeObjectForKey(name);
- mlcContentTypeParameters->removeObjectForKey(name);
-}
-
-String * Attachment::contentTypeParameterValueForName(String * name)
-{
- if (mlcContentTypeParameters == NULL)
- return NULL;
- return (String *) mlcContentTypeParameters->objectForKey(name->lowercaseString());
-}
-
AbstractPart * Attachment::attachmentsWithMIME(struct mailmime * mime)
{
return attachmentsWithMIMEWithMain(mime, true);
diff --git a/src/core/rfc822/MCAttachment.h b/src/core/rfc822/MCAttachment.h
index 069688f2..2217bc4c 100644
--- a/src/core/rfc822/MCAttachment.h
+++ b/src/core/rfc822/MCAttachment.h
@@ -29,11 +29,6 @@ namespace mailcore {
virtual Data * data();
virtual String * decodedString();
- virtual void setContentTypeParameter(String * name, String * value);
- virtual void removeContentTypeParameter(String * name);
- virtual String * contentTypeParameterValueForName(String *name);
- virtual Array * allContentTypeParametersNames();
-
public: // subclass behavior
Attachment(Attachment * other);
virtual String * description();
@@ -44,8 +39,6 @@ namespace mailcore {
private:
Data * mData;
- HashMap * mContentTypeParameters;
- HashMap * mlcContentTypeParameters;
void init();
static void fillMultipartSubAttachments(AbstractMultipart * multipart, struct mailmime * mime);
static AbstractPart * attachmentsWithMIMEWithMain(struct mailmime * mime, bool isMain);
diff --git a/src/core/rfc822/MCMessageBuilder.cc b/src/core/rfc822/MCMessageBuilder.cc
index 3e63ce4a..0ffe0819 100644
--- a/src/core/rfc822/MCMessageBuilder.cc
+++ b/src/core/rfc822/MCMessageBuilder.cc
@@ -12,32 +12,54 @@
using namespace mailcore;
static char * generate_boundary(const char * boundary_prefix);
-struct mailmime * part_multiple_new(const char * type, const char * boundary_prefix);
+struct mailmime * part_multiple_new(MessageBuilder * builder, const char * type, const char * boundary_prefix);
static struct mailmime *
-part_new_empty(struct mailmime_content * content,
+part_new_empty(MessageBuilder * builder, struct mailmime_content * content,
struct mailmime_fields * mime_fields,
const char * boundary_prefix,
int force_single);
-static struct mailmime * get_multipart_alternative(const char * boundary_prefix)
+static struct mailmime * get_multipart_alternative(MessageBuilder * builder, const char * boundary_prefix)
{
struct mailmime * mime;
- mime = part_multiple_new("multipart/alternative", boundary_prefix);
+ mime = part_multiple_new(builder, "multipart/alternative", boundary_prefix);
return mime;
}
-static struct mailmime * get_multipart_related(const char * boundary_prefix)
+static struct mailmime * get_multipart_related(MessageBuilder * builder, const char * boundary_prefix)
{
struct mailmime * mime;
- mime = part_multiple_new("multipart/related", boundary_prefix);
+ mime = part_multiple_new(builder, "multipart/related", boundary_prefix);
return mime;
}
-static int add_attachment(struct mailmime * mime,
+static struct mailmime * get_multipart_signed_pgp(MessageBuilder * builder, const char * boundary_prefix)
+{
+ struct mailmime * mime;
+
+ mime = part_multiple_new(builder, "multipart/signed", boundary_prefix);
+ struct mailmime_parameter * param = mailmime_param_new_with_data((char *) "protocol", (char *) "application/pgp-signature");
+ clist_append(mime->mm_content_type->ct_parameters, param);
+
+ return mime;
+}
+
+static struct mailmime * get_multipart_encrypted_pgp(MessageBuilder * builder, const char * boundary_prefix)
+{
+ struct mailmime * mime;
+
+ mime = part_multiple_new(builder, "multipart/encrypted", boundary_prefix);
+ struct mailmime_parameter * param = mailmime_param_new_with_data((char *) "protocol", (char *) "application/pgp-encrypted");
+ clist_append(mime->mm_content_type->ct_parameters, param);
+
+ return mime;
+}
+
+static int add_attachment(MessageBuilder * builder, struct mailmime * mime,
struct mailmime * mime_sub,
const char * boundary_prefix)
{
@@ -88,7 +110,7 @@ static int add_attachment(struct mailmime * mime,
/* create a multipart */
- mp = part_multiple_new("multipart/mixed", boundary_prefix);
+ mp = part_multiple_new(builder, "multipart/mixed", boundary_prefix);
if (mp == NULL) {
res = MAILIMF_ERROR_MEMORY;
goto err;
@@ -132,7 +154,8 @@ err:
return res;
}
-static struct mailmime * get_text_part(const char * mime_type, const char * charset, const char * content_id,
+static struct mailmime * get_text_part(MessageBuilder * builder,
+ const char * mime_type, const char * charset, const char * content_id,
const char * description,
const char * text, size_t length, int encoding_type, clist * contentTypeParameters)
{
@@ -169,23 +192,30 @@ static struct mailmime * get_text_part(const char * mime_type, const char * char
clist_concat(content->ct_parameters, contentTypeParameters);
}
- mime = part_new_empty(content, mime_fields, NULL, 1);
+ mime = part_new_empty(builder, content, mime_fields, NULL, 1);
mailmime_set_body_text(mime, (char *) text, length);
return mime;
}
-static struct mailmime * get_plain_text_part(const char * mime_type, const char * charset, const char * content_id,
+static struct mailmime * get_plain_text_part(MessageBuilder * builder,
+ const char * mime_type, const char * charset, const char * content_id,
const char * description,
- const char * text, size_t length, clist * contentTypeParameters)
+ const char * text, size_t length, clist * contentTypeParameters, bool forEncryption)
{
bool needsQuotedPrintable;
int mechanism;
needsQuotedPrintable = false;
- for(size_t i = 0 ; i < length ; i ++) {
- if ((text[i] & (1 << 7)) != 0) {
- needsQuotedPrintable = true;
+ if (forEncryption) {
+ needsQuotedPrintable = true;
+ }
+ if (!needsQuotedPrintable) {
+ for(size_t i = 0 ; i < length ; i ++) {
+ if ((text[i] & (1 << 7)) != 0) {
+ needsQuotedPrintable = true;
+ break;
+ }
}
}
@@ -193,17 +223,19 @@ static struct mailmime * get_plain_text_part(const char * mime_type, const char
if (needsQuotedPrintable) {
mechanism = MAILMIME_MECHANISM_QUOTED_PRINTABLE;
}
- return get_text_part(mime_type, charset, content_id, description, text, length, mechanism, contentTypeParameters);
+ return get_text_part(builder, mime_type, charset, content_id, description, text, length, mechanism, contentTypeParameters);
}
-static struct mailmime * get_other_text_part(const char * mime_type, const char * charset, const char * content_id,
+static struct mailmime * get_other_text_part(MessageBuilder * builder,
+ const char * mime_type, const char * charset, const char * content_id,
const char * description,
const char * text, size_t length, clist * contentTypeParameters)
{
- return get_text_part(mime_type, charset, content_id, description, text, length, MAILMIME_MECHANISM_QUOTED_PRINTABLE, contentTypeParameters);
+ return get_text_part(builder, mime_type, charset, content_id, description, text, length, MAILMIME_MECHANISM_QUOTED_PRINTABLE, contentTypeParameters);
}
-static struct mailmime * get_file_part(const char * filename, const char * mime_type, int is_inline,
+static struct mailmime * get_file_part(MessageBuilder * builder,
+ const char * filename, const char * mime_type, int is_inline,
const char * content_id,
const char * content_description,
const char * text, size_t length, clist * contentTypeParameters)
@@ -247,7 +279,7 @@ static struct mailmime * get_file_part(const char * filename, const char * mime_
clist_concat(content->ct_parameters, contentTypeParameters);
}
- mime = part_new_empty(content, mime_fields, NULL, 1);
+ mime = part_new_empty(builder, content, mime_fields, NULL, 1);
mailmime_set_body_text(mime, (char *) text, length);
return mime;
@@ -272,7 +304,7 @@ static clist * content_type_parameters_from_attachment(Attachment * att)
return contentTypeParameters;
}
-static struct mailmime * mime_from_attachment(Attachment * att)
+static struct mailmime * mime_from_attachment(MessageBuilder * builder, Attachment * att, bool forEncryption)
{
struct mailmime * mime;
Data * data;
@@ -291,21 +323,22 @@ static struct mailmime * mime_from_attachment(Attachment * att)
else {
clist * contentTypeParameters = content_type_parameters_from_attachment(att);
if (att->isInlineAttachment() && att->mimeType()->lowercaseString()->isEqual(MCSTR("text/plain"))) {
- mime = get_plain_text_part(MCUTF8(att->mimeType()), MCUTF8(att->charset()),
+ mime = get_plain_text_part(builder, MCUTF8(att->mimeType()), MCUTF8(att->charset()),
MCUTF8(att->contentID()),
MIME_ENCODED_STR(att->contentDescription()),
data->bytes(), data->length(),
- contentTypeParameters);
+ contentTypeParameters,
+ forEncryption);
}
else if (att->isInlineAttachment() && att->mimeType()->lowercaseString()->hasPrefix(MCSTR("text/"))) {
- mime = get_other_text_part(MCUTF8(att->mimeType()), MCUTF8(att->charset()),
+ mime = get_other_text_part(builder, MCUTF8(att->mimeType()), MCUTF8(att->charset()),
MCUTF8(att->contentID()),
MIME_ENCODED_STR(att->contentDescription()),
data->bytes(), data->length(),
contentTypeParameters);
}
else {
- mime = get_file_part(MIME_ENCODED_STR(att->filename()),
+ mime = get_file_part(builder, MIME_ENCODED_STR(att->filename()),
MCUTF8(att->mimeType()), att->isInlineAttachment(),
MCUTF8(att->contentID()),
MIME_ENCODED_STR(att->contentDescription()),
@@ -319,24 +352,25 @@ static struct mailmime * mime_from_attachment(Attachment * att)
return mime;
}
-static struct mailmime * multipart_related_from_attachments(Attachment * htmlAttachment,
- Array * attachments, const char * boundary_prefix)
+static struct mailmime * multipart_related_from_attachments(MessageBuilder * builder,
+ Attachment * htmlAttachment,
+ Array * attachments, const char * boundary_prefix, bool forEncryption)
{
if ((attachments != NULL) && (attachments->count() > 0)) {
struct mailmime * submime;
struct mailmime * mime;
- mime = get_multipart_related(boundary_prefix);
+ mime = get_multipart_related(builder, boundary_prefix);
- submime = mime_from_attachment(htmlAttachment);
- add_attachment(mime, submime, boundary_prefix);
+ submime = mime_from_attachment(builder, htmlAttachment, forEncryption);
+ add_attachment(builder, mime, submime, boundary_prefix);
for(unsigned int i = 0 ; i < attachments->count() ; i ++) {
Attachment * attachment;
attachment = (Attachment *) attachments->objectAtIndex(i);
- submime = mime_from_attachment(attachment);
- add_attachment(mime, submime, boundary_prefix);
+ submime = mime_from_attachment(builder, attachment, forEncryption);
+ add_attachment(builder, mime, submime, boundary_prefix);
}
return mime;
@@ -344,14 +378,14 @@ static struct mailmime * multipart_related_from_attachments(Attachment * htmlAtt
else {
struct mailmime * mime;
- mime = mime_from_attachment(htmlAttachment);
+ mime = mime_from_attachment(builder, htmlAttachment, forEncryption);
return mime;
}
}
static struct mailmime *
-part_new_empty(struct mailmime_content * content,
+part_new_empty(MessageBuilder * builder, struct mailmime_content * content,
struct mailmime_fields * mime_fields,
const char * boundary_prefix,
int force_single)
@@ -410,7 +444,13 @@ part_new_empty(struct mailmime_content * content,
if (attr_name == NULL)
goto free_list;
- boundary = generate_boundary(boundary_prefix);
+ if (builder != NULL) {
+ String * boundaryString = builder->nextBoundary();
+ boundary = strdup(boundaryString->UTF8Characters());
+ }
+ else {
+ boundary = generate_boundary(boundary_prefix);
+ }
attr_value = boundary;
if (attr_name == NULL) {
free(attr_name);
@@ -462,7 +502,7 @@ err:
return NULL;
}
-struct mailmime * part_multiple_new(const char * type, const char * boundary_prefix)
+struct mailmime * part_multiple_new(MessageBuilder * builder, const char * type, const char * boundary_prefix)
{
struct mailmime_fields * mime_fields;
struct mailmime_content * content;
@@ -476,7 +516,7 @@ struct mailmime * part_multiple_new(const char * type, const char * boundary_pre
if (content == NULL)
goto free_fields;
- mp = part_new_empty(content, mime_fields, boundary_prefix, 0);
+ mp = part_new_empty(builder, content, mime_fields, boundary_prefix, 0);
if (mp == NULL)
goto free_content;
@@ -519,8 +559,10 @@ void MessageBuilder::init()
mAttachments = NULL;
mRelatedAttachments = NULL;
mBoundaryPrefix = NULL;
+ mBoundaries = new Array();
+ mCurrentBoundaryIndex = 0;
}
-
+
MessageBuilder::MessageBuilder()
{
init();
@@ -543,6 +585,7 @@ MessageBuilder::~MessageBuilder()
MC_SAFE_RELEASE(mAttachments);
MC_SAFE_RELEASE(mRelatedAttachments);
MC_SAFE_RELEASE(mBoundaryPrefix);
+ MC_SAFE_RELEASE(mBoundaries);
}
String * MessageBuilder::description()
@@ -655,45 +698,42 @@ String * MessageBuilder::boundaryPrefix()
return mBoundaryPrefix;
}
-Data * MessageBuilder::dataAndFilterBcc(bool filterBcc)
+struct mailmime * MessageBuilder::mimeAndFilterBccAndForEncryption(bool filterBcc, bool forEncryption)
{
- Data * data;
- MMAPString * str;
- int col;
-
struct mailmime * htmlPart;
struct mailmime * textPart;
struct mailmime * altPart;
struct mailmime * mainPart;
-
+
+ mCurrentBoundaryIndex = 0;
htmlPart = NULL;
textPart = NULL;
altPart = NULL;
mainPart = NULL;
-
+
if (htmlBody() != NULL) {
Attachment * htmlAttachment;
-
+
htmlAttachment = Attachment::attachmentWithHTMLString(htmlBody());
- htmlPart = multipart_related_from_attachments(htmlAttachment, mRelatedAttachments,
- MCUTF8(mBoundaryPrefix));
+ htmlPart = multipart_related_from_attachments(this, htmlAttachment, mRelatedAttachments,
+ MCUTF8(mBoundaryPrefix), forEncryption);
}
-
+
if (textBody() != NULL) {
Attachment * textAttachment;
-
+
textAttachment = Attachment::attachmentWithText(textBody());
- textPart = mime_from_attachment(textAttachment);
+ textPart = mime_from_attachment(this, textAttachment, forEncryption);
}
else if (htmlBody() != NULL) {
Attachment * textAttachment;
-
+
textAttachment = Attachment::attachmentWithText(htmlBody()->flattenHTML());
- textPart = mime_from_attachment(textAttachment);
+ textPart = mime_from_attachment(this, textAttachment, forEncryption);
}
-
+
if ((textPart != NULL) && (htmlPart != NULL)) {
- altPart = get_multipart_alternative(MCUTF8(mBoundaryPrefix));
+ altPart = get_multipart_alternative(this, MCUTF8(mBoundaryPrefix));
mailmime_smart_add_part(altPart, textPart);
mailmime_smart_add_part(altPart, htmlPart);
mainPart = altPart;
@@ -704,44 +744,66 @@ Data * MessageBuilder::dataAndFilterBcc(bool filterBcc)
else if (htmlPart != NULL) {
mainPart = htmlPart;
}
-
+
struct mailimf_fields * fields;
unsigned int i;
struct mailmime * mime;
-
+
fields = header()->createIMFFieldsAndFilterBcc(filterBcc);
-
+
mime = mailmime_new_message_data(NULL);
mailmime_set_imf_fields(mime, fields);
-
+
if (mainPart != NULL) {
- add_attachment(mime, mainPart, MCUTF8(mBoundaryPrefix));
+ add_attachment(this, mime, mainPart, MCUTF8(mBoundaryPrefix));
}
-
+
if (attachments() != NULL) {
for(i = 0 ; i < attachments()->count() ; i ++) {
Attachment * attachment;
struct mailmime * submime;
-
+
attachment = (Attachment *) attachments()->objectAtIndex(i);
- submime = mime_from_attachment(attachment);
- add_attachment(mime, submime, MCUTF8(mBoundaryPrefix));
+ submime = mime_from_attachment(this, attachment, forEncryption);
+ add_attachment(this, mime, submime, MCUTF8(mBoundaryPrefix));
}
}
+ struct mailmime * result = mime;
+ if (forEncryption) {
+ result = mime->mm_data.mm_message.mm_msg_mime;
+ mime->mm_data.mm_message.mm_msg_mime = NULL;
+ mailmime_free(mime);
+ }
+
+ return result;
+}
+
+Data * MessageBuilder::dataAndFilterBccAndForEncryption(bool filterBcc, bool forEncryption)
+{
+ Data * data;
+ MMAPString * str;
+ int col;
+
str = mmap_string_new("");
col = 0;
+ struct mailmime * mime = mimeAndFilterBccAndForEncryption(filterBcc, forEncryption);
mailmime_write_mem(str, &col, mime);
data = Data::dataWithBytes(str->str, (unsigned int) str->len);
mmap_string_free(str);
mailmime_free(mime);
-
+
return data;
}
Data * MessageBuilder::data()
{
- return dataAndFilterBcc(false);
+ return dataAndFilterBccAndForEncryption(false, false);
+}
+
+Data * MessageBuilder::dataForEncryption()
+{
+ return dataAndFilterBccAndForEncryption(false, true);
}
String * MessageBuilder::htmlRendering(HTMLRendererTemplateCallback * htmlCallback)
@@ -768,3 +830,121 @@ String * MessageBuilder::plainTextBodyRendering(bool stripWhitespace)
return message->plainTextBodyRendering(stripWhitespace);
}
+struct mailmime * get_signature_part(Data * signature)
+{
+ struct mailmime * mime;
+ struct mailmime_content * content;
+
+ content = mailmime_content_new_with_str("application/pgp-signature");
+ struct mailmime_fields * mime_fields = mailmime_fields_new_empty();
+ mime = part_new_empty(NULL, content, mime_fields, NULL, 1);
+ mailmime_set_body_text(mime, signature->bytes(), signature->length());
+
+ return mime;
+}
+
+Data * MessageBuilder::openPGPSignedMessageDataWithSignatureData(Data * signature)
+{
+ struct mailimf_fields * fields;
+ struct mailmime * mime;
+
+ fields = header()->createIMFFieldsAndFilterBcc(false);
+
+ mime = mailmime_new_message_data(NULL);
+ mailmime_set_imf_fields(mime, fields);
+
+ struct mailmime * multipart = get_multipart_signed_pgp(NULL, MCUTF8(boundaryPrefix()));
+ add_attachment(NULL, mime, multipart, MCUTF8(boundaryPrefix()));
+ struct mailmime * part_to_sign = mimeAndFilterBccAndForEncryption(false, true);
+ add_attachment(NULL, multipart, part_to_sign, MCUTF8(boundaryPrefix()));
+ struct mailmime * signature_part = get_signature_part(signature);
+ add_attachment(NULL, multipart, signature_part, MCUTF8(boundaryPrefix()));
+
+ MMAPString * str = mmap_string_new("");
+ int col = 0;
+
+ mailmime_write_mem(str, &col, mime);
+ Data * data = Data::dataWithBytes(str->str, (unsigned int) str->len);
+ mmap_string_free(str);
+ mailmime_free(mime);
+
+ return data;
+}
+
+static struct mailmime * get_pgp_version_part(void)
+{
+ struct mailmime * mime;
+ struct mailmime_content * content;
+
+ content = mailmime_content_new_with_str("application/pgp-encrypted");
+ struct mailmime_fields * mime_fields = mailmime_fields_new_empty();
+ mime = part_new_empty(NULL, content, mime_fields, NULL, 1);
+ const char * version = "Version: 1\r\n";
+ mailmime_set_body_text(mime, (char *) version, strlen(version));
+
+ return mime;
+}
+
+static struct mailmime * get_encrypted_part(Data * encryptedData)
+{
+ struct mailmime * mime;
+ struct mailmime_content * content;
+
+ content = mailmime_content_new_with_str("application/octet-stream");
+ struct mailmime_fields * mime_fields = mailmime_fields_new_empty();
+ mime = part_new_empty(NULL, content, mime_fields, NULL, 1);
+ mailmime_set_body_text(mime, encryptedData->bytes(), encryptedData->length());
+
+ return mime;
+}
+
+Data * MessageBuilder::openPGPEncryptedMessageDataWithEncryptedData(Data * encryptedData)
+{
+ struct mailimf_fields * fields;
+ struct mailmime * mime;
+
+ fields = header()->createIMFFieldsAndFilterBcc(false);
+
+ mime = mailmime_new_message_data(NULL);
+ mailmime_set_imf_fields(mime, fields);
+
+ struct mailmime * multipart = get_multipart_encrypted_pgp(NULL, MCUTF8(boundaryPrefix()));
+ add_attachment(NULL, mime, multipart, MCUTF8(boundaryPrefix()));
+
+ struct mailmime * version_part = get_pgp_version_part();
+ add_attachment(NULL, multipart, version_part, MCUTF8(boundaryPrefix()));
+ struct mailmime * encrypted_part = get_encrypted_part(encryptedData);
+ add_attachment(NULL, multipart, encrypted_part, MCUTF8(boundaryPrefix()));
+
+ MMAPString * str = mmap_string_new("");
+ int col = 0;
+
+ mailmime_write_mem(str, &col, mime);
+ Data * data = Data::dataWithBytes(str->str, (unsigned int) str->len);
+ mmap_string_free(str);
+ mailmime_free(mime);
+
+ return data;
+}
+
+String * MessageBuilder::nextBoundary()
+{
+ unsigned int idx = mCurrentBoundaryIndex;
+ mCurrentBoundaryIndex ++;
+ if (idx < mBoundaries->count()) {
+ return (String *) mBoundaries->objectAtIndex(idx);
+ }
+
+ char * boundary = generate_boundary(MCUTF8(mBoundaryPrefix));
+ String * boundaryString = String::stringWithUTF8Characters(boundary);
+ mBoundaries->addObject(boundaryString);
+ free(boundary);
+
+ return boundaryString;
+}
+
+void MessageBuilder::resetBoundaries()
+{
+ mBoundaries->removeAllObjects();
+}
+
diff --git a/src/core/rfc822/MCMessageBuilder.h b/src/core/rfc822/MCMessageBuilder.h
index 413d1a4d..aef594a1 100644
--- a/src/core/rfc822/MCMessageBuilder.h
+++ b/src/core/rfc822/MCMessageBuilder.h
@@ -39,6 +39,7 @@ namespace mailcore {
virtual String * boundaryPrefix();
virtual Data * data();
+ virtual Data * dataForEncryption();
virtual String * htmlRendering(HTMLRendererTemplateCallback * htmlCallback = NULL);
virtual String * htmlBodyRendering();
@@ -46,11 +47,18 @@ namespace mailcore {
virtual String * plainTextRendering();
virtual String * plainTextBodyRendering(bool stripWhitespace);
+ virtual Data * openPGPSignedMessageDataWithSignatureData(Data * signature);
+ virtual Data * openPGPEncryptedMessageDataWithEncryptedData(Data * encryptedData);
+
public: // subclass behavior
MessageBuilder(MessageBuilder * other);
virtual String * description();
virtual Object * copy();
+ public: // private
+ virtual String * nextBoundary();
+ virtual void resetBoundaries();
+
private:
String * mHTMLBody;
String * mTextBody;
@@ -58,7 +66,10 @@ namespace mailcore {
Array * /* Attachment */ mRelatedAttachments;
String * mBoundaryPrefix;
void init();
- Data * dataAndFilterBcc(bool filterBcc);
+ Data * dataAndFilterBccAndForEncryption(bool filterBcc, bool forEncryption);
+ struct mailmime * mimeAndFilterBccAndForEncryption(bool filterBcc, bool forEncryption);
+ Array * mBoundaries;
+ unsigned int mCurrentBoundaryIndex;
};
};
diff --git a/src/core/rfc822/MCMessageParser.cc b/src/core/rfc822/MCMessageParser.cc
index d5bf84e7..21e2e985 100644
--- a/src/core/rfc822/MCMessageParser.cc
+++ b/src/core/rfc822/MCMessageParser.cc
@@ -143,14 +143,7 @@ String * MessageParser::plainTextBodyRendering(bool stripWhitespace)
String * plainTextBodyString = html->flattenHTML();
if (stripWhitespace) {
- plainTextBodyString->replaceOccurrencesOfString(MCSTR("\t"), MCSTR(" "));
- plainTextBodyString->replaceOccurrencesOfString(MCSTR("\n"), MCSTR(" "));
- plainTextBodyString->replaceOccurrencesOfString(MCSTR("\v"), MCSTR(" "));
- plainTextBodyString->replaceOccurrencesOfString(MCSTR("\f"), MCSTR(" "));
- plainTextBodyString->replaceOccurrencesOfString(MCSTR("\r"), MCSTR(" "));
- while (plainTextBodyString->replaceOccurrencesOfString(MCSTR(" "), MCSTR(" "))) {
- // do nothing.
- }
+ plainTextBodyString = plainTextBodyString->stripWhitespace();
}
return plainTextBodyString;
}
diff --git a/src/core/smtp/MCSMTPSession.cc b/src/core/smtp/MCSMTPSession.cc
index c6f28ff9..771b6302 100644
--- a/src/core/smtp/MCSMTPSession.cc
+++ b/src/core/smtp/MCSMTPSession.cc
@@ -323,7 +323,7 @@ void SMTPSession::connect(ErrorCode * pError)
default:
r = mailsmtp_socket_connect(mSmtp, MCUTF8(hostname()), port());
- if (r != MAILIMAP_NO_ERROR) {
+ if (r != MAILSMTP_NO_ERROR) {
* pError = ErrorConnection;
goto close;
}
diff --git a/src/objc/abstract/MCOAbstractPart.h b/src/objc/abstract/MCOAbstractPart.h
index e30f09bf..30dd8f5f 100644
--- a/src/objc/abstract/MCOAbstractPart.h
+++ b/src/objc/abstract/MCOAbstractPart.h
@@ -82,6 +82,18 @@ typedef NS_ENUM(NSInteger, MCOPartType) {
/** Returns a string representation of the data according to charset.*/
- (NSString *) decodedStringForData:(NSData *)data;
+/** Adds a content type parameter.*/
+- (void) setContentTypeParameterValue:(NSString *)value forName:(NSString *)name;
+
+/** Remove a given content type parameter.*/
+- (void) removeContentTypeParameterForName:(NSString *)name;
+
+/** Returns the value of a given content type parameter.*/
+- (NSString *) contentTypeParameterValueForName:(NSString *)name;
+
+/** Returns an array with the names of all content type parameters.*/
+- (NSArray * /* NSString */) allContentTypeParametersNames;
+
@end
#endif
diff --git a/src/objc/abstract/MCOAbstractPart.mm b/src/objc/abstract/MCOAbstractPart.mm
index d55422d5..8608ec61 100644
--- a/src/objc/abstract/MCOAbstractPart.mm
+++ b/src/objc/abstract/MCOAbstractPart.mm
@@ -87,4 +87,24 @@ MCO_OBJC_SYNTHESIZE_BOOL(setInlineAttachment, isInlineAttachment)
{
return [NSString mco_stringWithMCString:MCO_NATIVE_INSTANCE->decodedStringForData([data mco_mcData])];
}
+
+- (void) setContentTypeParameterValue:(NSString *)value forName:(NSString *)name
+{
+ MCO_NATIVE_INSTANCE->setContentTypeParameter(MCO_FROM_OBJC(mailcore::String, name), MCO_FROM_OBJC(mailcore::String, value));
+}
+
+- (NSString *) contentTypeParameterValueForName:(NSString *)name
+{
+ return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->contentTypeParameterValueForName((MCO_FROM_OBJC(mailcore::String, name))));
+}
+- (void) removeContentTypeParameterForName:(NSString *)name
+{
+ MCO_NATIVE_INSTANCE->removeContentTypeParameter(MCO_FROM_OBJC(mailcore::String, name));
+}
+
+- (NSArray * /* NSString */) allContentTypeParametersNames
+{
+ return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->allContentTypeParametersNames());
+}
+
@end
diff --git a/src/objc/abstract/MCOConstants.h b/src/objc/abstract/MCOConstants.h
index 32a1b1bb..2752c34b 100644
--- a/src/objc/abstract/MCOConstants.h
+++ b/src/objc/abstract/MCOConstants.h
@@ -180,8 +180,10 @@ typedef NS_ENUM(NSInteger, MCOIMAPSearchKind) {
MCOIMAPSearchKindRecipient,
/** Match subject.*/
MCOIMAPSearchKindSubject,
- /** Match content of the message.*/
+ /** Match content of the message, including the headers.*/
MCOIMAPSearchKindContent,
+ /** Match content of the message, excluding the headers.*/
+ MCOIMAPSearchKindBody,
/** Match uids */
MCOIMAPSearchKindUids,
/** Match headers of the message.*/
@@ -400,6 +402,9 @@ typedef NS_ENUM(NSInteger, MCOErrorCode) {
MCOErrorNoRecipient,
/** IMAP: Error when a noop operation fails.*/
MCOErrorNoop,
+ /** IMAP: Error when the password has been entered but second factor
+ authentication is enabled: an application specific password is required. */
+ MCOErrorGmailApplicationSpecificPasswordRequired,
/** The count of all errors */
MCOErrorCodeCount,
};
diff --git a/src/objc/imap/MCOIMAPFetchMessagesOperation.mm b/src/objc/imap/MCOIMAPFetchMessagesOperation.mm
index bd86d99b..83012ca5 100644
--- a/src/objc/imap/MCOIMAPFetchMessagesOperation.mm
+++ b/src/objc/imap/MCOIMAPFetchMessagesOperation.mm
@@ -17,8 +17,11 @@ typedef void (^CompletionType)(NSError *error, NSArray * messages, MCOIndexSet *
@implementation MCOIMAPFetchMessagesOperation {
CompletionType _completionBlock;
+ MCOIMAPBaseOperationItemProgressBlock _progress;
}
+@synthesize progress = _progress;
+
#define nativeType mailcore::IMAPFetchMessagesOperation
+ (void) load
diff --git a/src/objc/imap/MCOIMAPFolderInfo.h b/src/objc/imap/MCOIMAPFolderInfo.h
index c15c5a37..53ad35b8 100644
--- a/src/objc/imap/MCOIMAPFolderInfo.h
+++ b/src/objc/imap/MCOIMAPFolderInfo.h
@@ -34,6 +34,9 @@
// first uid of the unseen messages.
@property (nonatomic, assign) uint32_t firstUnseenUid;
+/** An boolean indicates that this folder or IMAP server allows to add a new permanent flags */
+@property (nonatomic, assign) BOOL allowsNewPermanentFlags;
+
@end
#endif
diff --git a/src/objc/imap/MCOIMAPFolderInfo.m b/src/objc/imap/MCOIMAPFolderInfo.m
index e39551a4..be1d2c3e 100644
--- a/src/objc/imap/MCOIMAPFolderInfo.m
+++ b/src/objc/imap/MCOIMAPFolderInfo.m
@@ -14,6 +14,7 @@
uint64_t _modSequenceValue;
int _messageCount;
uint32_t _firstUnseenUid;
+ BOOL _allowsNewPermanentFlags;
}
@synthesize uidNext = _uidNext;
@@ -21,6 +22,7 @@
@synthesize modSequenceValue = _modSequenceValue;
@synthesize messageCount = _messageCount;
@synthesize firstUnseenUid = _firstUnseenUid;
+@synthesize allowsNewPermanentFlags = _allowsNewPermanentFlags;
+ (MCOIMAPFolderInfo *) info
{
diff --git a/src/objc/imap/MCOIMAPFolderInfoOperation.mm b/src/objc/imap/MCOIMAPFolderInfoOperation.mm
index 7ea8e887..f4d322af 100644
--- a/src/objc/imap/MCOIMAPFolderInfoOperation.mm
+++ b/src/objc/imap/MCOIMAPFolderInfoOperation.mm
@@ -65,6 +65,7 @@ typedef void (^CompletionType)(NSError *error, MCOIMAPFolderInfo *info);
[info setModSequenceValue:MCO_NATIVE_INSTANCE->modSequenceValue()];
[info setMessageCount:MCO_NATIVE_INSTANCE->messageCount()];
[info setFirstUnseenUid:MCO_NATIVE_INSTANCE->firstUnseenUid()];
+ [info setAllowsNewPermanentFlags:MCO_NATIVE_INSTANCE->allowsNewPermanentFlags()];
_completionBlock(nil, info);
}
diff --git a/src/objc/imap/MCOIMAPFolderStatus.h b/src/objc/imap/MCOIMAPFolderStatus.h
index fedd31a3..bd1ddef3 100644
--- a/src/objc/imap/MCOIMAPFolderStatus.h
+++ b/src/objc/imap/MCOIMAPFolderStatus.h
@@ -32,7 +32,7 @@
@property (nonatomic, assign) uint32_t messageCount;
/** Highest modification sequence value for this folder. See CONDSTORE RFC 4551. */
-@property (nonatomic, assign) uint64_t setHighestModSeqValue;
+@property (nonatomic, assign) uint64_t highestModSeqValue;
@end
diff --git a/src/objc/imap/MCOIMAPMessage.h b/src/objc/imap/MCOIMAPMessage.h
index 7ca40b9e..8e2e1c27 100644
--- a/src/objc/imap/MCOIMAPMessage.h
+++ b/src/objc/imap/MCOIMAPMessage.h
@@ -34,6 +34,10 @@
/** IMAP UID of the message. */
@property (nonatomic, assign) uint32_t uid;
+/** IMAP sequence number of the message.
+ @warning *Important*: This property won't be serialized. */
+@property (nonatomic, assign) uint32_t sequenceNumber;
+
/* Size of the entire message */
@property (nonatomic, assign) uint32_t size;
diff --git a/src/objc/imap/MCOIMAPMessage.mm b/src/objc/imap/MCOIMAPMessage.mm
index f663d8bd..d7d499ef 100644
--- a/src/objc/imap/MCOIMAPMessage.mm
+++ b/src/objc/imap/MCOIMAPMessage.mm
@@ -42,6 +42,7 @@
MCO_SYNTHESIZE_NSCODING
MCO_OBJC_SYNTHESIZE_SCALAR(uint32_t, uint32_t, setUid, uid)
+MCO_OBJC_SYNTHESIZE_SCALAR(uint32_t, uint32_t, setSequenceNumber, sequenceNumber)
MCO_OBJC_SYNTHESIZE_SCALAR(uint32_t, uint32_t, setSize, size)
MCO_OBJC_SYNTHESIZE_SCALAR(MCOMessageFlag, mailcore::MessageFlag, setFlags, flags)
MCO_OBJC_SYNTHESIZE_SCALAR(MCOMessageFlag, mailcore::MessageFlag, setOriginalFlags, originalFlags)
diff --git a/src/objc/imap/MCOIMAPSearchExpression.h b/src/objc/imap/MCOIMAPSearchExpression.h
index fbffb8f3..51688dc2 100644
--- a/src/objc/imap/MCOIMAPSearchExpression.h
+++ b/src/objc/imap/MCOIMAPSearchExpression.h
@@ -82,7 +82,7 @@
+ (MCOIMAPSearchExpression *) searchSubject:(NSString *)value;
/**
- Creates a search expression that matches the content of an email.
+ Creates a search expression that matches the content of an email, including the headers.
Example:
@@ -91,6 +91,15 @@
+ (MCOIMAPSearchExpression *) searchContent:(NSString *)value;
/**
+ Creates a search expression that matches the content of an email, excluding the headers.
+
+ Example:
+
+ MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchBody:@"building"]
+ */
++ (MCOIMAPSearchExpression *) searchBody:(NSString *)value;
+
+/**
Creates a search expression that matches the uids specified.
Example:
diff --git a/src/objc/imap/MCOIMAPSearchExpression.mm b/src/objc/imap/MCOIMAPSearchExpression.mm
index f395596c..57ae8455 100644
--- a/src/objc/imap/MCOIMAPSearchExpression.mm
+++ b/src/objc/imap/MCOIMAPSearchExpression.mm
@@ -96,6 +96,11 @@
return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchContent([value mco_mcString]));
}
++ (MCOIMAPSearchExpression *) searchBody:(NSString *)value
+{
+ return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchBody([value mco_mcString]));
+}
+
+ (MCOIMAPSearchExpression *) searchUIDs:(MCOIndexSet *) uids
{
return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchUIDs(MCO_FROM_OBJC(mailcore::IndexSet, uids)));
diff --git a/src/objc/imap/MCOIMAPSession.h b/src/objc/imap/MCOIMAPSession.h
index 7a35b7e3..a6034e9a 100755
--- a/src/objc/imap/MCOIMAPSession.h
+++ b/src/objc/imap/MCOIMAPSession.h
@@ -326,6 +326,25 @@
uids:(MCOIndexSet *)uids
kind:(MCOIMAPStoreFlagsRequestKind)kind
flags:(MCOMessageFlag)flags;
+
+/**
+ Returns an operation to change flags of messages, using IMAP sequence number.
+
+ For example: Adds the seen flag to the message with the sequence number number 42.
+
+ MCOIMAPOperation * op = [session storeFlagsOperationWithFolder:@"INBOX"
+ numbers:[MCOIndexSet indexSetWithIndex:42]
+ kind:MCOIMAPStoreFlagsRequestKindAdd
+ flags:MCOMessageFlagSeen];
+ [op start:^(NSError * error) {
+ ...
+ }];
+ */
+- (MCOIMAPOperation *) storeFlagsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)numbers
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ flags:(MCOMessageFlag)flags;
+
/**
Returns an operation to change flags and custom flags of messages.
@@ -345,15 +364,55 @@
kind:(MCOIMAPStoreFlagsRequestKind)kind
flags:(MCOMessageFlag)flags
customFlags:(NSArray *)customFlags;
+
+
+/**
+ Returns an operation to change flags and custom flags of messages, using IMAP sequence number.
+
+ For example: Adds the seen flag and $CNS-Greeting-On flag to the message with the sequence number 42.
+
+ MCOIMAPOperation * op = [session storeFlagsOperationWithFolder:@"INBOX"
+ numbers:[MCOIndexSet indexSetWithIndex:42]
+ kind:MCOIMAPStoreFlagsRequestKindAdd
+ flags:MCOMessageFlagSeen
+ customFlags:@["$CNS-Greeting-On"]];
+ [op start:^(NSError * error) {
+ ...
+ }];
+ */
+- (MCOIMAPOperation *) storeFlagsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)numbers
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ flags:(MCOMessageFlag)flags
+ customFlags:(NSArray *)customFlags;
+
+/**
+ Returns an operation to change labels of messages. Intended for Gmail
+
+ For example: Adds the label "Home" flag to the message with UID 42.
+
+ MCOIMAPOperation * op = [session storeLabelsOperationWithFolder:@"INBOX"
+ numbers:[MCOIndexSet indexSetWithIndex:42]
+ kind:MCOIMAPStoreFlagsRequestKindAdd
+ labels:[NSArray arrayWithObject:@"Home"]];
+ [op start:^(NSError * error) {
+ ...
+ }];
+*/
+- (MCOIMAPOperation *) storeLabelsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)numbers
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ labels:(NSArray *)labels;
+
/**
Returns an operation to change labels of messages. Intended for Gmail
For example: Adds the label "Home" flag to the message with UID 456.
- MCOIMAPOperation * op = [session storeFlagsOperationWithFolder:@"INBOX"
- uids:[MCOIndexSet indexSetWithIndex:456]
- kind:MCOIMAPStoreFlagsRequestKindAdd
- labels:[NSArray arrayWithObject:@"Home"]];
+ MCOIMAPOperation * op = [session storeLabelsOperationWithFolder:@"INBOX"
+ uids:[MCOIndexSet indexSetWithIndex:456]
+ kind:MCOIMAPStoreFlagsRequestKindAdd
+ labels:[NSArray arrayWithObject:@"Home"]];
[op start:^(NSError * error) {
...
}];
@@ -379,7 +438,23 @@
*/
- (MCOIMAPFetchMessagesOperation *) fetchMessagesByUIDOperationWithFolder:(NSString *)folder
requestKind:(MCOIMAPMessagesRequestKind)requestKind
- uids:(MCOIndexSet *)uids;
+ uids:(MCOIndexSet *)uids DEPRECATED_ATTRIBUTE;
+
+/**
+ Returns an operation to fetch messages by UID.
+
+ MCOIMAPFetchMessagesOperation * op = [session fetchMessagesOperationWithFolder:@"INBOX"
+ requestKind:MCOIMAPMessagesRequestKindHeaders | MCOIMAPMessagesRequestKindStructure
+ uids:MCORangeMake(1, UINT64_MAX)];
+ [op start:^(NSError * error, NSArray * messages, MCOIndexSet * vanishedMessages) {
+ for(MCOIMAPMessage * msg in messages) {
+ NSLog(@"%lu: %@", [msg uid], [msg header]);
+ }
+ }];
+*/
+- (MCOIMAPFetchMessagesOperation *) fetchMessagesOperationWithFolder:(NSString *)folder
+ requestKind:(MCOIMAPMessagesRequestKind)requestKind
+ uids:(MCOIndexSet *)uids;
/**
Returns an operation to fetch messages by (sequence) number.
@@ -425,7 +500,27 @@ vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162
- (MCOIMAPFetchMessagesOperation *) syncMessagesByUIDWithFolder:(NSString *)folder
requestKind:(MCOIMAPMessagesRequestKind)requestKind
uids:(MCOIndexSet *)uids
- modSeq:(uint64_t)modSeq;
+ modSeq:(uint64_t)modSeq DEPRECATED_ATTRIBUTE;
+
+/**
+ Returns an operation to sync the last changes related to the given message list given a modSeq.
+
+ MCOIMAPFetchMessagesOperation * op = [session syncMessagesWithFolder:@"INBOX"
+ requestKind:MCOIMAPMessagesRequestKindUID
+ uids:MCORangeMake(1, UINT64_MAX)
+ modSeq:lastModSeq];
+ [op start:^(NSError * error, NSArray * messages, MCOIndexSet * vanishedMessages) {
+ NSLog(@"added or modified messages: %@", messages);
+ NSLog(@"deleted messages: %@", vanishedMessages);
+ }];
+
+@warn *Important*: This is only for servers that support Conditional Store. See [RFC4551](http://tools.ietf.org/html/rfc4551)
+vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162](http://tools.ietf.org/html/rfc5162)
+*/
+- (MCOIMAPFetchMessagesOperation *) syncMessagesWithFolder:(NSString *)folder
+ requestKind:(MCOIMAPMessagesRequestKind)requestKind
+ uids:(MCOIndexSet *)uids
+ modSeq:(uint64_t)modSeq;
/**
Returns an operation to fetch the content of a message.
@@ -439,7 +534,7 @@ vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162
*/
- (MCOIMAPFetchContentOperation *) fetchMessageByUIDOperationWithFolder:(NSString *)folder
uid:(uint32_t)uid
- urgent:(BOOL)urgent;
+ urgent:(BOOL)urgent DEPRECATED_ATTRIBUTE;
/**
Returns an operation to fetch the content of a message.
@@ -451,7 +546,59 @@ vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162
}];
*/
- (MCOIMAPFetchContentOperation *) fetchMessageByUIDOperationWithFolder:(NSString *)folder
- uid:(uint32_t)uid;
+ uid:(uint32_t)uid DEPRECATED_ATTRIBUTE;
+
+/**
+ Returns an operation to fetch the content of a message.
+ @param urgent is set to YES, an additional connection to the same folder might be opened to fetch the content.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageOperationWithFolder:@"INBOX" uid:456 urgent:NO];
+ [op start:^(NSError * error, NSData * messageData) {
+ MCOMessageParser * parser = [MCOMessageParser messageParserWithData:messageData]
+ ...
+ }];
+ */
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ urgent:(BOOL)urgent;
+
+/**
+ Returns an operation to fetch the content of a message.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageOperationWithFolder:@"INBOX" uid:456];
+ [op start:^(NSError * error, NSData * messageData) {
+ MCOMessageParser * parser = [MCOMessageParser messageParserWithData:messageData]
+ ...
+ }];
+ */
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid;
+
+/**
+ Returns an operation to fetch the content of a message, using IMAP sequence number.
+ @param urgent is set to YES, an additional connection to the same folder might be opened to fetch the content.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageOperationWithFolder:@"INBOX" number:42 urgent:NO];
+ [op start:^(NSError * error, NSData * messageData) {
+ MCOMessageParser * parser = [MCOMessageParser messageParserWithData:messageData]
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ urgent:(BOOL)urgent;
+
+/**
+ Returns an operation to fetch the content of a message, using IMAP sequence number.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageOperationWithFolder:@"INBOX" number:42];
+ [op start:^(NSError * error, NSData * messageData) {
+ MCOMessageParser * parser = [MCOMessageParser messageParserWithData:messageData]
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number;
/** @name Fetching Attachment Operations */
@@ -472,7 +619,7 @@ vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162
uid:(uint32_t)uid
partID:(NSString *)partID
encoding:(MCOEncoding)encoding
- urgent:(BOOL)urgent;
+ urgent:(BOOL)urgent DEPRECATED_ATTRIBUTE;
/**
Returns an operation to fetch an attachment.
@@ -500,7 +647,101 @@ vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162
- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentByUIDOperationWithFolder:(NSString *)folder
uid:(uint32_t)uid
partID:(NSString *)partID
- encoding:(MCOEncoding)encoding;
+ encoding:(MCOEncoding)encoding DEPRECATED_ATTRIBUTE;
+
+/**
+ Returns an operation to fetch an attachment.
+ @param urgent is set to YES, an additional connection to the same folder might be opened to fetch the content.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ uid:456
+ partID:@"1.2"
+ encoding:MCOEncodingBase64
+ urgent:YES];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+ urgent:(BOOL)urgent;
+
+/**
+ Returns an operation to fetch an attachment.
+
+ Example 1:
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ uid:456
+ partID:@"1.2"
+ encoding:MCOEncodingBase64];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+
+ Example 2:
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ uid:[message uid]
+ partID:[part partID]
+ encoding:[part encoding]];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding;
+
+/**
+ Returns an operation to fetch an attachment.
+ @param urgent is set to YES, an additional connection to the same folder might be opened to fetch the content.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ uid:456
+ partID:@"1.2"
+ encoding:MCOEncodingBase64
+ urgent:YES];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+ urgent:(BOOL)urgent;
+
+/**
+ Returns an operation to fetch an attachment.
+
+ Example 1:
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ number:42
+ partID:@"1.2"
+ encoding:MCOEncodingBase64];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+
+ Example 2:
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ number:[message sequenceNumber]
+ partID:[part partID]
+ encoding:[part encoding]];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding;
/** @name General IMAP Actions */
@@ -539,7 +780,7 @@ vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162
MCOIMAPIdentity * identity = [MCOIMAPIdentity identityWithVendor:@"Mozilla" name:@"Thunderbird" version:@"17.0.5"];
MCOIMAPIdentityOperation * op = [session identityOperationWithClientIdentity:identity];
- [op start:^(NSError * error, MCOIMAPIdentity * serverIdentity) {
+ [op start:^(NSError * error, NSDictionary * serverIdentity) {
...
}];
*/
diff --git a/src/objc/imap/MCOIMAPSession.mm b/src/objc/imap/MCOIMAPSession.mm
index dddb27fa..c7c389a4 100755
--- a/src/objc/imap/MCOIMAPSession.mm
+++ b/src/objc/imap/MCOIMAPSession.mm
@@ -285,6 +285,13 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
requestKind:(MCOIMAPMessagesRequestKind)requestKind
uids:(MCOIndexSet *)uids
{
+ return [self fetchMessagesOperationWithFolder:folder requestKind:requestKind uids:uids];
+}
+
+- (MCOIMAPFetchMessagesOperation *) fetchMessagesOperationWithFolder:(NSString *)folder
+ requestKind:(MCOIMAPMessagesRequestKind)requestKind
+ uids:(MCOIndexSet *)uids
+{
IMAPFetchMessagesOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessagesByUIDOperation([folder mco_mcString],
(IMAPMessagesRequestKind) requestKind,
MCO_FROM_OBJC(IndexSet, uids));
@@ -306,6 +313,14 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
uids:(MCOIndexSet *)uids
modSeq:(uint64_t)modSeq
{
+ return [self syncMessagesWithFolder:folder requestKind:requestKind uids:uids modSeq:modSeq];
+}
+
+- (MCOIMAPFetchMessagesOperation *) syncMessagesWithFolder:(NSString *)folder
+ requestKind:(MCOIMAPMessagesRequestKind)requestKind
+ uids:(MCOIndexSet *)uids
+ modSeq:(uint64_t)modSeq
+{
IMAPFetchMessagesOperation * coreOp = MCO_NATIVE_INSTANCE->syncMessagesByUID([folder mco_mcString],
(IMAPMessagesRequestKind) requestKind,
MCO_FROM_OBJC(IndexSet, uids),
@@ -317,14 +332,41 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
uid:(uint32_t)uid
urgent:(BOOL)urgent
{
- IMAPFetchContentOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessageByUIDOperation([folder mco_mcString], uid, urgent);
- return MCO_TO_OBJC_OP(coreOp);
+ return [self fetchMessageOperationWithFolder:folder uid:uid urgent:urgent];
}
- (MCOIMAPFetchContentOperation *) fetchMessageByUIDOperationWithFolder:(NSString *)folder
uid:(uint32_t)uid
{
- return [self fetchMessageByUIDOperationWithFolder:folder uid:uid urgent:NO];
+ return [self fetchMessageOperationWithFolder:folder uid:uid];
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ urgent:(BOOL)urgent
+{
+ IMAPFetchContentOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessageByUIDOperation([folder mco_mcString], uid, urgent);
+ return MCO_TO_OBJC_OP(coreOp);
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+{
+ return [self fetchMessageOperationWithFolder:folder uid:uid urgent:NO];
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ urgent:(BOOL)urgent
+{
+ IMAPFetchContentOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessageByNumberOperation([folder mco_mcString], number, urgent);
+ return MCO_TO_OBJC_OP(coreOp);
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+{
+ return [self fetchMessageOperationWithFolder:folder number:number urgent:NO];
}
- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentByUIDOperationWithFolder:(NSString *)folder
@@ -333,6 +375,30 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
encoding:(MCOEncoding)encoding
urgent:(BOOL)urgent
{
+ return [self fetchMessageAttachmentOperationWithFolder:folder
+ uid:uid
+ partID:partID
+ encoding:encoding
+ urgent:urgent];
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentByUIDOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+{
+ return [self fetchMessageAttachmentOperationWithFolder:folder
+ uid:uid
+ partID:partID
+ encoding:encoding];
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+ urgent:(BOOL)urgent
+{
IMAPFetchContentOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessageAttachmentByUIDOperation([folder mco_mcString],
uid,
[partID mco_mcString],
@@ -341,12 +407,34 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
return MCO_TO_OBJC_OP(coreOp);
}
-- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentByUIDOperationWithFolder:(NSString *)folder
- uid:(uint32_t)uid
- partID:(NSString *)partID
- encoding:(MCOEncoding)encoding
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+{
+ return [self fetchMessageAttachmentOperationWithFolder:folder uid:uid partID:partID encoding:encoding urgent:NO];
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+ urgent:(BOOL)urgent
+{
+ IMAPFetchContentOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessageAttachmentByNumberOperation([folder mco_mcString],
+ number,
+ [partID mco_mcString],
+ (Encoding) encoding,
+ urgent);
+ return MCO_TO_OBJC_OP(coreOp);
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
{
- return [self fetchMessageAttachmentByUIDOperationWithFolder:folder uid:uid partID:partID encoding:encoding urgent:NO];
+ return [self fetchMessageAttachmentOperationWithFolder:folder number:number partID:partID encoding:encoding urgent:NO];
}
- (MCOIMAPOperation *) storeFlagsOperationWithFolder:(NSString *)folder
@@ -363,11 +451,33 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
flags:(MCOMessageFlag)flags
customFlags:(NSArray *)customFlags
{
- IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeFlagsOperation([folder mco_mcString],
- MCO_FROM_OBJC(IndexSet, uids),
- (IMAPStoreFlagsRequestKind) kind,
- (MessageFlag) flags,
- MCO_FROM_OBJC(Array, customFlags));
+ IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeFlagsByUIDOperation([folder mco_mcString],
+ MCO_FROM_OBJC(IndexSet, uids),
+ (IMAPStoreFlagsRequestKind) kind,
+ (MessageFlag) flags,
+ MCO_FROM_OBJC(Array, customFlags));
+ return OPAQUE_OPERATION(coreOp);
+}
+
+- (MCOIMAPOperation *) storeFlagsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)numbers
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ flags:(MCOMessageFlag)flags
+{
+ return [self storeFlagsOperationWithFolder:folder numbers:numbers kind:kind flags:flags customFlags:NULL];
+}
+
+- (MCOIMAPOperation *) storeFlagsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)numbers
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ flags:(MCOMessageFlag)flags
+ customFlags:(NSArray *)customFlags
+{
+ IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeFlagsByNumberOperation([folder mco_mcString],
+ MCO_FROM_OBJC(IndexSet, numbers),
+ (IMAPStoreFlagsRequestKind) kind,
+ (MessageFlag) flags,
+ MCO_FROM_OBJC(Array, customFlags));
return OPAQUE_OPERATION(coreOp);
}
@@ -376,10 +486,22 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
kind:(MCOIMAPStoreFlagsRequestKind)kind
labels:(NSArray *)labels
{
- IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeLabelsOperation([folder mco_mcString],
- MCO_FROM_OBJC(IndexSet, uids),
- (IMAPStoreFlagsRequestKind) kind,
- MCO_FROM_OBJC(Array, labels));
+ IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeLabelsByUIDOperation([folder mco_mcString],
+ MCO_FROM_OBJC(IndexSet, uids),
+ (IMAPStoreFlagsRequestKind) kind,
+ MCO_FROM_OBJC(Array, labels));
+ return OPAQUE_OPERATION(coreOp);
+}
+
+- (MCOIMAPOperation *) storeLabelsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)numbers
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ labels:(NSArray *)labels
+{
+ IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeLabelsByNumberOperation([folder mco_mcString],
+ MCO_FROM_OBJC(IndexSet, numbers),
+ (IMAPStoreFlagsRequestKind) kind,
+ MCO_FROM_OBJC(Array, labels));
return OPAQUE_OPERATION(coreOp);
}
diff --git a/src/objc/nntp/MCONNTPSession.mm b/src/objc/nntp/MCONNTPSession.mm
index d7db82b2..23e2e786 100644
--- a/src/objc/nntp/MCONNTPSession.mm
+++ b/src/objc/nntp/MCONNTPSession.mm
@@ -70,6 +70,7 @@ private:
- (void)dealloc {
MC_SAFE_RELEASE(_loggerBridge);
[_connectionLogger release];
+ _session->setConnectionLogger(NULL);
_session->release();
[super dealloc];
}
diff --git a/src/objc/pop/MCOPOPSession.mm b/src/objc/pop/MCOPOPSession.mm
index 893995a5..61d9320b 100644
--- a/src/objc/pop/MCOPOPSession.mm
+++ b/src/objc/pop/MCOPOPSession.mm
@@ -70,6 +70,7 @@ private:
- (void)dealloc {
MC_SAFE_RELEASE(_loggerBridge);
[_connectionLogger release];
+ _session->setConnectionLogger(NULL);
_session->release();
[super dealloc];
}
diff --git a/src/objc/rfc822/MCOAttachment.h b/src/objc/rfc822/MCOAttachment.h
index 954a825c..eec1bd19 100644
--- a/src/objc/rfc822/MCOAttachment.h
+++ b/src/objc/rfc822/MCOAttachment.h
@@ -42,18 +42,6 @@
/** Returns string representation according to charset*/
- (NSString *) decodedString;
-/** Adds a content type parameter.*/
-- (void) setContentTypeParameterValue:(NSString *)value forName:(NSString *)name;
-
-/** Remove a given content type parameter.*/
-- (void) removeContentTypeParameterForName:(NSString *)name;
-
-/** Returns the value of a given content type parameter.*/
-- (NSString *) contentTypeParameterValueForName:(NSString *)name;
-
-/** Returns an array with the names of all content type parameters.*/
-- (NSArray * /* NSString */) allContentTypeParametersNames;
-
@end
#endif
diff --git a/src/objc/rfc822/MCOAttachment.mm b/src/objc/rfc822/MCOAttachment.mm
index 18c13693..afaf96af 100644
--- a/src/objc/rfc822/MCOAttachment.mm
+++ b/src/objc/rfc822/MCOAttachment.mm
@@ -90,23 +90,4 @@ MCO_OBJC_SYNTHESIZE_DATA(setData, data)
return [NSString mco_stringWithMCString:result];
}
-- (void) setContentTypeParameterValue:(NSString *)value forName:(NSString *)name
-{
- MCO_NATIVE_INSTANCE->setContentTypeParameter(MCO_FROM_OBJC(mailcore::String, name), MCO_FROM_OBJC(mailcore::String, value));
-}
-
-- (NSString *) contentTypeParameterValueForName:(NSString *)name
-{
- return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->contentTypeParameterValueForName((MCO_FROM_OBJC(mailcore::String, name))));
-}
-- (void) removeContentTypeParameterForName:(NSString *)name
-{
- MCO_NATIVE_INSTANCE->removeContentTypeParameter(MCO_FROM_OBJC(mailcore::String, name));
-}
-
-- (NSArray * /* NSString */) allContentTypeParametersNames
-{
- return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->allContentTypeParametersNames());
-}
-
@end
diff --git a/src/objc/rfc822/MCOMessageBuilder.h b/src/objc/rfc822/MCOMessageBuilder.h
index a52afc0f..1663d6f7 100644
--- a/src/objc/rfc822/MCOMessageBuilder.h
+++ b/src/objc/rfc822/MCOMessageBuilder.h
@@ -58,6 +58,24 @@
/** RFC 822 formatted message.*/
- (NSData *) data;
+/** RFC 822 formatted message for encryption.*/
+- (NSData *) dataForEncryption;
+
+/**
+ Returns an OpenPGP signed message with a given signature.
+ The signature needs to be computed on the data returned by -dataForEncryption
+ before calling this method.
+ You could use http://www.netpgp.com to generate it.
+ */
+- (NSData *) openPGPSignedMessageDataWithSignatureData:(NSData *)signature;
+
+/**
+ Returns an OpenPGP encrypted message with a given encrypted data.
+ The encrypted data needs to be computed before calling this method.
+ You could use http://www.netpgp.com to generate it.
+ */
+- (NSData *) openPGPEncryptedMessageDataWithEncryptedData:(NSData *)encryptedData;
+
/** HTML rendering of the message to be displayed in a web view. The delegate can be nil.*/
- (NSString *) htmlRenderingWithDelegate:(id <MCOHTMLRendererDelegate>)delegate;
diff --git a/src/objc/rfc822/MCOMessageBuilder.mm b/src/objc/rfc822/MCOMessageBuilder.mm
index c884386f..c122ab14 100644
--- a/src/objc/rfc822/MCOMessageBuilder.mm
+++ b/src/objc/rfc822/MCOMessageBuilder.mm
@@ -66,6 +66,11 @@ MCO_OBJC_SYNTHESIZE_STRING(setBoundaryPrefix, boundaryPrefix)
return MCO_OBJC_BRIDGE_GET(data);
}
+- (NSData *) dataForEncryption
+{
+ return MCO_OBJC_BRIDGE_GET(dataForEncryption);
+}
+
- (NSString *) htmlRenderingWithDelegate:(id <MCOHTMLRendererDelegate>)delegate
{
MCOAbstractMessageRendererCallback * htmlRenderCallback = new MCOAbstractMessageRendererCallback(self, delegate, NULL);
@@ -95,4 +100,14 @@ MCO_OBJC_SYNTHESIZE_STRING(setBoundaryPrefix, boundaryPrefix)
return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->plainTextBodyRendering(stripWhitespace));
}
+- (NSData *) openPGPSignedMessageDataWithSignatureData:(NSData *)signature
+{
+ return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->openPGPSignedMessageDataWithSignatureData(MCO_FROM_OBJC(mailcore::Data, signature)));
+}
+
+- (NSData *) openPGPEncryptedMessageDataWithEncryptedData:(NSData *)encryptedData
+{
+ return MCO_TO_OBJC(MCO_NATIVE_INSTANCE->openPGPEncryptedMessageDataWithEncryptedData(MCO_FROM_OBJC(mailcore::Data, encryptedData)));
+}
+
@end
diff --git a/src/objc/smtp/MCOSMTPSession.h b/src/objc/smtp/MCOSMTPSession.h
index 5c616244..286cd7c3 100644
--- a/src/objc/smtp/MCOSMTPSession.h
+++ b/src/objc/smtp/MCOSMTPSession.h
@@ -30,7 +30,7 @@
/** This is the hostname of the SMTP server to connect to. */
@property (nonatomic, copy) NSString * hostname;
-/** This is the port of the POP3 server to connect to. */
+/** This is the port of the SMTP server to connect to. */
@property (nonatomic, assign) unsigned int port;
/** This is the username of the account. */
@@ -95,7 +95,7 @@
Generate RFC 822 data using MCOMessageBuilder
- MCOPOPOperation * op = [session sendOperationWithData:rfc822Data];
+ MCOSMTPOperation * op = [session sendOperationWithData:rfc822Data];
[op start:^(NSError * error) {
...
}];
@@ -109,7 +109,7 @@
Generate RFC 822 data using MCOMessageBuilder
- MCOPOPOperation * op = [session sendOperationWithData:rfc822Data
+ MCOSMTPOperation * op = [session sendOperationWithData:rfc822Data
from:[MCOAddress addressWithMailbox:@"hoa@etpan.org"]
recipients:[NSArray arrayWithObject:[MCOAddress addressWithMailbox:@"laura@etpan.org"]]];
[op start:^(NSError * error) {
@@ -123,7 +123,7 @@
/**
Returns an operation that will check whether the SMTP account is valid.
- MCOPOPOperation * op = [session checkAccountOperationWithFrom:[MCOAddress addressWithMailbox:@"hoa@etpan.org"]];
+ MCOSMTPOperation * op = [session checkAccountOperationWithFrom:[MCOAddress addressWithMailbox:@"hoa@etpan.org"]];
[op start:^(NSError * error) {
...
}];
@@ -133,7 +133,7 @@
/**
Returns an operation that will perform a No-Op.
- MCOPOPOperation * op = [session noopOperation];
+ MCOSMTPOperation * op = [session noopOperation];
[op start:^(NSError * error) {
...
}];
diff --git a/src/objc/smtp/MCOSMTPSession.mm b/src/objc/smtp/MCOSMTPSession.mm
index 17dc5057..e0eb2a7d 100644
--- a/src/objc/smtp/MCOSMTPSession.mm
+++ b/src/objc/smtp/MCOSMTPSession.mm
@@ -67,6 +67,7 @@ private:
- (void)dealloc {
MC_SAFE_RELEASE(_loggerBridge);
[_connectionLogger release];
+ _session->setConnectionLogger(NULL);
_session->release();
[super dealloc];
}
diff --git a/src/objc/utils/NSError+MCO.mm b/src/objc/utils/NSError+MCO.mm
index 6d49e4bb..b6b73f6d 100644
--- a/src/objc/utils/NSError+MCO.mm
+++ b/src/objc/utils/NSError+MCO.mm
@@ -48,6 +48,7 @@ static NSString * MCOLocalizedDescriptionTable[] = {
@"A sender is required to send message", /** MCOErrorNoSender */
@"A recipient is required to send message", /** MCOErrorNoRecipient */
@"An error occured while performing a No-Op operation.", /** MCOErrorNoop */
+ @"An application specific password is required", /** MCOErrorGmailApplicationSpecificPasswordRequired */
};
@implementation NSError (MCO)
@@ -57,7 +58,7 @@ static NSString * MCOLocalizedDescriptionTable[] = {
}
NSMutableDictionary *userInfo = [[NSMutableDictionary alloc] init];
- if (code < MCOErrorCodeCount) {
+ if ((NSInteger) code < MCOErrorCodeCount) {
NSString * localizedString = NSLocalizedStringFromTable(MCOLocalizedDescriptionTable[code], @"description of errors of mailcore", @"MailCore");
[userInfo setObject:localizedString forKey:NSLocalizedDescriptionKey];
}
diff --git a/tests/test-all.mm b/tests/test-all.mm
index 0f93b779..af66c6b0 100644
--- a/tests/test-all.mm
+++ b/tests/test-all.mm
@@ -223,6 +223,7 @@ class TestIMAPCallback : public mailcore::Object, public mailcore::OperationCall
virtual void operationFinished(mailcore::Operation * op)
{
mailcore::IMAPFetchMessagesOperation * fetchOp = (mailcore::IMAPFetchMessagesOperation *) op;
+ (void) (fetchOp);
//MCLog("callback %s %s %s", MCUTF8DESC(op), MCUTF8DESC(fetchOp->messages()), MCUTF8DESC(this));
}