diff options
author | t895 <clombardo169@gmail.com> | 2023-11-19 12:24:43 -0500 |
---|---|---|
committer | t895 <clombardo169@gmail.com> | 2023-11-21 01:58:13 -0500 |
commit | f3fe362c93efff124c4ef0a005cdcd1cd635f8f5 (patch) | |
tree | 15f8bc2c39e262ced734497b54d349b5efaf60cb /src/frontend_common | |
parent | eedecaef96637a783c8eeb8d625838f3bc2a121a (diff) |
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.
Diffstat (limited to 'src/frontend_common')
-rw-r--r-- | src/frontend_common/config.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
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) { |