diff --git a/OpenRA.Game/Platform.cs b/OpenRA.Game/Platform.cs index d7e03389af..fb1c175095 100644 --- a/OpenRA.Game/Platform.cs +++ b/OpenRA.Game/Platform.cs @@ -39,8 +39,8 @@ namespace OpenRA var kernelName = p.StandardOutput.ReadToEnd(); if (kernelName.Contains("Darwin")) return PlatformType.OSX; - else - return PlatformType.Linux; + + return PlatformType.Linux; } catch { } @@ -82,7 +82,6 @@ namespace OpenRA case PlatformType.OSX: dir += "/Library/Application Support/OpenRA"; break; - case PlatformType.Linux: default: dir += "/.openra"; break; @@ -101,12 +100,15 @@ namespace OpenRA { path = path.TrimEnd(new char[] { ' ', '\t' }); - // paths starting with ^ are relative to the support dir - if (path.StartsWith("^")) + // Paths starting with ^ are relative to the support dir + if (path.StartsWith("^", StringComparison.Ordinal)) path = SupportDir + path.Substring(1); - // paths starting with . are relative to the game dir - if (path.StartsWith("./") || path.StartsWith(".\\")) + // Paths starting with . are relative to the game dir + if (path == ".") + return GameDir; + + if (path.StartsWith("./", StringComparison.Ordinal) || path.StartsWith(".\\", StringComparison.Ordinal)) path = GameDir + path.Substring(2); return path; @@ -121,10 +123,10 @@ namespace OpenRA /// Replace the full path prefix with the special notation characters ^ or . public static string UnresolvePath(string path) { - if (path.StartsWith(SupportDir)) + if (path.StartsWith(SupportDir, StringComparison.Ordinal)) path = "^" + path.Substring(SupportDir.Length); - if (path.StartsWith(GameDir)) + if (path.StartsWith(GameDir, StringComparison.Ordinal)) path = "./" + path.Substring(GameDir.Length); return path;