Skip to content

Commit fed130b

Browse files
Filter common parent for PATH and custom sources
1 parent e69926e commit fed130b

File tree

1 file changed

+5
-3
lines changed
  • Plugins/Flow.Launcher.Plugin.Program/Programs

1 file changed

+5
-3
lines changed

Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ private static IEnumerable<Win32> StartMenuPrograms(string[] suffixes, string[]
414414
return programs;
415415
}
416416

417-
private static IEnumerable<Win32> PATHPrograms(string[] suffixes, string[] protocols)
417+
private static IEnumerable<Win32> PATHPrograms(string[] suffixes, string[] protocols, List<string> commonParents)
418418
{
419419
var pathEnv = Environment.GetEnvironmentVariable("Path");
420420
if (String.IsNullOrEmpty(pathEnv))
@@ -424,6 +424,8 @@ private static IEnumerable<Win32> PATHPrograms(string[] suffixes, string[] proto
424424

425425
var paths = pathEnv.Split(";", StringSplitOptions.RemoveEmptyEntries).DistinctBy(p => p.ToLowerInvariant());
426426

427+
paths = paths.Where(x => commonParents.All(parent => !x.StartsWith(parent, StringComparison.OrdinalIgnoreCase)));
428+
427429
var toFilter = paths.AsParallel().SelectMany(p => EnmuerateProgramsInDir(p, suffixes, recursive: false));
428430

429431
var programs = ExceptDisabledSource(toFilter.Distinct())
@@ -592,8 +594,8 @@ public static Win32[] All(Settings settings)
592594

593595
if (settings.EnablePATHSource)
594596
{
595-
var path = PATHPrograms(settings.GetSuffixes(), protocols);
596-
autoIndexPrograms = autoIndexPrograms.Concat(path);
597+
var path = PATHPrograms(settings.GetSuffixes(), protocols, commonParents);
598+
programs = programs.Concat(path);
597599
}
598600

599601
autoIndexPrograms = ProgramsHasher(autoIndexPrograms).ToArray();

0 commit comments

Comments
 (0)