diff options
author | 2015-07-13 15:33:07 -0700 | |
---|---|---|
committer | 2015-07-13 15:33:07 -0700 | |
commit | 89f75cec935430b410e1c3e26ce884548a834afa (patch) | |
tree | 713b8a887a2ee7052743c4c80dc5ec7d283aee33 /src/core | |
parent | 1eace1dc1c2e181988c77ceb8ec83918572bf9d1 (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.cpp | 19 |
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; } |