diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-10-06 02:04:49 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-10-09 01:20:01 +0200 |
| commit | e4b2ebd80779a44d24fe87af26ef278c1e2d97d2 (patch) | |
| tree | 3bc940c5eb49c96c3c18a896c8ccd8039e6db839 /tools | |
| parent | 3be26a66645de04c7b220abeebfd2f024990a696 (diff) | |
Add wrappers around boost::filesystem methods that handle the
required mangling of long filenames on Windows.
Also wrap lots of missing places (e.g. calls to asdcplib, libxml++,
libcxml etc.) in dcp::filesystem::fix_long_path().
The idea is to keep paths un-mangled until they we call some
filesystem-related API and mangle them at that point. Otherwise
we end up serialising mangled names, which seems like it will
not end well.
Should fix DoM #2623.
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/dcpdiff.cc | 7 | ||||
| -rw-r--r-- | tools/dcpinfo.cc | 3 | ||||
| -rw-r--r-- | tools/dcprecover.cc | 5 | ||||
| -rw-r--r-- | tools/dcpverify.cc | 3 |
4 files changed, 11 insertions, 7 deletions
diff --git a/tools/dcpdiff.cc b/tools/dcpdiff.cc index 3dace12a..7c7c4b71 100644 --- a/tools/dcpdiff.cc +++ b/tools/dcpdiff.cc @@ -32,10 +32,11 @@ */ +#include "common.h" #include "dcp.h" #include "equality_options.h" #include "exceptions.h" -#include "common.h" +#include "filesystem.h" #include "mxf.h" #include <getopt.h> #include <boost/optional.hpp> @@ -207,12 +208,12 @@ main (int argc, char* argv[]) exit (EXIT_FAILURE); } - if (!boost::filesystem::exists (argv[optind])) { + if (!filesystem::exists(argv[optind])) { cerr << argv[0] << ": DCP " << argv[optind] << " not found.\n"; exit (EXIT_FAILURE); } - if (!boost::filesystem::exists (argv[optind + 1])) { + if (!filesystem::exists(argv[optind + 1])) { cerr << argv[0] << ": DCP " << argv[optind + 1] << " not found.\n"; exit (EXIT_FAILURE); } diff --git a/tools/dcpinfo.cc b/tools/dcpinfo.cc index 6a37be1c..e812afe4 100644 --- a/tools/dcpinfo.cc +++ b/tools/dcpinfo.cc @@ -39,6 +39,7 @@ #include "decrypted_kdm.h" #include "encrypted_kdm.h" #include "exceptions.h" +#include "filesystem.h" #include "interop_subtitle_asset.h" #include "mono_picture_asset.h" #include "picture_asset.h" @@ -352,7 +353,7 @@ main (int argc, char* argv[]) exit (EXIT_FAILURE); } - if (!boost::filesystem::exists (argv[optind])) { + if (!filesystem::exists(argv[optind])) { cerr << argv[0] << ": DCP or CPL " << argv[optind] << " not found.\n"; exit (EXIT_FAILURE); } diff --git a/tools/dcprecover.cc b/tools/dcprecover.cc index 840a6711..b78846ff 100644 --- a/tools/dcprecover.cc +++ b/tools/dcprecover.cc @@ -36,6 +36,7 @@ #include "cpl.h" #include "dcp.h" #include "exceptions.h" +#include "filesystem.h" #include "reel_asset.h" #include "warnings.h" #include <getopt.h> @@ -124,7 +125,7 @@ main (int argc, char* argv[]) /* Look for a CPL */ shared_ptr<dcp::CPL> cpl; - for (auto i: boost::filesystem::directory_iterator(dcp_dir)) { + for (auto i: dcp::filesystem::directory_iterator(dcp_dir)) { if (i.path().extension() == ".xml") { try { cpl = make_shared<dcp::CPL>(i.path()); @@ -146,7 +147,7 @@ main (int argc, char* argv[]) /* Read all MXF assets */ vector<shared_ptr<dcp::Asset>> assets; - for (auto i: boost::filesystem::directory_iterator(dcp_dir)) { + for (auto i: dcp::filesystem::directory_iterator(dcp_dir)) { if (i.path().extension() == ".mxf") { try { auto asset = dcp::asset_factory(i.path(), true); diff --git a/tools/dcpverify.cc b/tools/dcpverify.cc index 770dd78f..875a92b7 100644 --- a/tools/dcpverify.cc +++ b/tools/dcpverify.cc @@ -34,6 +34,7 @@ #include "common.h" #include "compose.hpp" +#include "filesystem.h" #include "raw_convert.h" #include "verify.h" #include "version.h" @@ -133,7 +134,7 @@ main (int argc, char* argv[]) exit (EXIT_FAILURE); } - if (!boost::filesystem::exists (argv[optind])) { + if (!dcp::filesystem::exists(argv[optind])) { cerr << argv[0] << ": DCP " << argv[optind] << " not found.\n"; exit (EXIT_FAILURE); } |
