public List<string> GetPotentialIncludeFiles(IEnumerable<string> incdirs, IEnumerable<string> incfiles)
{
List<string> possibles = new List<string>();
List<string> includelines = new List<string>();
var fullSrc = Path.GetFullPath(SingleSourceFile);
foreach (var d in incdirs)
{
foreach (var f in (from x in incfiles where x.StartsWith(d, StringComparison.CurrentCultureIgnoreCase) select x))
{
if (f != fullSrc)
{
var incpath = f.Substring(d.Length);
includelines.Add(incpath.TrimStart('\\'));
}
}
}
HashSet<string> tmp = new HashSet<string>(includelines);
foreach (var y in tmp)
{
foreach (var x in incdirs)
{
var p = Path.Combine(x, y);
if (FileUtils.FileMissing(p))
{
possibles.Add(p);
}
else
{
break;
}
}
}
return possibles;
}