Browse Source

Fix parsing of C# files with spaces in the path

(cherry picked from commit 9e8a5e4b5a23b75ea7e3991371fb398af6d823de)
Ignacio Etcheverry 5 năm trước cách đây
mục cha
commit
9699e83e1e

+ 4 - 3
modules/mono/editor/GodotTools/GodotTools.Core/StringExtensions.cs

@@ -14,10 +14,11 @@ namespace GodotTools.Core
             if (Path.DirectorySeparatorChar == '\\')
             if (Path.DirectorySeparatorChar == '\\')
                 dir = dir.Replace("/", "\\") + "\\";
                 dir = dir.Replace("/", "\\") + "\\";
 
 
-            Uri fullPath = new Uri(Path.GetFullPath(path), UriKind.Absolute);
-            Uri relRoot = new Uri(Path.GetFullPath(dir), UriKind.Absolute);
+            var fullPath = new Uri(Path.GetFullPath(path), UriKind.Absolute);
+            var relRoot = new Uri(Path.GetFullPath(dir), UriKind.Absolute);
 
 
-            return relRoot.MakeRelativeUri(fullPath).ToString();
+            // MakeRelativeUri converts spaces to %20, hence why we need UnescapeDataString
+            return Uri.UnescapeDataString(relRoot.MakeRelativeUri(fullPath).ToString());
         }
         }
 
 
         public static string NormalizePath(this string path)
         public static string NormalizePath(this string path)