Skip to content

Commit

Permalink
Ignore paths with invalid chars in PathWhich
Browse files Browse the repository at this point in the history
(cherry picked from commit d636ebb)
  • Loading branch information
raulsntos authored and akien-mga committed Jul 27, 2021
1 parent 2d60a64 commit 9fd201c
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions modules/mono/editor/GodotTools/GodotTools/Utils/OS.cs
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,20 @@ private static string PathWhichWindows([NotNull] string name)
{
string[] windowsExts = Environment.GetEnvironmentVariable("PATHEXT")?.Split(PathSep) ?? Array.Empty<string>();
string[] pathDirs = Environment.GetEnvironmentVariable("PATH")?.Split(PathSep);
char[] invalidPathChars = Path.GetInvalidPathChars();

var searchDirs = new List<string>();

if (pathDirs != null)
searchDirs.AddRange(pathDirs);
{
foreach (var pathDir in pathDirs)
{
if (pathDir.IndexOfAny(invalidPathChars) != -1)
continue;

searchDirs.Add(pathDir);
}
}

string nameExt = Path.GetExtension(name);
bool hasPathExt = !string.IsNullOrEmpty(nameExt) && windowsExts.Contains(nameExt, StringComparer.OrdinalIgnoreCase);
Expand All @@ -127,11 +136,20 @@ from ext in windowsExts
private static string PathWhichUnix([NotNull] string name)
{
string[] pathDirs = Environment.GetEnvironmentVariable("PATH")?.Split(PathSep);
char[] invalidPathChars = Path.GetInvalidPathChars();

var searchDirs = new List<string>();

if (pathDirs != null)
searchDirs.AddRange(pathDirs);
{
foreach (var pathDir in pathDirs)
{
if (pathDir.IndexOfAny(invalidPathChars) != -1)
continue;

searchDirs.Add(pathDir);
}
}

searchDirs.Add(System.IO.Directory.GetCurrentDirectory()); // last in the list

Expand Down

0 comments on commit 9fd201c

Please sign in to comment.