From 3b3802faf70f32c251b2dc67ed9372846c8e051c Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Thu, 6 Feb 2025 21:13:57 -0700 Subject: [PATCH] common: use non-throwing std::filesystem::equivalent() --- common/bspfile.cc | 4 +++- common/fs.cc | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/common/bspfile.cc b/common/bspfile.cc index 2c65c27f..be33cc95 100644 --- a/common/bspfile.cc +++ b/common/bspfile.cc @@ -28,6 +28,7 @@ #include #include +#include #include @@ -1532,9 +1533,10 @@ public: } } + std::error_code ec; if (!exists(basedir)) { logging::print("WARNING: failed to find basedir '{}'\n", basedir); - } else if (!equivalent(gamedir, basedir)) { + } else if (!equivalent(gamedir, basedir, ec)) { addArchive(basedir); logging::print("using basedir: '{}'\n", basedir); } diff --git a/common/fs.cc b/common/fs.cc index 169cc7dd..95627306 100644 --- a/common/fs.cc +++ b/common/fs.cc @@ -27,6 +27,7 @@ #include #include #include +#include #include namespace fs @@ -246,7 +247,8 @@ inline std::shared_ptr addArchiveInternal(const path &p, bool exte { if (is_directory(p)) { for (auto &dir : directories) { - if (equivalent(dir->pathname, p)) { + std::error_code ec; + if (equivalent(dir->pathname, p, ec)) { return dir; } } @@ -256,7 +258,8 @@ inline std::shared_ptr addArchiveInternal(const path &p, bool exte return arch; } else { for (auto &arch : archives) { - if (equivalent(arch->pathname, p)) { + std::error_code ec; + if (equivalent(arch->pathname, p, ec)) { return arch; } }