diff --git a/AUTHORS b/AUTHORS index fff9431..76a5f05 100644 --- a/AUTHORS +++ b/AUTHORS @@ -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 diff --git a/MailCore.xcodeproj/mronge.mode1v3 b/MailCore.xcodeproj/mronge.mode1v3 deleted file mode 100644 index 7c941a8..0000000 --- a/MailCore.xcodeproj/mronge.mode1v3 +++ /dev/null @@ -1,1423 +0,0 @@ - - - - - ActivePerspectiveName - Project - AllowedModules - - - BundleLoadPath - - MaxInstances - n - Module - PBXSmartGroupTreeModule - Name - Groups and Files Outline View - - - BundleLoadPath - - MaxInstances - n - Module - PBXNavigatorGroup - Name - Editor - - - BundleLoadPath - - MaxInstances - n - Module - XCTaskListModule - Name - Task List - - - BundleLoadPath - - MaxInstances - n - Module - XCDetailModule - Name - File and Smart Group Detail Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXBuildResultsModule - Name - Detailed Build Results Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXProjectFindModule - Name - Project Batch Find Tool - - - BundleLoadPath - - MaxInstances - n - Module - XCProjectFormatConflictsModule - Name - Project Format Conflicts List - - - BundleLoadPath - - MaxInstances - n - Module - PBXBookmarksModule - Name - Bookmarks Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXClassBrowserModule - Name - Class Browser - - - BundleLoadPath - - MaxInstances - n - Module - PBXCVSModule - Name - Source Code Control Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXDebugBreakpointsModule - Name - Debug Breakpoints Tool - - - BundleLoadPath - - MaxInstances - n - Module - XCDockableInspector - Name - Inspector - - - BundleLoadPath - - MaxInstances - n - Module - PBXOpenQuicklyModule - Name - Open Quickly Tool - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugSessionModule - Name - Debugger - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugCLIModule - Name - Debug Console - - - BundleLoadPath - - MaxInstances - n - Module - XCSnapshotModule - Name - Snapshots Tool - - - BundlePath - /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources - Description - DefaultDescriptionKey - DockingSystemVisible - - Extension - mode1v3 - FavBarConfig - - PBXProjectModuleGUID - F82D7C780F489A2F00ADA65C - XCBarModuleItemNames - - XCBarModuleItems - - - FirstTimeWindowDisplayed - - Identifier - com.apple.perspectives.project.mode1v3 - MajorVersion - 33 - MinorVersion - 0 - Name - Default - Notifications - - OpenEditors - - PerspectiveWidths - - -1 - -1 - - Perspectives - - - ChosenToolbarItems - - active-combo-popup - action - NSToolbarFlexibleSpaceItem - debugger-enable-breakpoints - build-and-go - com.apple.ide.PBXToolbarStopButton - get-info - NSToolbarFlexibleSpaceItem - com.apple.pbx.toolbar.searchfield - - ControllerClassBaseName - - IconName - WindowOfProjectWithEditor - Identifier - perspective.project - IsVertical - - Layout - - - BecomeActive - - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 262 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 0867D691FE84028FC02AAC07 - F890D38D10CEECD50039817C - 08FB77AEFE84172EC02AAC07 - F81E26810C6ED57400B3FBAC - F81E26720C6ED56000B3FBAC - 32C88DFF0371C24200C91783 - 089C1665FE841158C02AAC07 - 1C37FBAC04509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 60 - 57 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {262, 698}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {279, 716}} - GroupTreeTableConfiguration - - MainColumn - 262 - - RubberWindowFrame - 240 271 1440 757 0 0 1680 1028 - - Module - PBXSmartGroupTreeModule - Proportion - 279pt - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20306471E060097A5F4 - PBXProjectModuleLabel - mailstream_ssl.c - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1CE0B20406471E060097A5F4 - PBXProjectModuleLabel - mailstream_ssl.c - _historyCapacity - 0 - bookmark - F845FBA5114843FF00E4880A - history - - F82D7D4C0F4A0D2500ADA65C - F82D7D8E0F4A67E300ADA65C - F84781C810507F3400F59249 - F84781E210507F7100F59249 - F8DFAB1A10541771003D3CC1 - F8DFAB1B10541771003D3CC1 - F8DFAB1C10541771003D3CC1 - F8B2719E108FB85600BA08D2 - F8B271A4108FE4F100BA08D2 - F8B271BA108FEEC300BA08D2 - F8B271BD108FEEC300BA08D2 - F8B271BE108FEEC300BA08D2 - F8B271BF108FEEC300BA08D2 - F8B271C0108FEEC300BA08D2 - F8B271C1108FEEC300BA08D2 - F8B271C2108FEEC300BA08D2 - F8B271C3108FEEC300BA08D2 - F8B271C4108FEEC300BA08D2 - F8B271C6108FEEC300BA08D2 - F801D75910953A1400A826E0 - F801D75A10953A1400A826E0 - F801D75C10953A1400A826E0 - F890D3B810CEEE520039817C - F89F506D10D058E00026E04C - F89F507810D059520026E04C - F8618D4C10DAE2CB00C41188 - F8618D4D10DAE2CB00C41188 - F8618D4E10DAE2CB00C41188 - F8618D5110DAE2CB00C41188 - F83A918C10DAE5960052E83A - F83A923110DAEDAA0052E83A - F8428C9010DC27A80050ED47 - F8428C9110DC27A80050ED47 - F80F39CF10E9AA5500D67C6A - F845FBA11148437000E4880A - F845FBA21148437000E4880A - - - SplitCount - 1 - - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {1156, 468}} - RubberWindowFrame - 240 271 1440 757 0 0 1680 1028 - - Module - PBXNavigatorGroup - Proportion - 468pt - - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20506471E060097A5F4 - PBXProjectModuleLabel - Detail - - GeometryConfiguration - - Frame - {{0, 473}, {1156, 243}} - RubberWindowFrame - 240 271 1440 757 0 0 1680 1028 - - Module - XCDetailModule - Proportion - 243pt - - - Proportion - 1156pt - - - Name - Project - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - XCModuleDock - PBXNavigatorGroup - XCDetailModule - - TableOfContents - - F845FAC511483E9500E4880A - 1CE0B1FE06471DED0097A5F4 - F845FAC611483E9500E4880A - 1CE0B20306471E060097A5F4 - 1CE0B20506471E060097A5F4 - - ToolbarConfigUserDefaultsMinorVersion - 2 - ToolbarConfiguration - xcode.toolbar.config.defaultV3 - - - ControllerClassBaseName - - IconName - WindowOfProject - Identifier - perspective.morph - IsVertical - 0 - Layout - - - BecomeActive - 1 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C08E77C0454961000C914BD - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 11E0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 186 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 29B97314FDCFA39411CA2CEA - 1C37FABC05509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 337}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - 1 - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {203, 355}} - GroupTreeTableConfiguration - - MainColumn - 186 - - RubberWindowFrame - 373 269 690 397 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 100% - - - Name - Morph - PreferredWidth - 300 - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - - TableOfContents - - 11E0B1FE06471DED0097A5F4 - - ToolbarConfiguration - xcode.toolbar.config.default.shortV3 - - - PerspectivesBarVisible - - ShelfIsVisible - - SourceDescription - file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' - StatusbarIsVisible - - TimeStamp - 0.0 - ToolbarDisplayMode - 1 - ToolbarIsVisible - - ToolbarSizeMode - 1 - Type - Perspectives - UpdateMessage - The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? - WindowJustification - 5 - WindowOrderList - - F82D7D250F48AD0300ADA65C - /tmp/mailcore/MailCore.xcodeproj - - WindowString - 240 271 1440 757 0 0 1680 1028 - WindowToolsV3 - - - FirstTimeWindowDisplayed - - Identifier - windowTool.build - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528F0623707200166675 - PBXProjectModuleLabel - mailstream_ssl.c - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {1085, 187}} - RubberWindowFrame - 156 242 1085 732 0 0 1680 1028 - - Module - PBXNavigatorGroup - Proportion - 187pt - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - XCMainBuildResultsModuleGUID - PBXProjectModuleLabel - Build Results - XCBuildResultsTrigger_Collapse - 1021 - XCBuildResultsTrigger_Open - 1011 - - GeometryConfiguration - - Frame - {{0, 192}, {1085, 499}} - RubberWindowFrame - 156 242 1085 732 0 0 1680 1028 - - Module - PBXBuildResultsModule - Proportion - 499pt - - - Proportion - 691pt - - - Name - Build Results - ServiceClasses - - PBXBuildResultsModule - - StatusbarIsVisible - - TableOfContents - - F82D7D250F48AD0300ADA65C - F845FAC711483E9500E4880A - 1CD0528F0623707200166675 - XCMainBuildResultsModuleGUID - - ToolbarConfiguration - xcode.toolbar.config.buildV3 - WindowString - 156 242 1085 732 0 0 1680 1028 - WindowToolGUID - F82D7D250F48AD0300ADA65C - WindowToolIsVisible - - - - FirstTimeWindowDisplayed - - Identifier - windowTool.debugger - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - Debugger - - HorizontalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {480, 322}} - {{480, 0}, {572, 322}} - - - VerticalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {1052, 322}} - {{0, 322}, {1052, 286}} - - - - LauncherConfigVersion - 8 - PBXProjectModuleGUID - 1C162984064C10D400B95A72 - PBXProjectModuleLabel - Debug - GLUTExamples (Underwater) - - GeometryConfiguration - - DebugConsoleVisible - None - DebugConsoleWindowFrame - {{200, 200}, {500, 300}} - DebugSTDIOWindowFrame - {{200, 200}, {500, 300}} - Frame - {{0, 0}, {1052, 608}} - PBXDebugSessionStackFrameViewKey - - DebugVariablesTableConfiguration - - Name - 204 - Value - 85 - Summary - 258 - - Frame - {{480, 0}, {572, 322}} - RubberWindowFrame - 1180 793 1052 649 0 0 1920 1178 - - RubberWindowFrame - 1180 793 1052 649 0 0 1920 1178 - - Module - PBXDebugSessionModule - Proportion - 608pt - - - Proportion - 608pt - - - Name - Debugger - ServiceClasses - - PBXDebugSessionModule - - StatusbarIsVisible - - TableOfContents - - 1CD10A99069EF8BA00B06720 - F8B271CC108FEEEB00BA08D2 - 1C162984064C10D400B95A72 - F8B271CD108FEEEB00BA08D2 - F8B271CE108FEEEB00BA08D2 - F8B271CF108FEEEB00BA08D2 - F8B271D0108FEEEB00BA08D2 - F8B271D1108FEEEB00BA08D2 - - ToolbarConfiguration - xcode.toolbar.config.debugV3 - WindowString - 1180 793 1052 649 0 0 1920 1178 - WindowToolGUID - 1CD10A99069EF8BA00B06720 - WindowToolIsVisible - - - - FirstTimeWindowDisplayed - - Identifier - windowTool.find - IsVertical - - Layout - - - Dock - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CDD528C0622207200134675 - PBXProjectModuleLabel - CTCoreFolder.m - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {1440, 573}} - RubberWindowFrame - 240 213 1440 812 0 0 1680 1028 - - Module - PBXNavigatorGroup - Proportion - 1440pt - - - Proportion - 573pt - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528E0623707200166675 - PBXProjectModuleLabel - Project Find - - GeometryConfiguration - - Frame - {{0, 578}, {1440, 193}} - RubberWindowFrame - 240 213 1440 812 0 0 1680 1028 - - Module - PBXProjectFindModule - Proportion - 193pt - - - Proportion - 771pt - - - Name - Project Find - ServiceClasses - - PBXProjectFindModule - - StatusbarIsVisible - - TableOfContents - - 1C530D57069F1CE1000CFCEE - F83A922F10DAEDA40052E83A - F83A923010DAEDA40052E83A - 1CDD528C0622207200134675 - 1CD0528E0623707200166675 - - WindowString - 240 213 1440 812 0 0 1680 1028 - WindowToolGUID - 1C530D57069F1CE1000CFCEE - WindowToolIsVisible - - - - Identifier - MENUSEPARATOR - - - FirstTimeWindowDisplayed - - Identifier - windowTool.debuggerConsole - IsVertical - - Layout - - - Dock - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAAC065D492600B07095 - PBXProjectModuleLabel - Debugger Console - - GeometryConfiguration - - Frame - {{0, 0}, {988, 644}} - RubberWindowFrame - 323 359 988 685 0 0 1920 1178 - - Module - PBXDebugCLIModule - Proportion - 644pt - - - Proportion - 644pt - - - Name - Debugger Console - ServiceClasses - - PBXDebugCLIModule - - StatusbarIsVisible - - TableOfContents - - 1C78EAAD065D492600B07095 - F8B271D2108FEEEB00BA08D2 - 1C78EAAC065D492600B07095 - - ToolbarConfiguration - xcode.toolbar.config.consoleV3 - WindowString - 323 359 988 685 0 0 1920 1178 - WindowToolGUID - 1C78EAAD065D492600B07095 - WindowToolIsVisible - - - - Identifier - windowTool.snapshots - Layout - - - Dock - - - Module - XCSnapshotModule - Proportion - 100% - - - Proportion - 100% - - - Name - Snapshots - ServiceClasses - - XCSnapshotModule - - StatusbarIsVisible - Yes - ToolbarConfiguration - xcode.toolbar.config.snapshots - WindowString - 315 824 300 550 0 0 1440 878 - WindowToolIsVisible - Yes - - - Identifier - windowTool.scm - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAB2065D492600B07095 - PBXProjectModuleLabel - <No Editor> - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1C78EAB3065D492600B07095 - - SplitCount - 1 - - StatusBarVisibility - 1 - - GeometryConfiguration - - Frame - {{0, 0}, {452, 0}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - - Module - PBXNavigatorGroup - Proportion - 0pt - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1CD052920623707200166675 - PBXProjectModuleLabel - SCM - - GeometryConfiguration - - ConsoleFrame - {{0, 259}, {452, 0}} - Frame - {{0, 7}, {452, 259}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - TableConfiguration - - Status - 30 - FileName - 199 - Path - 197.0950012207031 - - TableFrame - {{0, 0}, {452, 250}} - - Module - PBXCVSModule - Proportion - 262pt - - - Proportion - 266pt - - - Name - SCM - ServiceClasses - - PBXCVSModule - - StatusbarIsVisible - 1 - TableOfContents - - 1C78EAB4065D492600B07095 - 1C78EAB5065D492600B07095 - 1C78EAB2065D492600B07095 - 1CD052920623707200166675 - - ToolbarConfiguration - xcode.toolbar.config.scm - WindowString - 743 379 452 308 0 0 1280 1002 - - - Identifier - windowTool.breakpoints - IsVertical - 0 - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C77FABC04509CD000000102 - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - no - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 168 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 1C77FABC04509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {168, 350}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - 0 - - GeometryConfiguration - - Frame - {{0, 0}, {185, 368}} - GroupTreeTableConfiguration - - MainColumn - 168 - - RubberWindowFrame - 315 424 744 409 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 185pt - - - ContentConfiguration - - PBXProjectModuleGUID - 1CA1AED706398EBD00589147 - PBXProjectModuleLabel - Detail - - GeometryConfiguration - - Frame - {{190, 0}, {554, 368}} - RubberWindowFrame - 315 424 744 409 0 0 1440 878 - - Module - XCDetailModule - Proportion - 554pt - - - Proportion - 368pt - - - MajorVersion - 3 - MinorVersion - 0 - Name - Breakpoints - ServiceClasses - - PBXSmartGroupTreeModule - XCDetailModule - - StatusbarIsVisible - 1 - TableOfContents - - 1CDDB66807F98D9800BB5817 - 1CDDB66907F98D9800BB5817 - 1CE0B1FE06471DED0097A5F4 - 1CA1AED706398EBD00589147 - - ToolbarConfiguration - xcode.toolbar.config.breakpointsV3 - WindowString - 315 424 744 409 0 0 1440 878 - WindowToolGUID - 1CDDB66807F98D9800BB5817 - WindowToolIsVisible - 1 - - - Identifier - windowTool.debugAnimator - Layout - - - Dock - - - Module - PBXNavigatorGroup - Proportion - 100% - - - Proportion - 100% - - - Name - Debug Visualizer - ServiceClasses - - PBXNavigatorGroup - - StatusbarIsVisible - 1 - ToolbarConfiguration - xcode.toolbar.config.debugAnimatorV3 - WindowString - 100 100 700 500 0 0 1280 1002 - - - Identifier - windowTool.bookmarks - Layout - - - Dock - - - Module - PBXBookmarksModule - Proportion - 100% - - - Proportion - 100% - - - Name - Bookmarks - ServiceClasses - - PBXBookmarksModule - - StatusbarIsVisible - 0 - WindowString - 538 42 401 187 0 0 1280 1002 - - - Identifier - windowTool.projectFormatConflicts - Layout - - - Dock - - - Module - XCProjectFormatConflictsModule - Proportion - 100% - - - Proportion - 100% - - - Name - Project Format Conflicts - ServiceClasses - - XCProjectFormatConflictsModule - - StatusbarIsVisible - 0 - WindowContentMinSize - 450 300 - WindowString - 50 850 472 307 0 0 1440 877 - - - Identifier - windowTool.classBrowser - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - OptionsSetName - Hierarchy, all classes - PBXProjectModuleGUID - 1CA6456E063B45B4001379D8 - PBXProjectModuleLabel - Class Browser - NSObject - - GeometryConfiguration - - ClassesFrame - {{0, 0}, {374, 96}} - ClassesTreeTableConfiguration - - PBXClassNameColumnIdentifier - 208 - PBXClassBookColumnIdentifier - 22 - - Frame - {{0, 0}, {630, 331}} - MembersFrame - {{0, 105}, {374, 395}} - MembersTreeTableConfiguration - - PBXMemberTypeIconColumnIdentifier - 22 - PBXMemberNameColumnIdentifier - 216 - PBXMemberTypeColumnIdentifier - 97 - PBXMemberBookColumnIdentifier - 22 - - PBXModuleWindowStatusBarHidden2 - 1 - RubberWindowFrame - 385 179 630 352 0 0 1440 878 - - Module - PBXClassBrowserModule - Proportion - 332pt - - - Proportion - 332pt - - - Name - Class Browser - ServiceClasses - - PBXClassBrowserModule - - StatusbarIsVisible - 0 - TableOfContents - - 1C0AD2AF069F1E9B00FABCE6 - 1C0AD2B0069F1E9B00FABCE6 - 1CA6456E063B45B4001379D8 - - ToolbarConfiguration - xcode.toolbar.config.classbrowser - WindowString - 385 179 630 352 0 0 1440 878 - WindowToolGUID - 1C0AD2AF069F1E9B00FABCE6 - WindowToolIsVisible - 0 - - - Identifier - windowTool.refactoring - IncludeInToolsMenu - 0 - Layout - - - Dock - - - BecomeActive - 1 - GeometryConfiguration - - Frame - {0, 0}, {500, 335} - RubberWindowFrame - {0, 0}, {500, 335} - - Module - XCRefactoringModule - Proportion - 100% - - - Proportion - 100% - - - Name - Refactoring - ServiceClasses - - XCRefactoringModule - - WindowString - 200 200 500 356 0 0 1920 1200 - - - - diff --git a/MailCore.xcodeproj/mronge.pbxuser b/MailCore.xcodeproj/mronge.pbxuser deleted file mode 100644 index f30c055..0000000 --- a/MailCore.xcodeproj/mronge.pbxuser +++ /dev/null @@ -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 = ""; - }; - 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 = ""; - }; - 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 = ""; - }; - 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 = ""; - 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 = ""; - }; - 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 = ""; - }; -} diff --git a/MailCore.xcodeproj/project.pbxproj b/MailCore.xcodeproj/project.pbxproj index fae6c06..f26097e 100644 --- a/MailCore.xcodeproj/project.pbxproj +++ b/MailCore.xcodeproj/project.pbxproj @@ -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, diff --git a/Source/CTCoreMessage.h b/Source/CTCoreMessage.h index 3d5cca2..d34348d 100644 --- a/Source/CTCoreMessage.h +++ b/Source/CTCoreMessage.h @@ -29,7 +29,7 @@ * SUCH DAMAGE. */ -#import +#import #import /*! @@ -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. diff --git a/Source/CTCoreMessage.m b/Source/CTCoreMessage.m index 7e0570a..0c58eb4 100644 --- a/Source/CTCoreMessage.m +++ b/Source/CTCoreMessage.m @@ -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]; } diff --git a/Source/CTMIME_MessagePart.h b/Source/CTMIME_MessagePart.h index 70fb4e9..b764c9e 100644 --- a/Source/CTMIME_MessagePart.h +++ b/Source/CTMIME_MessagePart.h @@ -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 diff --git a/Source/CTMIME_MessagePart.m b/Source/CTMIME_MessagePart.m index f13ff66..831534f 100644 --- a/Source/CTMIME_MessagePart.m +++ b/Source/CTMIME_MessagePart.m @@ -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; } diff --git a/Source/CTMIME_MultiPart.m b/Source/CTMIME_MultiPart.m index e142eb0..e26c082 100644 --- a/Source/CTMIME_MultiPart.m +++ b/Source/CTMIME_MultiPart.m @@ -30,6 +30,7 @@ */ #import "CTMIME_MultiPart.h" +#import "CTMIME_MessagePart.h" #import #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; diff --git a/Source/CTMIME_SinglePart.m b/Source/CTMIME_SinglePart.m index 7332cc6..a6692b5 100644 --- a/Source/CTMIME_SinglePart.m +++ b/Source/CTMIME_SinglePart.m @@ -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;