Skip to content

Commit

Permalink
Skip any files in hidden dirs (starting with dot '.').
Browse files Browse the repository at this point in the history
  • Loading branch information
egorpugin committed Feb 7, 2024
1 parent d21620b commit 2d86bdd
Showing 1 changed file with 25 additions and 8 deletions.
33 changes: 25 additions & 8 deletions src/sw/driver/source_file.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,28 +59,45 @@ static Files enumerate_files1(const path &dir, bool recursive = true)
continue;
if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (recursive)
if (recursive && ffd.cFileName[0] != '.')
{
auto f2 = enumerate_files1(dir / ffd.cFileName, recursive);
files.insert(f2.begin(), f2.end());
}
}
else
files.insert(dir / ffd.cFileName);
{
if (ffd.cFileName[0] != '.')
{
files.insert(dir / ffd.cFileName);
}
}
} while (FindNextFile(find_handle, &ffd));
FindClose(find_handle);
return files;
}
#else
static Files enumerate_files1(const path &dir, bool recursive = true)
{
Files files;
if (!fs::exists(dir))
return files;
for (auto &f : fs::directory_iterator(dir)) {
if (fs::is_regular_file(f)) {
if (f.path().native()[0] != '.') {
files.insert(f);
}
} else if (recursive && fs::is_directory(f) && f.path().native()[0] != '.') {
files.merge(enumerate_files1(f, recursive));
}
}
return files;
}
#endif

static Files enumerate_files_fast(const path &dir, bool recursive = true)
{
return
#ifdef _WIN32
enumerate_files1(dir, recursive);
#else
enumerate_files(dir, recursive);
#endif
return enumerate_files1(dir, recursive);
}

SourceFileStorage::SourceFileStorage(Target &t)
Expand Down

0 comments on commit 2d86bdd

Please sign in to comment.