From f3fe362c93efff124c4ef0a005cdcd1cd635f8f5 Mon Sep 17 00:00:00 2001 From: t895 Date: Sun, 19 Nov 2023 12:24:43 -0500 Subject: frontend_common: Add special config case for unmapped windows network drives Normally we save paths with '/' as the delimiter for each segment but when you manually select a network drive instead of using a mapped location, this would break. This ensures that if the read filesystem location starts with '//', we keep that pattern. --- src/frontend_common/config.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/frontend_common/config.cpp b/src/frontend_common/config.cpp index 8eb62e8ef..b3f4a54a4 100644 --- a/src/frontend_common/config.cpp +++ b/src/frontend_common/config.cpp @@ -856,7 +856,15 @@ std::string Config::AdjustKey(const std::string& key) { std::string Config::AdjustOutputString(const std::string& string) { std::string adjusted_string(string); boost::replace_all(adjusted_string, "\\", "/"); - boost::replace_all(adjusted_string, "//", "/"); + + // Windows requires that two forward slashes are used at the start of a path for unmapped + // network drives so we have to watch for that here + if (string.substr(0, 2) == "//") { + boost::replace_all(adjusted_string, "//", "/"); + adjusted_string.insert(0, "/"); + } else { + boost::replace_all(adjusted_string, "//", "/"); + } // Needed for backwards compatibility with QSettings deserialization for (const auto& special_character : special_characters) { -- cgit v1.2.3