From e4b2ebd80779a44d24fe87af26ef278c1e2d97d2 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 6 Oct 2023 02:04:49 +0200 Subject: 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. --- tools/dcprecover.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'tools/dcprecover.cc') 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 @@ -124,7 +125,7 @@ main (int argc, char* argv[]) /* Look for a CPL */ shared_ptr 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(i.path()); @@ -146,7 +147,7 @@ main (int argc, char* argv[]) /* Read all MXF assets */ vector> 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); -- cgit v1.2.3