diff options
author | 2013-07-06 07:27:24 -0400 | |
---|---|---|
committer | 2013-07-06 07:27:24 -0400 | |
commit | e7792ad0d839677410e4eecaf30095314d64f127 (patch) | |
tree | e3eb0f2c42fe611dfb58a31a12adae33a24084d6 /src/core | |
parent | f2f14f4dca0ae290890ed677d042f4c1142c84d7 (diff) | |
parent | dd0b3c7a22eb957e5f2b9a71a2d3bdb342d62269 (diff) |
Merge remote-tracking branch 'upstream/master' into message-rendering-with-session
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/basetypes/MCLog.h | 10 | ||||
-rw-r--r-- | src/core/renderer/HTMLBodyRendererTemplateCallback.cc | 16 | ||||
-rw-r--r-- | src/core/renderer/HTMLBodyRendererTemplateCallback.h | 28 | ||||
-rw-r--r-- | src/core/rfc822/MCMessageBuilder.cc | 19 | ||||
-rw-r--r-- | src/core/rfc822/MCMessageBuilder.h | 4 | ||||
-rw-r--r-- | src/core/rfc822/MCMessageParser.cc | 30 | ||||
-rw-r--r-- | src/core/rfc822/MCMessageParser.h | 4 |
7 files changed, 102 insertions, 9 deletions
diff --git a/src/core/basetypes/MCLog.h b/src/core/basetypes/MCLog.h index de75314f..6911ab02 100644 --- a/src/core/basetypes/MCLog.h +++ b/src/core/basetypes/MCLog.h @@ -4,13 +4,9 @@ #include <stdio.h> -#ifdef __cplusplus - #define MCLog(...) MCLogInternal(NULL, __FILE__, __LINE__, 0, __VA_ARGS__) - -namespace mailcore { - extern int MCLogEnabled; +extern int MCLogEnabled; #ifndef __printflike #define __printflike(a,b) @@ -28,8 +24,4 @@ extern "C" { } #endif -} - -#endif - #endif diff --git a/src/core/renderer/HTMLBodyRendererTemplateCallback.cc b/src/core/renderer/HTMLBodyRendererTemplateCallback.cc new file mode 100644 index 00000000..94ee6de7 --- /dev/null +++ b/src/core/renderer/HTMLBodyRendererTemplateCallback.cc @@ -0,0 +1,16 @@ +// +// HTMLBodyRendererTemplateCallback.cc +// mailcore2 +// +// Created by Paul Young on 02/07/2013. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#include "HTMLBodyRendererTemplateCallback.h" + +using namespace mailcore; + +mailcore::String * HTMLBodyRendererTemplateCallback::templateForMainHeader(MessageHeader * header) +{ + return MCSTR(""); +} diff --git a/src/core/renderer/HTMLBodyRendererTemplateCallback.h b/src/core/renderer/HTMLBodyRendererTemplateCallback.h new file mode 100644 index 00000000..7901e265 --- /dev/null +++ b/src/core/renderer/HTMLBodyRendererTemplateCallback.h @@ -0,0 +1,28 @@ +// +// HTMLBodyRendererTemplateCallback.h +// mailcore2 +// +// Created by Paul Young on 02/07/2013. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#ifndef __MAILCORE_MCHTMLBODYRENDERERTEMPLATECALLBACK_H_ + +#define __MAILCORE_MCHTMLBODYRENDERERTEMPLATECALLBACK_H_ + +#include <MailCore/MCHTMLRendererCallback.h> + +#ifdef __cplusplus + +namespace mailcore { + + class HTMLBodyRendererTemplateCallback : public Object, public HTMLRendererTemplateCallback { + public: + virtual String * templateForMainHeader(MessageHeader * header); + }; + +} + +#endif + +#endif diff --git a/src/core/rfc822/MCMessageBuilder.cc b/src/core/rfc822/MCMessageBuilder.cc index ea449fd6..7f902be1 100644 --- a/src/core/rfc822/MCMessageBuilder.cc +++ b/src/core/rfc822/MCMessageBuilder.cc @@ -691,3 +691,22 @@ String * MessageBuilder::htmlRendering(HTMLRendererTemplateCallback * htmlCallba MessageParser * message = MessageParser::messageParserWithData(data()); return message->htmlRendering(htmlCallback); } + +String * MessageBuilder::htmlBodyRendering() +{ + MessageParser * message = MessageParser::messageParserWithData(data()); + return message->htmlBodyRendering(); +} + +String * MessageBuilder::plainTextRendering() +{ + MessageParser * message = MessageParser::messageParserWithData(data()); + return message->plainTextRendering(); +} + +String * MessageBuilder::plainTextBodyRendering() +{ + MessageParser * message = MessageParser::messageParserWithData(data()); + return message->plainTextBodyRendering(); +} + diff --git a/src/core/rfc822/MCMessageBuilder.h b/src/core/rfc822/MCMessageBuilder.h index 409cd9ee..efbb1f47 100644 --- a/src/core/rfc822/MCMessageBuilder.h +++ b/src/core/rfc822/MCMessageBuilder.h @@ -41,6 +41,10 @@ namespace mailcore { virtual Data * data(); virtual String * htmlRendering(HTMLRendererTemplateCallback * htmlCallback = NULL); + virtual String * htmlBodyRendering(); + + virtual String * plainTextRendering(); + virtual String * plainTextBodyRendering(); public: // subclass behavior MessageBuilder(MessageBuilder * other); diff --git a/src/core/rfc822/MCMessageParser.cc b/src/core/rfc822/MCMessageParser.cc index b936fabf..1de28d6b 100644 --- a/src/core/rfc822/MCMessageParser.cc +++ b/src/core/rfc822/MCMessageParser.cc @@ -5,6 +5,7 @@ #include "MCAttachment.h" #include "MCMessageHeader.h" #include "MCHTMLRenderer.h" +#include "HTMLBodyRendererTemplateCallback.h" using namespace mailcore; @@ -96,3 +97,32 @@ String * MessageParser::htmlRendering(HTMLRendererTemplateCallback * htmlCallbac return HTMLRenderer::htmlForRFC822Message(this, htmlCallback); } +String * MessageParser::htmlBodyRendering() +{ + HTMLBodyRendererTemplateCallback * callback = new HTMLBodyRendererTemplateCallback(); + String * result = htmlRendering(callback); + MC_SAFE_RELEASE(callback); + return result; +} + +String * MessageParser::plainTextRendering() +{ + String * html = htmlRendering(NULL); + return html->flattenHTML(); +} + +String * MessageParser::plainTextBodyRendering() +{ + String * html = htmlBodyRendering(); + String * plainTextBodyString = html->flattenHTML(); + + plainTextBodyString->replaceOccurrencesOfString(MCSTR("\t"), MCSTR(" ")); + plainTextBodyString->replaceOccurrencesOfString(MCSTR("\n"), MCSTR(" ")); + plainTextBodyString->replaceOccurrencesOfString(MCSTR("\v"), MCSTR(" ")); + plainTextBodyString->replaceOccurrencesOfString(MCSTR("\f"), MCSTR(" ")); + plainTextBodyString->replaceOccurrencesOfString(MCSTR("\r"), MCSTR(" ")); + while (plainTextBodyString->replaceOccurrencesOfString(MCSTR(" "), MCSTR(" "))) { + // do nothing. + } + return plainTextBodyString; +} diff --git a/src/core/rfc822/MCMessageParser.h b/src/core/rfc822/MCMessageParser.h index 4f13299d..bed41793 100644 --- a/src/core/rfc822/MCMessageParser.h +++ b/src/core/rfc822/MCMessageParser.h @@ -24,6 +24,10 @@ namespace mailcore { virtual Data * data(); virtual String * htmlRendering(HTMLRendererTemplateCallback * htmlCallback = NULL); + virtual String * htmlBodyRendering(); + + virtual String * plainTextRendering(); + virtual String * plainTextBodyRendering(); public: // subclass behavior MessageParser(MessageParser * other); |