aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/core/basetypes/MCData.cpp10
-rw-r--r--src/core/basetypes/MCData.h2
2 files changed, 12 insertions, 0 deletions
diff --git a/src/core/basetypes/MCData.cpp b/src/core/basetypes/MCData.cpp
index 8b689036..be4497a7 100644
--- a/src/core/basetypes/MCData.cpp
+++ b/src/core/basetypes/MCData.cpp
@@ -718,6 +718,16 @@ void Data::importSerializable(HashMap * serializable)
setData(((String *) (serializable->objectForKey(MCSTR("data"))))->decodedBase64Data());
}
+ErrorCode Data::writeToFile(String * filename)
+{
+ FILE * f = fopen(filename->fileSystemRepresentation(), "wb");
+ size_t result = fwrite(bytes(), length(), 1, f);
+ if (result == 0) {
+ return ErrorFile;
+ }
+ return ErrorNone;
+}
+
#if __APPLE__
static CFStringEncoding encodingFromCString(const char * charset)
{
diff --git a/src/core/basetypes/MCData.h b/src/core/basetypes/MCData.h
index bec75008..0bb1bc07 100644
--- a/src/core/basetypes/MCData.h
+++ b/src/core/basetypes/MCData.h
@@ -44,6 +44,8 @@ namespace mailcore {
virtual Data * decodedDataUsingEncoding(Encoding encoding);
virtual String * base64String();
+
+ virtual ErrorCode writeToFile(String * filename);
public: // private
virtual String * charsetWithFilteredHTML(bool filterHTML, String * hintCharset = NULL);