Jelajahi Sumber

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.
t895 2 tahun lalu
induk
melakukan
f3fe362c93
1 mengubah file dengan 9 tambahan dan 1 penghapusan
  1. 9 1
      src/frontend_common/config.cpp

+ 9 - 1
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) {