aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/basetypes/MCData.cc16
-rw-r--r--src/core/basetypes/MCHTMLCleaner.cc8
-rw-r--r--src/core/basetypes/MCHashMap.cc2
-rw-r--r--src/core/basetypes/MCJSONParser.cc2
-rw-r--r--src/core/renderer/MCHTMLRendererCallback.cc2
5 files changed, 21 insertions, 9 deletions
diff --git a/src/core/basetypes/MCData.cc b/src/core/basetypes/MCData.cc
index 4cd38839..0a03316c 100644
--- a/src/core/basetypes/MCData.cc
+++ b/src/core/basetypes/MCData.cc
@@ -237,15 +237,19 @@ String * Data::stringWithDetectedCharset(String * hintCharset, bool isHTML)
String * result;
String * charset;
- if (!isHintCharsetValid(hintCharset)) {
- hintCharset = NULL;
+ if (hintCharset != NULL) {
+ hintCharset = normalizeCharset(hintCharset);
}
-
- if (hintCharset == NULL) {
- charset = charsetWithFilteredHTML(isHTML);
+ if (isHintCharsetValid(hintCharset)) {
+ charset = hintCharset;
}
else {
- charset = charsetWithFilteredHTML(isHTML, hintCharset);
+ if (hintCharset == NULL) {
+ charset = charsetWithFilteredHTML(isHTML);
+ }
+ else {
+ charset = charsetWithFilteredHTML(isHTML, hintCharset);
+ }
}
if (charset == NULL) {
diff --git a/src/core/basetypes/MCHTMLCleaner.cc b/src/core/basetypes/MCHTMLCleaner.cc
index 45271c10..78d2461a 100644
--- a/src/core/basetypes/MCHTMLCleaner.cc
+++ b/src/core/basetypes/MCHTMLCleaner.cc
@@ -17,6 +17,10 @@
#include "MCUtils.h"
#include "MCLog.h"
+#if __APPLE__
+#include <TargetConditionals.h>
+#endif
+
using namespace mailcore;
String * HTMLCleaner::cleanHTML(String * input)
@@ -34,6 +38,10 @@ String * HTMLCleaner::cleanHTML(String * input)
Data * data = input->dataUsingEncoding("utf-8");
tidyBufAppend(&docbuf, data->bytes(), data->length());
+#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
+ // This option is not available on the Mac.
+ tidyOptSetBool(tdoc, TidyDropEmptyElems, no);
+#endif
tidyOptSetBool(tdoc, TidyXhtmlOut, yes);
tidySetCharEncoding(tdoc, "utf8");
tidyOptSetBool(tdoc, TidyForceOutput, yes);
diff --git a/src/core/basetypes/MCHashMap.cc b/src/core/basetypes/MCHashMap.cc
index 41266c1b..536dbee1 100644
--- a/src/core/basetypes/MCHashMap.cc
+++ b/src/core/basetypes/MCHashMap.cc
@@ -312,7 +312,7 @@ void HashMap::importSerializable(HashMap * serializable)
else {
key = Object::objectWithSerializable((HashMap *) serializedKey);
}
- Object * value = Object::objectWithSerializable((HashMap *) keys->objectAtIndex(i));
+ Object * value = Object::objectWithSerializable((HashMap *) values->objectAtIndex(i));
setObjectForKey(key, value);
}
}
diff --git a/src/core/basetypes/MCJSONParser.cc b/src/core/basetypes/MCJSONParser.cc
index adac3570..d9f68204 100644
--- a/src/core/basetypes/MCJSONParser.cc
+++ b/src/core/basetypes/MCJSONParser.cc
@@ -47,7 +47,7 @@ String * JSONParser::content()
void JSONParser::setContent(String * content)
{
- MC_SAFE_REPLACE_COPY(String, mContent, content);
+ MC_SAFE_REPLACE_RETAIN(String, mContent, content);
}
unsigned int JSONParser::position()
diff --git a/src/core/renderer/MCHTMLRendererCallback.cc b/src/core/renderer/MCHTMLRendererCallback.cc
index bf408d4f..1028118e 100644
--- a/src/core/renderer/MCHTMLRendererCallback.cc
+++ b/src/core/renderer/MCHTMLRendererCallback.cc
@@ -154,7 +154,7 @@ mailcore::HashMap * HTMLRendererTemplateCallback::templateValuesForPart(mailcore
if (part->className()->isEqual(MCSTR("mailcore::IMAPPart"))) {
mailcore::IMAPPart * imapPart = (mailcore::IMAPPart *) part;
- mailcore::String * value = mailcore::SizeFormatter::stringWithSize(imapPart->size());
+ mailcore::String * value = mailcore::SizeFormatter::stringWithSize(imapPart->decodedSize());
result->setObjectForKey(MCSTR("SIZE"), value);
result->setObjectForKey(MCSTR("HASSIZE"), mailcore::HashMap::hashMap());
}