diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-10-06 02:37:16 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-10-09 23:38:28 +0200 |
| commit | 96f50dd5e600925488fdd9db1580aa01b026269b (patch) | |
| tree | ea8b837a596eb99a7416bfdbfd2d7e4f38603a7b /src/lib/zipper.cc | |
| parent | 94a9473993b027b9368077009decbdd4322f90e3 (diff) | |
Use dcp::filesystem to wrap filesystem calls and fix_long_path
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.cc | 9 |
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); |
