From ac3ef9dbc76a98fd4f0b05b2a392ad9781d357e2 Mon Sep 17 00:00:00 2001 From: Ioannis G Date: Tue, 25 Aug 2020 00:20:39 +0300 Subject: [PATCH 1/3] plugin/explorer: ensure env var paths are absolute --- .../Search/EnvironmentVariables.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs index c576d6ee845..e4287a5befc 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs @@ -22,11 +22,18 @@ internal static Dictionary LoadEnvironmentStringPaths() foreach (DictionaryEntry special in Environment.GetEnvironmentVariables()) { - if (Directory.Exists(special.Value.ToString())) + var path = special.Value.ToString(); + if (Directory.Exists(path)) { + // we add a trailing slash to the path to make sure drive paths become valid absolute paths. + // for example, if %systemdrive% is C: we turn it to C:\ + path = path.TrimEnd(Path.DirectorySeparatorChar) + Path.DirectorySeparatorChar; + // if we don't have an absolute path, we use Path.GetFullPath to get one. + // for example, if %homepath% is \Users\John we turn it to C:\Users\John + path = Path.IsPathFullyQualified(path) ? path : Path.GetFullPath(path); // Variables are returned with a mixture of all upper/lower case. // Call ToLower() to make the results look consistent - envStringPaths.Add(special.Key.ToString().ToLower(), special.Value.ToString()); + envStringPaths.Add(special.Key.ToString().ToLower(), path); } } From e3df795a2655611cd81152a64f6e1be35a1af428 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Tue, 25 Aug 2020 14:57:38 +1000 Subject: [PATCH 2/3] version bump Explorer --- Plugins/Flow.Launcher.Plugin.Explorer/plugin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json b/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json index 6e4074c4021..67d2e731c43 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json +++ b/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json @@ -7,7 +7,7 @@ "Name": "Explorer", "Description": "Search and manage files and folders. Explorer utilises Windows Index Search", "Author": "Jeremy Wu", - "Version": "1.2.1", + "Version": "1.2.2", "Language": "csharp", "Website": "https://github.com/Flow-Launcher/Flow.Launcher", "ExecuteFileName": "Flow.Launcher.Plugin.Explorer.dll", From 17f94a1bd2e7bea50aab8cd7ba5b613933cbf9e4 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Tue, 25 Aug 2020 15:00:17 +1000 Subject: [PATCH 3/3] add spacing between comment and code for readability --- .../Search/EnvironmentVariables.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs index e4287a5befc..6a870f1496f 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs @@ -28,9 +28,11 @@ internal static Dictionary LoadEnvironmentStringPaths() // we add a trailing slash to the path to make sure drive paths become valid absolute paths. // for example, if %systemdrive% is C: we turn it to C:\ path = path.TrimEnd(Path.DirectorySeparatorChar) + Path.DirectorySeparatorChar; + // if we don't have an absolute path, we use Path.GetFullPath to get one. // for example, if %homepath% is \Users\John we turn it to C:\Users\John path = Path.IsPathFullyQualified(path) ? path : Path.GetFullPath(path); + // Variables are returned with a mixture of all upper/lower case. // Call ToLower() to make the results look consistent envStringPaths.Add(special.Key.ToString().ToLower(), path);