aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Hoa V. Dinh <dinh.viet.hoa@gmail.com>2015-07-13 15:33:07 -0700
committerGravatar Hoa V. Dinh <dinh.viet.hoa@gmail.com>2015-07-13 15:33:07 -0700
commit89f75cec935430b410e1c3e26ce884548a834afa (patch)
tree713b8a887a2ee7052743c4c80dc5ec7d283aee33 /src/core
parent1eace1dc1c2e181988c77ceb8ec83918572bf9d1 (diff)
Fixed #1164: merged #1169 manually. Fixed zipping on iOS device, running with sandbox.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/zip/MCZip.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/core/zip/MCZip.cpp b/src/core/zip/MCZip.cpp
index a9879c9f..69e7fc6e 100644
--- a/src/core/zip/MCZip.cpp
+++ b/src/core/zip/MCZip.cpp
@@ -1,6 +1,7 @@
#include "MCWin32.h" // Should be included first.
#include "MCZip.h"
+#include "MCZipPrivate.h"
#include "zip.h"
#include "unzip.h"
@@ -166,23 +167,33 @@ static ErrorCode addFile(zipFile file, String * path)
return ErrorNone;
}
-String * mailcore::CreateTemporaryZipFileFromFolder(String * folder)
+#ifndef __APPLE__
+String * mailcore::TemporaryDirectoryForZip()
{
char tempdir[] = "/tmp/mailcore2-XXXXXX";
char * result = mkdtemp(tempdir);
if (result == NULL) {
return NULL;
}
+ return String::stringWithFileSystemRepresentation(tempdir);
+}
+#endif
+
+String * mailcore::CreateTemporaryZipFileFromFolder(String * folder)
+{
+ String * tempDirectoryString = TemporaryDirectoryForZip();
+
+ if (tempDirectoryString == NULL) {
+ return NULL;
+ }
- String * tempDirectoryString = String::stringWithFileSystemRepresentation(tempdir);
String * path = tempDirectoryString->stringByAppendingPathComponent(folder->lastPathComponent())->stringByAppendingUTF8Format(".zip");
ErrorCode err = CreateZipFileFromFolder(path, folder);
if (err != ErrorNone) {
- unlink(path->fileSystemRepresentation());
- unlink(tempdir);
return NULL;
}
+ unlink(tempDirectoryString->fileSystemRepresentation());
return path;
}