private static IEnumerable<string>/*!*/ GetAbsolutePaths(PlatformAdaptationLayer/*!*/ pal, string/*!*/ path) {
if (pal.IsAbsolutePath(path)) {
yield return path;
} else {
yield return pal.GetFullPath(path);
string var = pal.GetEnvironmentVariable("PATH");
if (!String.IsNullOrEmpty(var)) {
foreach (var prefix in var.Split(Path.PathSeparator)) {
if (prefix.Length > 0) {
yield return Path.Combine(prefix, path);
}
}
}
var = Environment.GetFolderPath(Environment.SpecialFolder.System);
if (!String.IsNullOrEmpty(var)) {
yield return Path.Combine(var, path);
}
var = pal.GetEnvironmentVariable("SystemRoot");
if (!String.IsNullOrEmpty(var)) {
yield return Path.Combine(var, path);
}
}
}