From 439fa4c4a14df028a415cfb3195bf67f8f2c3d58 Mon Sep 17 00:00:00 2001 From: Automatic Release Builder Date: Tue, 6 Oct 2020 23:28:08 +0100 Subject: [PATCH] TerraSync: fix Windows behaviour SGDir on Windows returns dot-files by default, which includes our hash-cache, causing it to be orphaned. --- simgear/io/HTTPRepository.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/simgear/io/HTTPRepository.cxx b/simgear/io/HTTPRepository.cxx index 3354397c..0b3781a9 100644 --- a/simgear/io/HTTPRepository.cxx +++ b/simgear/io/HTTPRepository.cxx @@ -314,7 +314,15 @@ public: simgear::Dir d(absolutePath()); PathList fsChildren = d.children(0); - PathList orphans = d.children(0); + PathList orphans = fsChildren; + + // on Windows, children() will return our .hashes and .dirIndex + // entries; skip them. + orphans.erase(std::remove_if(orphans.begin(), orphans.end(), + [](const SGPath &p) { + return p.file().front() == '.'; + }), + orphans.end()); for (const auto &c : children) { // Check if the file exists