summaryrefslogtreecommitdiff
path: root/src/lib/zipper.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-10-06 02:37:16 +0200
committerCarl Hetherington <cth@carlh.net>2023-10-09 01:21:22 +0200
commitf0f4dd5e6b6ed5e50d0444a4de3b2a13156edf64 (patch)
treedce96c211c6d92062187e8c40026c04a26af72e9 /src/lib/zipper.cc
parent89e39ea9e20bc4f8e88e42a57d4505e1fa69fde5 (diff)
Use dcp::filesystem to wrap filesystem calls and fix_long_path2623-add-windows
anything that is passed to read_file() from libcxml. This should fix #2623 and other similar problems.
Diffstat (limited to 'src/lib/zipper.cc')
-rw-r--r--src/lib/zipper.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/zipper.cc b/src/lib/zipper.cc
index d095a27bb..e37c8aa12 100644
--- a/src/lib/zipper.cc
+++ b/src/lib/zipper.cc
@@ -19,23 +19,24 @@
*/
-#include "zipper.h"
-#include "exceptions.h"
#include "dcpomatic_assert.h"
+#include "exceptions.h"
+#include "zipper.h"
+#include <dcp/filesystem.h>
#include <zip.h>
#include <boost/filesystem.hpp>
#include <stdexcept>
-using std::string;
using std::runtime_error;
using std::shared_ptr;
+using std::string;
Zipper::Zipper (boost::filesystem::path file)
{
int error;
- _zip = zip_open (file.string().c_str(), ZIP_CREATE | ZIP_EXCL, &error);
+ _zip = zip_open(dcp::filesystem::fix_long_path(file).string().c_str(), ZIP_CREATE | ZIP_EXCL, &error);
if (!_zip) {
if (error == ZIP_ER_EXISTS) {
throw FileError ("ZIP file already exists", file);