aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Paul Young <paulyoungonline@gmail.com>2013-07-06 07:27:24 -0400
committerGravatar Paul Young <paulyoungonline@gmail.com>2013-07-06 07:27:24 -0400
commite7792ad0d839677410e4eecaf30095314d64f127 (patch)
treee3eb0f2c42fe611dfb58a31a12adae33a24084d6 /src/core
parentf2f14f4dca0ae290890ed677d042f4c1142c84d7 (diff)
parentdd0b3c7a22eb957e5f2b9a71a2d3bdb342d62269 (diff)
Merge remote-tracking branch 'upstream/master' into message-rendering-with-session
Diffstat (limited to 'src/core')
-rw-r--r--src/core/basetypes/MCLog.h10
-rw-r--r--src/core/renderer/HTMLBodyRendererTemplateCallback.cc16
-rw-r--r--src/core/renderer/HTMLBodyRendererTemplateCallback.h28
-rw-r--r--src/core/rfc822/MCMessageBuilder.cc19
-rw-r--r--src/core/rfc822/MCMessageBuilder.h4
-rw-r--r--src/core/rfc822/MCMessageParser.cc30
-rw-r--r--src/core/rfc822/MCMessageParser.h4
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);