This commit is contained in:
Matt Ronge
2011-05-08 13:31:22 -05:00
10 changed files with 102 additions and 2445 deletions
+1
View File
@@ -5,6 +5,7 @@ Primary Authors:
Contributors:
* Stefano Barbato - For a patch that fixes a memory leak
* Jaremy Creechley - Added support for sending attachments
* Julián Romero - For a patch that adds unicode support for addresses
* Kyle Van Essen - For a patch that fixes a flags memory leak
* Gabor Cselle - For tons of contributions, especially iPhone support and bug fixes
File diff suppressed because it is too large Load Diff
-993
View File
@@ -1,993 +0,0 @@
// !$*UTF8*$!
{
0867D690FE84028FC02AAC07 /* Project object */ = {
activeArchitecturePreference = x86_64;
activeBuildConfigurationName = Release;
activeTarget = 8DC2EF4F0486A6940098B216 /* MailCore */;
addToTargets = (
8DC2EF4F0486A6940098B216 /* MailCore */,
);
breakpoints = (
);
codeSenseManager = F8A70F000C4069C300D1D694 /* Code sense */;
perUserDictionary = {
"PBXConfiguration.PBXBreakpointsDataSource.v1:1CA1AED706398EBD00589147" = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
20,
198,
20,
99,
99,
29,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXBreakpointsDataSource_ActionID,
PBXBreakpointsDataSource_TypeID,
PBXBreakpointsDataSource_BreakpointID,
PBXBreakpointsDataSource_UseID,
PBXBreakpointsDataSource_LocationID,
PBXBreakpointsDataSource_ConditionID,
PBXBreakpointsDataSource_IgnoreCountID,
PBXBreakpointsDataSource_ContinueID,
);
};
PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID;
PBXFileTableDataSourceColumnWidthsKey = (
22,
300,
1240,
);
PBXFileTableDataSourceColumnsKey = (
PBXExecutablesDataSource_ActiveFlagID,
PBXExecutablesDataSource_NameID,
PBXExecutablesDataSource_CommentsID,
);
};
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_FiletypeID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
917,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXFileTableDataSource3.XCSCMDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
20,
848,
20,
48.16259765625,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_SCM_ColumnID,
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
877,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 289947260;
PBXWorkspaceStateSaveDate = 289947260;
};
perUserProjectItems = {
F801D75910953A1400A826E0 /* PBXTextBookmark */ = F801D75910953A1400A826E0 /* PBXTextBookmark */;
F801D75A10953A1400A826E0 /* PBXTextBookmark */ = F801D75A10953A1400A826E0 /* PBXTextBookmark */;
F801D75C10953A1400A826E0 /* PBXTextBookmark */ = F801D75C10953A1400A826E0 /* PBXTextBookmark */;
F80F39CF10E9AA5500D67C6A /* PBXTextBookmark */ = F80F39CF10E9AA5500D67C6A /* PBXTextBookmark */;
F82D7D4C0F4A0D2500ADA65C /* PBXTextBookmark */ = F82D7D4C0F4A0D2500ADA65C /* PBXTextBookmark */;
F82D7D8E0F4A67E300ADA65C /* PBXTextBookmark */ = F82D7D8E0F4A67E300ADA65C /* PBXTextBookmark */;
F83A918C10DAE5960052E83A /* PBXTextBookmark */ = F83A918C10DAE5960052E83A /* PBXTextBookmark */;
F83A923110DAEDAA0052E83A /* PBXTextBookmark */ = F83A923110DAEDAA0052E83A /* PBXTextBookmark */;
F8428C9010DC27A80050ED47 /* PBXTextBookmark */ = F8428C9010DC27A80050ED47 /* PBXTextBookmark */;
F8428C9110DC27A80050ED47 /* PBXTextBookmark */ = F8428C9110DC27A80050ED47 /* PBXTextBookmark */;
F845FBA11148437000E4880A /* PBXTextBookmark */ = F845FBA11148437000E4880A /* PBXTextBookmark */;
F845FBA21148437000E4880A /* XCBuildMessageTextBookmark */ = F845FBA21148437000E4880A /* XCBuildMessageTextBookmark */;
F845FBA5114843FF00E4880A /* PBXTextBookmark */ = F845FBA5114843FF00E4880A /* PBXTextBookmark */;
F84781C810507F3400F59249 /* PBXTextBookmark */ = F84781C810507F3400F59249 /* PBXTextBookmark */;
F84781E210507F7100F59249 /* PBXTextBookmark */ = F84781E210507F7100F59249 /* PBXTextBookmark */;
F8618D4C10DAE2CB00C41188 /* PBXTextBookmark */ = F8618D4C10DAE2CB00C41188 /* PBXTextBookmark */;
F8618D4D10DAE2CB00C41188 /* PBXTextBookmark */ = F8618D4D10DAE2CB00C41188 /* PBXTextBookmark */;
F8618D4E10DAE2CB00C41188 /* PBXTextBookmark */ = F8618D4E10DAE2CB00C41188 /* PBXTextBookmark */;
F8618D5110DAE2CB00C41188 /* PBXTextBookmark */ = F8618D5110DAE2CB00C41188 /* PBXTextBookmark */;
F890D3B810CEEE520039817C /* PBXTextBookmark */ = F890D3B810CEEE520039817C /* PBXTextBookmark */;
F89F506D10D058E00026E04C /* PBXTextBookmark */ = F89F506D10D058E00026E04C /* PBXTextBookmark */;
F89F507810D059520026E04C /* PBXTextBookmark */ = F89F507810D059520026E04C /* PBXTextBookmark */;
F8B2719E108FB85600BA08D2 /* PBXTextBookmark */ = F8B2719E108FB85600BA08D2 /* PBXTextBookmark */;
F8B271A4108FE4F100BA08D2 /* PBXTextBookmark */ = F8B271A4108FE4F100BA08D2 /* PBXTextBookmark */;
F8B271BA108FEEC300BA08D2 /* PBXTextBookmark */ = F8B271BA108FEEC300BA08D2 /* PBXTextBookmark */;
F8B271BD108FEEC300BA08D2 /* PBXTextBookmark */ = F8B271BD108FEEC300BA08D2 /* PBXTextBookmark */;
F8B271BE108FEEC300BA08D2 /* PBXTextBookmark */ = F8B271BE108FEEC300BA08D2 /* PBXTextBookmark */;
F8B271BF108FEEC300BA08D2 /* PBXTextBookmark */ = F8B271BF108FEEC300BA08D2 /* PBXTextBookmark */;
F8B271C0108FEEC300BA08D2 /* PBXTextBookmark */ = F8B271C0108FEEC300BA08D2 /* PBXTextBookmark */;
F8B271C1108FEEC300BA08D2 /* PBXTextBookmark */ = F8B271C1108FEEC300BA08D2 /* PBXTextBookmark */;
F8B271C2108FEEC300BA08D2 /* PBXTextBookmark */ = F8B271C2108FEEC300BA08D2 /* PBXTextBookmark */;
F8B271C3108FEEC300BA08D2 /* PBXTextBookmark */ = F8B271C3108FEEC300BA08D2 /* PBXTextBookmark */;
F8B271C4108FEEC300BA08D2 /* PBXTextBookmark */ = F8B271C4108FEEC300BA08D2 /* PBXTextBookmark */;
F8B271C6108FEEC300BA08D2 /* PBXTextBookmark */ = F8B271C6108FEEC300BA08D2 /* PBXTextBookmark */;
F8DFAB1A10541771003D3CC1 /* PBXTextBookmark */ = F8DFAB1A10541771003D3CC1 /* PBXTextBookmark */;
F8DFAB1B10541771003D3CC1 /* PBXTextBookmark */ = F8DFAB1B10541771003D3CC1 /* PBXTextBookmark */;
F8DFAB1C10541771003D3CC1 /* PBXTextBookmark */ = F8DFAB1C10541771003D3CC1 /* PBXTextBookmark */;
};
sourceControlManager = F8A70EFF0C4069C300D1D694 /* Source Control */;
userBuildSettings = {
};
};
72D117D00C5C181700FE2CB5 /* CTBareMessageTests.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {996, 681}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{0, 1699}";
};
};
72D117D10C5C181700FE2CB5 /* CTBareMessageTests.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1063, 1050}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{77, 2706}";
};
};
8DC2EF4F0486A6940098B216 /* MailCore */ = {
activeExec = 0;
};
F801D75910953A1400A826E0 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F8EADFB40B3BB178000C8371 /* CTCoreMessageTests.m */;
name = "CTCoreMessageTests.m: 186";
rLen = 236;
rLoc = 9134;
rType = 0;
vrLen = 2266;
vrLoc = 7112;
};
F801D75A10953A1400A826E0 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F801D75B10953A1400A826E0 /* CTThreadActionFlagUpdate.m */;
name = "CTThreadActionFlagUpdate.m: 15";
rLen = 30;
rLoc = 570;
rType = 0;
vrLen = 789;
vrLoc = 0;
};
F801D75B10953A1400A826E0 /* CTThreadActionFlagUpdate.m */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.objc;
name = CTThreadActionFlagUpdate.m;
path = "/Users/mronge/Documents/Thread Backend/Thread Actions/CTThreadActionFlagUpdate.m";
sourceTree = "<absolute>";
};
F801D75C10953A1400A826E0 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B88540A74AA7100143DF6 /* CTCoreFolder.h */;
name = "CTCoreFolder.h: 87";
rLen = 64;
rLoc = 3310;
rType = 0;
vrLen = 1576;
vrLoc = 2430;
};
F80F39CF10E9AA5500D67C6A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F88804D60B4243C000D400E7 /* MailCoreUtilities.m */;
name = "MailCoreUtilities.m: 62";
rLen = 0;
rLoc = 2274;
rType = 0;
vrLen = 826;
vrLoc = 1698;
};
F81A8AD20C03FC3B002F780A /* CTMIME_MessagePart.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {958, 989}}";
sepNavSelRange = "{1726, 48}";
sepNavVisRange = "{0, 1924}";
};
};
F81A8AD30C03FC3B002F780A /* CTMIME_MessagePart.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1530, 1144}}";
sepNavSelRange = "{2318, 0}";
sepNavVisRange = "{728, 2223}";
};
};
F81A8AD40C03FC3B002F780A /* CTMIME_MultiPart.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1530, 931}}";
sepNavSelRange = "{1694, 0}";
sepNavVisRange = "{0, 1756}";
};
};
F81A8AD50C03FC3B002F780A /* CTMIME_MultiPart.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1530, 1209}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{947, 2088}";
};
};
F81A8AD60C03FC3B002F780A /* CTMIME_SinglePart.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {958, 989}}";
sepNavSelRange = "{1991, 0}";
sepNavVisRange = "{0, 2016}";
};
};
F81A8AD70C03FC3B002F780A /* CTMIME_SinglePart.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1530, 1937}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{2824, 2109}";
};
};
F81A8AD80C03FC3B002F780A /* CTMIME_TextPart.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {726, 943}}";
sepNavSelRange = "{1805, 0}";
sepNavVisRange = "{0, 1810}";
};
};
F81A8AD90C03FC3B002F780A /* CTMIME_TextPart.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1530, 1508}}";
sepNavSelRange = "{1635, 0}";
sepNavVisRange = "{1890, 2173}";
};
};
F81A8ADA0C03FC3B002F780A /* CTMIME.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1530, 931}}";
sepNavSelRange = "{1790, 0}";
sepNavVisRange = "{0, 1989}";
};
};
F81A8ADB0C03FC3B002F780A /* CTMIME.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1530, 1677}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{1556, 1963}";
};
};
F81A8AEB0C03FC58002F780A /* CTMIMETests.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1050, 533}}";
sepNavSelRange = "{620, 9}";
sepNavVisRange = "{0, 1691}";
sepNavWindowFrame = "{{61, 434}, {1078, 697}}";
};
};
F81A8AEC0C03FC58002F780A /* CTMIMETests.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1223, 2405}}";
sepNavSelRange = "{4284, 0}";
sepNavVisRange = "{3768, 1806}";
};
};
F81B88500A74AA7100143DF6 /* CTCoreAccount.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1011, 1248}}";
sepNavSelRange = "{1601, 0}";
sepNavVisRange = "{0, 1658}";
sepNavWindowFrame = "{{63, 87}, {1100, 785}}";
};
};
F81B88510A74AA7100143DF6 /* CTCoreAccount.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1530, 2821}}";
sepNavSelRange = "{4960, 0}";
sepNavVisRange = "{3678, 2068}";
};
};
F81B88520A74AA7100143DF6 /* CTCoreAddress.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {779, 1036}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{0, 1572}";
sepNavWindowFrame = "{{130, 371}, {1078, 697}}";
};
};
F81B88530A74AA7100143DF6 /* CTCoreAddress.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1288, 1599}}";
sepNavSelRange = "{2314, 0}";
sepNavVisRange = "{0, 1895}";
};
};
F81B88540A74AA7100143DF6 /* CTCoreFolder.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1530, 2522}}";
sepNavSelRange = "{3300, 64}";
sepNavVisRange = "{2430, 1576}";
};
};
F81B88550A74AA7100143DF6 /* CTCoreFolder.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1288, 8398}}";
sepNavSelRange = "{8865, 32}";
sepNavVisRange = "{3195, 1131}";
sepNavWindowFrame = "{{221, 92}, {1100, 785}}";
};
};
F81B88560A74AA7100143DF6 /* CTCoreMessage.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1288, 2860}}";
sepNavSelRange = "{4318, 0}";
sepNavVisRange = "{3339, 1068}";
};
};
F81B88570A74AA7100143DF6 /* CTCoreMessage.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1288, 7176}}";
sepNavSelRange = "{7713, 995}";
sepNavVisRange = "{7403, 2119}";
sepNavWindowFrame = "{{109, 45}, {1100, 785}}";
};
};
F81B885A0A74AA7100143DF6 /* CTSMTPConnection.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1288, 832}}";
sepNavSelRange = "{1056, 0}";
sepNavVisRange = "{0, 2011}";
};
};
F81B885B0A74AA7100143DF6 /* CTSMTPConnection.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1048, 923}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{0, 1662}";
};
};
F81B885C0A74AA7100143DF6 /* MailCore.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1050, 520}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{0, 1765}";
sepNavWindowFrame = "{{107, 392}, {1078, 697}}";
};
};
F81B885D0A74AA7100143DF6 /* MailCoreTypes.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {782, 1456}}";
sepNavSelRange = "{1641, 69}";
sepNavVisRange = "{1576, 2558}";
};
};
F81B88710A74AAD800143DF6 /* MailCore_Prefix.pch */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {996, 681}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 148}";
};
};
F81E26680C6ED35C00B3FBAC /* CTBareAttachment.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {580, 950}}";
sepNavSelRange = "{1978, 0}";
sepNavVisRange = "{0, 1978}";
};
};
F81E26690C6ED35C00B3FBAC /* CTBareAttachment.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1379, 1014}}";
sepNavSelRange = "{1691, 0}";
sepNavVisRange = "{1080, 1512}";
};
};
F81E266C0C6ED4E100B3FBAC /* CTCoreAttachment.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1050, 585}}";
sepNavSelRange = "{1925, 0}";
sepNavVisRange = "{77, 1848}";
};
};
F81E266D0C6ED4E100B3FBAC /* CTCoreAttachment.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1050, 1118}}";
sepNavSelRange = "{2237, 139}";
sepNavVisRange = "{796, 1443}";
};
};
F81E272D0C6EDC6A00B3FBAC /* CTCoreAttachmentTests.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {996, 681}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{0, 1730}";
};
};
F81E272E0C6EDC6A00B3FBAC /* CTCoreAttachmentTests.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {726, 966}}";
sepNavSelRange = "{2064, 0}";
sepNavVisRange = "{3, 3263}";
};
};
F8245A2F0C04089D005E08A8 /* CTMIMEFactory.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {726, 966}}";
sepNavSelRange = "{0, 1575}";
sepNavVisRange = "{0, 1921}";
};
};
F8245A300C04089D005E08A8 /* CTMIMEFactory.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1530, 1144}}";
sepNavSelRange = "{3113, 0}";
sepNavVisRange = "{658, 2587}";
};
};
F82D7C800F48AC8500ADA65C /* Tests */ = {
activeExec = 0;
};
F82D7D420F49279400ADA65C /* CTCoreAccountTests.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {779, 602}}";
sepNavSelRange = "{1725, 0}";
sepNavVisRange = "{0, 1572}";
};
};
F82D7D430F49279400ADA65C /* CTCoreAccountTests.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {789, 1274}}";
sepNavSelRange = "{3578, 0}";
sepNavVisRange = "{2023, 1317}";
};
};
F82D7D4C0F4A0D2500ADA65C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B88520A74AA7100143DF6 /* CTCoreAddress.h */;
name = "CTCoreAddress.h: 15";
rLen = 0;
rLoc = 628;
rType = 0;
vrLen = 1572;
vrLoc = 0;
};
F82D7D7F0F4A675300ADA65C /* RunPlatformUnitTests.include */ = {
isa = PBXFileReference;
lastKnownFileType = text.script.sh;
name = RunPlatformUnitTests.include;
path = /Developer/Tools/RunPlatformUnitTests.include;
sourceTree = "<absolute>";
};
F82D7D8E0F4A67E300ADA65C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F82D7D7F0F4A675300ADA65C /* RunPlatformUnitTests.include */;
name = "RunPlatformUnitTests.include: 387";
rLen = 135;
rLoc = 13188;
rType = 0;
vrLen = 951;
vrLoc = 12689;
};
F83A918C10DAE5960052E83A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B88560A74AA7100143DF6 /* CTCoreMessage.h */;
name = "CTCoreMessage.h: 127";
rLen = 0;
rLoc = 4318;
rType = 0;
vrLen = 1068;
vrLoc = 3339;
};
F83A923110DAEDAA0052E83A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B885A0A74AA7100143DF6 /* CTSMTPConnection.h */;
name = "CTSMTPConnection.h: 22";
rLen = 0;
rLoc = 1056;
rType = 0;
vrLen = 2011;
vrLoc = 0;
};
F8428C9010DC27A80050ED47 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B88550A74AA7100143DF6 /* CTCoreFolder.m */;
name = "CTCoreFolder.m: 307";
rLen = 32;
rLoc = 8865;
rType = 0;
vrLen = 1131;
vrLoc = 3195;
};
F8428C9110DC27A80050ED47 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B88530A74AA7100143DF6 /* CTCoreAddress.m */;
name = "CTCoreAddress.m: 71";
rLen = 0;
rLoc = 2314;
rType = 0;
vrLen = 1895;
vrLoc = 0;
};
F8430BAF0C72B16000753941 /* CTMIME_Enumerator.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {726, 966}}";
sepNavSelRange = "{1501, 0}";
sepNavVisRange = "{0, 1813}";
};
};
F8430BB00C72B16000753941 /* CTMIME_Enumerator.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {726, 1106}}";
sepNavSelRange = "{1723, 33}";
sepNavVisRange = "{0, 2362}";
};
};
F845FBA11148437000E4880A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F8D31A3109C524EA00468234 /* main.m */;
name = "main.m: 164";
rLen = 0;
rLoc = 6343;
rType = 0;
vrLen = 1373;
vrLoc = 5280;
};
F845FBA21148437000E4880A /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
comments = "Openssl/ssl.h: No such file or directory";
fRef = F845FBA31148437000E4880A /* mailstream_ssl.c */;
fallbackIsa = XCBuildMessageTextBookmark;
rLen = 1;
rLoc = 78;
rType = 1;
};
F845FBA31148437000E4880A /* mailstream_ssl.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = mailstream_ssl.c;
path = "/tmp/mailcore/libetpan/build-mac/../src/data-types/mailstream_ssl.c";
sourceTree = "<absolute>";
};
F845FBA5114843FF00E4880A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F845FBA6114843FF00E4880A /* mailstream_ssl.c */;
name = "mailstream_ssl.c: 79";
rLen = 0;
rLoc = 2404;
rType = 0;
vrLen = 629;
vrLoc = 1988;
};
F845FBA6114843FF00E4880A /* mailstream_ssl.c */ = {
isa = PBXFileReference;
name = mailstream_ssl.c;
path = "/tmp/mailcore/libetpan/build-mac/../src/data-types/mailstream_ssl.c";
sourceTree = "<absolute>";
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1095, 14924}}";
sepNavSelRange = "{2404, 0}";
sepNavVisRange = "{1988, 629}";
};
};
F84781C810507F3400F59249 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F8EB06811030F4FA0073B4B2 /* acl_types.h */;
name = "acl_types.h: 12";
rLen = 0;
rLoc = 440;
rType = 0;
vrLen = 1632;
vrLoc = 0;
};
F84781E210507F7100F59249 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81A8AEC0C03FC58002F780A /* CTMIMETests.m */;
name = "CTMIMETests.m: 78";
rLen = 0;
rLoc = 4293;
rType = 0;
vrLen = 1806;
vrLoc = 3768;
};
F858CC470C51DE6B00EF1B3D /* CTBareMessage.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1048, 624}}";
sepNavSelRange = "{1080, 0}";
sepNavVisRange = "{441, 1445}";
};
};
F858CC480C51DE6B00EF1B3D /* CTBareMessage.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1124, 767}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{799, 1217}";
sepNavWindowFrame = "{{84, 413}, {1078, 697}}";
};
};
F8618B5610DADB5C00C41188 /* MailCore iPhone */ = {
activeExec = 0;
};
F8618D4C10DAE2CB00C41188 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F858CC470C51DE6B00EF1B3D /* CTBareMessage.h */;
name = "CTBareMessage.h: 22";
rLen = 0;
rLoc = 1080;
rType = 0;
vrLen = 1445;
vrLoc = 441;
};
F8618D4D10DAE2CB00C41188 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B885B0A74AA7100143DF6 /* CTSMTPConnection.m */;
name = "CTSMTPConnection.m: 15";
rLen = 0;
rLoc = 628;
rType = 0;
vrLen = 1662;
vrLoc = 0;
};
F8618D4E10DAE2CB00C41188 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F8A70EEE0C4059E100D1D694 /* JRLog.m */;
name = "JRLog.m: 232";
rLen = 0;
rLoc = 6285;
rType = 0;
vrLen = 776;
vrLoc = 5853;
};
F8618D5110DAE2CB00C41188 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B88570A74AA7100143DF6 /* CTCoreMessage.m */;
name = "CTCoreMessage.m: 251";
rLen = 995;
rLoc = 7713;
rType = 0;
vrLen = 2119;
vrLoc = 7403;
};
F88804D50B4243C000D400E7 /* MailCoreUtilities.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1024, 585}}";
sepNavSelRange = "{1610, 0}";
sepNavVisRange = "{1327, 427}";
};
};
F88804D60B4243C000D400E7 /* MailCoreUtilities.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1095, 1209}}";
sepNavSelRange = "{2274, 0}";
sepNavVisRange = "{1698, 826}";
};
};
F88CA0CC0BF7A7B00055AC29 /* CTSMTP.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1379, 715}}";
sepNavSelRange = "{873, 0}";
sepNavVisRange = "{0, 1888}";
};
};
F88CA0CD0BF7A7B00055AC29 /* CTSMTP.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {996, 1414}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{0, 2023}";
};
};
F88CA0D20BF7AC0B0055AC29 /* CTESMTP.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {996, 714}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{0, 2028}";
};
};
F88CA0D30BF7AC0B0055AC29 /* CTESMTP.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {996, 2338}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{0, 2020}";
};
};
F890D3B810CEEE520039817C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B88500A74AA7100143DF6 /* CTCoreAccount.h */;
name = "CTCoreAccount.h: 33";
rLen = 0;
rLoc = 1611;
rType = 0;
vrLen = 1658;
vrLoc = 0;
};
F890D40C10CF03920039817C /* idle.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = idle.c;
path = "/Users/mronge/Projects/mailcore-work/libetpan/build-mac/../src/low-level/imap/idle.c";
sourceTree = "<absolute>";
};
F89F506D10D058E00026E04C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F890D40C10CF03920039817C /* idle.c */;
name = "idle.c: 71";
rLen = 0;
rLoc = 1304;
rType = 0;
vrLen = 942;
vrLoc = 939;
};
F89F507810D059520026E04C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F858CC480C51DE6B00EF1B3D /* CTBareMessage.m */;
name = "CTBareMessage.m: 15";
rLen = 0;
rLoc = 628;
rType = 0;
vrLen = 1217;
vrLoc = 799;
};
F8A70EED0C4059E100D1D694 /* JRLog.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {996, 1050}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1661}";
};
};
F8A70EEE0C4059E100D1D694 /* JRLog.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1048, 4134}}";
sepNavSelRange = "{6285, 0}";
sepNavVisRange = "{5853, 776}";
};
};
F8A70EFF0C4069C300D1D694 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
.. = "";
};
};
};
F8A70F000C4069C300D1D694 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
F8B2719E108FB85600BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B885C0A74AA7100143DF6 /* MailCore.h */;
name = "MailCore.h: 15";
rLen = 0;
rLoc = 628;
rType = 0;
vrLen = 1765;
vrLoc = 0;
};
F8B271A4108FE4F100BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F88804D50B4243C000D400E7 /* MailCoreUtilities.h */;
name = "MailCoreUtilities.h: 37";
rLen = 21;
rLoc = 1729;
rType = 0;
vrLen = 1954;
vrLoc = 18;
};
F8B271BA108FEEC300BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81B88510A74AA7100143DF6 /* CTCoreAccount.m */;
name = "CTCoreAccount.m: 169";
rLen = 0;
rLoc = 4960;
rType = 0;
vrLen = 2068;
vrLoc = 3678;
};
F8B271BD108FEEC300BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81A8AD30C03FC3B002F780A /* CTMIME_MessagePart.m */;
name = "CTMIME_MessagePart.m: 55";
rLen = 0;
rLoc = 2318;
rType = 0;
vrLen = 2223;
vrLoc = 728;
};
F8B271BE108FEEC300BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81A8AD90C03FC3B002F780A /* CTMIME_TextPart.m */;
name = "CTMIME_TextPart.m: 34";
rLen = 0;
rLoc = 1635;
rType = 0;
vrLen = 2173;
vrLoc = 1890;
};
F8B271BF108FEEC300BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81A8ADB0C03FC3B002F780A /* CTMIME.m */;
name = "CTMIME.m: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 1963;
vrLoc = 1556;
};
F8B271C0108FEEC300BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F8245A300C04089D005E08A8 /* CTMIMEFactory.m */;
name = "CTMIMEFactory.m: 81";
rLen = 0;
rLoc = 3113;
rType = 0;
vrLen = 2587;
vrLoc = 658;
};
F8B271C1108FEEC300BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81A8AD50C03FC3B002F780A /* CTMIME_MultiPart.m */;
name = "CTMIME_MultiPart.m: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 2088;
vrLoc = 947;
};
F8B271C2108FEEC300BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81A8AD40C03FC3B002F780A /* CTMIME_MultiPart.h */;
name = "CTMIME_MultiPart.h: 38";
rLen = 0;
rLoc = 1704;
rType = 0;
vrLen = 1756;
vrLoc = 0;
};
F8B271C3108FEEC300BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81A8ADA0C03FC3B002F780A /* CTMIME.h */;
name = "CTMIME.h: 42";
rLen = 0;
rLoc = 1800;
rType = 0;
vrLen = 1989;
vrLoc = 0;
};
F8B271C4108FEEC300BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81A8AD70C03FC3B002F780A /* CTMIME_SinglePart.m */;
name = "CTMIME_SinglePart.m: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 2109;
vrLoc = 2824;
};
F8B271C6108FEEC300BA08D2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F8EADFB30B3BB178000C8371 /* CTCoreMessageTests.h */;
name = "CTCoreMessageTests.h: 6";
rLen = 0;
rLoc = 79;
rType = 0;
vrLen = 1749;
vrLoc = 0;
};
F8D31A3109C524EA00468234 /* main.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1095, 2405}}";
sepNavSelRange = "{6343, 0}";
sepNavVisRange = "{5280, 1373}";
sepNavWindowFrame = "{{237, 16}, {1100, 785}}";
};
};
F8DFAB1A10541771003D3CC1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81A8AEB0C03FC58002F780A /* CTMIMETests.h */;
name = "CTMIMETests.h: 15";
rLen = 9;
rLoc = 620;
rType = 0;
vrLen = 1691;
vrLoc = 0;
};
F8DFAB1B10541771003D3CC1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81E266C0C6ED4E100B3FBAC /* CTCoreAttachment.h */;
name = "CTCoreAttachment.h: 45";
rLen = 0;
rLoc = 1935;
rType = 0;
vrLen = 1848;
vrLoc = 77;
};
F8DFAB1C10541771003D3CC1 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = F81E266D0C6ED4E100B3FBAC /* CTCoreAttachment.m */;
name = "CTCoreAttachment.m: 56";
rLen = 139;
rLoc = 2237;
rType = 0;
vrLen = 1443;
vrLoc = 796;
};
F8EA76110C1141C1004F85D8 /* CTCoreAddressTests.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {996, 681}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{0, 1699}";
};
};
F8EA76120C1141C1004F85D8 /* CTCoreAddressTests.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {996, 681}}";
sepNavSelRange = "{628, 0}";
sepNavVisRange = "{0, 2227}";
};
};
F8EADFB30B3BB178000C8371 /* CTCoreMessageTests.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1530, 931}}";
sepNavSelRange = "{79, 0}";
sepNavVisRange = "{0, 1749}";
sepNavWindowFrame = "{{38, 455}, {1078, 697}}";
};
};
F8EADFB40B3BB178000C8371 /* CTCoreMessageTests.m */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {6886, 2392}}";
sepNavSelRange = "{9134, 236}";
sepNavVisRange = "{7112, 2266}";
sepNavWindowFrame = "{{15, 476}, {1078, 697}}";
};
};
F8EB06811030F4FA0073B4B2 /* acl_types.h */ = {
isa = PBXFileReference;
fileEncoding = 4;
lastKnownFileType = sourcecode.c.h;
name = acl_types.h;
path = /Users/mronge/Projects/mailcore/OpenSourceProjects/include/libetpan/acl_types.h;
sourceTree = "<absolute>";
};
}
+1
View File
@@ -741,6 +741,7 @@
"$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
);
LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/OpenSourceProjects/build\"";
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = (
"-seg1addr",
0xb0000000,
+8 -2
View File
@@ -29,7 +29,7 @@
* SUCH DAMAGE.
*/
#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>
#import <libetpan/libetpan.h>
/*!
@@ -102,6 +102,12 @@
*/
- (NSString *)htmlBody;
/*! @abstract Returns a message body as an NSString. First attempts
to retrieve a plain text body, if that fails then
tries for an HTML body.
*/
- (NSString *)bodyPreferringPlainText;
/*!
@abstract This method sets the message body. Plaintext only please!
*/
@@ -125,7 +131,7 @@
a date from the distant past is used instead.
*/
//FIXME
//- (NSCalendarDate *)sentDate;
- (NSCalendarDate *)sentDate;
/*!
@abstract Returns YES if the message is unread.
+65 -22
View File
@@ -37,6 +37,7 @@
#import "CTMIME_MessagePart.h"
#import "CTMIME_TextPart.h"
#import "CTMIME_MultiPart.h"
#import "CTMIME_SinglePart.h"
#import "CTBareAttachment.h"
@interface CTCoreMessage (Private)
@@ -143,6 +144,14 @@ char * etpan_encode_mime_header(char * phrase)
return result;
}
- (NSString *)bodyPreferringPlainText {
NSString *body = [self body];
if ([body length] == 0) {
body = [self htmlBody];
}
return body;
}
- (void)_buildUpBodyText:(CTMIME *)mime result:(NSMutableString *)result {
if (mime == nil)
@@ -200,9 +209,17 @@ char * etpan_encode_mime_header(char * phrase)
- (void)setBody:(NSString *)body {
CTMIME *oldMIME = myParsedMIME;
CTMIME_TextPart *text = [CTMIME_TextPart mimeTextPartWithString:body];
CTMIME_MessagePart *messagePart = [CTMIME_MessagePart mimeMessagePartWithContent:text];
myParsedMIME = [messagePart retain];
[oldMIME release];
// If myParsedMIME is already a multi-part mime, just add it. otherwise replace it.
//TODO: If setBody is called multiple times it will add text parts multiple times. Instead
// it should find the existing text part (if there is one) and replace it
if ([myParsedMIME isKindOfClass:[CTMIME_MultiPart class]]) {
[(CTMIME_MultiPart *)myParsedMIME addMIMEPart:text];
} else {
CTMIME_MessagePart *messagePart = [CTMIME_MessagePart mimeMessagePartWithContent:text];
myParsedMIME = [messagePart retain];
[oldMIME release];
}
}
- (NSArray *)attachments {
@@ -225,6 +242,30 @@ char * etpan_encode_mime_header(char * phrase)
}
- (void)addAttachment:(CTCoreAttachment *)attachment {
CTMIME_MultiPart *multi;
CTMIME_MessagePart *msg;
if ([myParsedMIME isKindOfClass:[CTMIME_MessagePart class]]) {
msg = (CTMIME_MessagePart *)myParsedMIME;
CTMIME *sub = [msg content];
// Creat new multimime part if needed
if ([sub isKindOfClass:[CTMIME_MultiPart class]]) {
multi = (CTMIME_MultiPart *)sub;
} else {
multi = [CTMIME_MultiPart mimeMultiPart];
[multi addMIMEPart:sub];
[msg setContent:multi];
}
// add new SinglePart which encodes the attachment in base64
CTMIME_SinglePart *attpart = [CTMIME_SinglePart mimeSinglePartWithData:[attachment data]];
attpart.contentType = [attachment contentType];
attpart.filename = [attachment filename];
[multi addMIMEPart:attpart];
}
}
@@ -248,23 +289,23 @@ char * etpan_encode_mime_header(char * phrase)
}
//- (NSCalendarDate *)sentDate {
// if ( myFields->fld_orig_date == NULL) {
// return [NSDate distantPast];
// }
// else {
// //This feels like a hack, there should be a better way to deal with the time zone
// NSInteger seconds = 60*60*myFields->fld_orig_date->dt_date_time->dt_zone/100;
// NSTimeZone *timeZone = [NSTimeZone timeZoneForSecondsFromGMT:seconds];
// return [NSCalendarDate dateWithYear:myFields->fld_orig_date->dt_date_time->dt_year
// month:myFields->fld_orig_date->dt_date_time->dt_month
// day:myFields->fld_orig_date->dt_date_time->dt_day
// hour:myFields->fld_orig_date->dt_date_time->dt_hour
// minute:myFields->fld_orig_date->dt_date_time->dt_min
// second:myFields->fld_orig_date->dt_date_time->dt_sec
// timeZone:timeZone];
// }
//}
- (NSCalendarDate *)sentDate {
if ( myFields->fld_orig_date == NULL) {
return [NSDate distantPast];
}
else {
//This feels like a hack, there should be a better way to deal with the time zone
NSInteger seconds = 60*60*myFields->fld_orig_date->dt_date_time->dt_zone/100;
NSTimeZone *timeZone = [NSTimeZone timeZoneForSecondsFromGMT:seconds];
return [NSCalendarDate dateWithYear:myFields->fld_orig_date->dt_date_time->dt_year
month:myFields->fld_orig_date->dt_date_time->dt_month
day:myFields->fld_orig_date->dt_date_time->dt_day
hour:myFields->fld_orig_date->dt_date_time->dt_hour
minute:myFields->fld_orig_date->dt_date_time->dt_min
second:myFields->fld_orig_date->dt_date_time->dt_sec
timeZone:timeZone];
}
}
- (BOOL)isUnread {
@@ -409,7 +450,9 @@ char * etpan_encode_mime_header(char * phrase)
- (NSString *)render {
if ([myParsedMIME isMemberOfClass:[myParsedMIME class]]) {
CTMIME *msgPart = myParsedMIME;
if ([myParsedMIME isKindOfClass:[CTMIME_MessagePart class]]) {
/* It's a message part, so let's set it's fields */
struct mailimf_fields *fields;
struct mailimf_mailbox *sender = (myFields->fld_sender != NULL) ? (myFields->fld_sender->snd_mb) : NULL;
@@ -425,7 +468,7 @@ char * etpan_encode_mime_header(char * phrase)
//TODO uh oh, when this get freed it frees stuff in the CTCoreMessage
//TODO Need to make sure that fields gets freed somewhere
fields = mailimf_fields_new_with_data(from, sender, replyTo, to, cc, bcc, inReplyTo, references, subject);
[(CTMIME_MessagePart *)myParsedMIME setIMFFields:fields];
[(CTMIME_MessagePart *)msgPart setIMFFields:fields];
}
return [myParsedMIME render];
}
+1
View File
@@ -40,5 +40,6 @@
+ (id)mimeMessagePartWithContent:(CTMIME *)mime;
- (id)initWithContent:(CTMIME *)messageContent;
- (void)setContent:(CTMIME *)aContent;
- (CTMIME *)content;
- (void)setIMFFields:(struct mailimf_fields *)imfFields;
@end
+3 -1
View File
@@ -77,7 +77,9 @@
- (struct mailmime *)buildMIMEStruct {
struct mailmime *mime = mailmime_new_message_data([myMessageContent buildMIMEStruct]);
mailmime_set_imf_fields(mime, myFields);
if (myFields != NULL) {
mailmime_set_imf_fields(mime, myFields);
}
return mime;
}
+4 -2
View File
@@ -30,6 +30,7 @@
*/
#import "CTMIME_MultiPart.h"
#import "CTMIME_MessagePart.h"
#import <libetpan/libetpan.h>
#import "MailCoreTypes.h"
#import "CTMIMEFactory.h"
@@ -79,12 +80,13 @@
- (struct mailmime *)buildMIMEStruct {
//TODO make this smarter so it builds different types other than multipart/mixed
struct mailmime *mime = mailmime_multiple_new("multipart/mixed");
NSEnumerator *enumer = [myContentList objectEnumerator];
CTMIME *part;
int r;
while ((part = [enumer nextObject])) {
r = mailmime_add_part(mime, [part buildMIMEStruct]);
r = mailmime_smart_add_part(mime, [part buildMIMEStruct]);
assert(r == 0);
}
return mime;
+19 -2
View File
@@ -126,18 +126,35 @@
//TODO need to do content disposition
- (struct mailmime *)buildMIMEStruct {
struct mailmime_mechanism * encoding;
struct mailmime_fields *mime_fields;
struct mailmime *mime_sub;
struct mailmime_content *content;
int r;
struct mailmime_disposition * disposition;
mime_fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_BASE64);
encoding = mailmime_mechanism_new(MAILMIME_MECHANISM_BASE64, NULL);
// MIME Disposition
disposition = mailmime_disposition_new_filename(MAILMIME_DISPOSITION_TYPE_ATTACHMENT, [self.filename cStringUsingEncoding:NSUTF8StringEncoding]);
assert(disposition != NULL);
// MIME Fields using disposition
// mailmime_fields_new_with_version(encoding, id, description, disposition, language);
mime_fields = mailmime_fields_new_with_version(encoding, NULL, NULL, disposition, NULL);
assert(mime_fields != NULL);
// mime_fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_BASE64);
// assert(mime_fields != NULL);
// MIME Content Type
content = mailmime_content_new_with_str([self.contentType cStringUsingEncoding:NSUTF8StringEncoding]);
assert(content != NULL);
mime_sub = mailmime_new_empty(content, mime_fields);
assert(mime_sub != NULL);
// Add Data
r = mailmime_set_body_text(mime_sub, (char *)[self.data bytes], [self.data length]);
assert(r == MAILIMF_NO_ERROR);
return mime_sub;