diff --git a/src/Linker/Linker.cpp b/src/Linker/Linker.cpp index 755e2b8ea..e042f2886 100644 --- a/src/Linker/Linker.cpp +++ b/src/Linker/Linker.cpp @@ -543,7 +543,10 @@ class LinkerImpl final : public Linker return false; } - auto absoluteZoneDirectory = absolute(std::filesystem::path(zonePath).remove_filename()).string(); + auto zoneDirectory = fs::path(zonePath).remove_filename(); + if (zoneDirectory.empty()) + zoneDirectory = fs::current_path(); + auto absoluteZoneDirectory = absolute(zoneDirectory).string(); auto zone = std::unique_ptr(ZoneLoading::LoadZone(zonePath)); if (zone == nullptr) diff --git a/src/Unlinker/Unlinker.cpp b/src/Unlinker/Unlinker.cpp index f26cc12de..7d4b507ab 100644 --- a/src/Unlinker/Unlinker.cpp +++ b/src/Unlinker/Unlinker.cpp @@ -381,7 +381,10 @@ class Unlinker::Impl continue; } - auto absoluteZoneDirectory = absolute(std::filesystem::path(zonePath).remove_filename()).string(); + auto zoneDirectory = fs::path(zonePath).remove_filename(); + if (zoneDirectory.empty()) + zoneDirectory = fs::current_path(); + auto absoluteZoneDirectory = absolute(zoneDirectory).string(); auto searchPathsForZone = GetSearchPathsForZone(absoluteZoneDirectory); searchPathsForZone.IncludeSearchPath(&m_search_paths);