diff -r e223879aa02a -r d7e9a1200e21 src/repositories.cpp --- a/src/repositories.cpp Wed Feb 19 18:32:17 2025 +0100 +++ b/src/repositories.cpp Wed Feb 19 18:53:18 2025 +0100 @@ -30,15 +30,21 @@ using namespace fm; namespace fs = std::filesystem; +repository::repository(repository_type type, std::string path) noexcept + : path(std::move(path)), + name(fs::path(this->path).filename()), + type(type) { +} + void repositories::scan(std::string path, unsigned depth) { // check the base path { auto p = fs::path{path}; if (is_directory(p / ".hg")) { - m_repositories.emplace_back(repository{canonical(p), HG}); + m_repositories.emplace_back(HG, canonical(p)); return; } else if (is_directory(p / ".git")) { - m_repositories.emplace_back(repository{canonical(p), GIT}); + m_repositories.emplace_back(GIT, canonical(p)); return; } else if (depth == 0) { return; @@ -54,10 +60,10 @@ if (!i->is_directory()) continue; auto p = i->path(); if (is_directory(p / ".hg")) { - m_repositories.emplace_back(repository{canonical(p), HG}); + m_repositories.emplace_back(HG, canonical(p)); i.disable_recursion_pending(); } else if (is_directory(p / ".git")) { - m_repositories.emplace_back(repository{canonical(p), GIT}); + m_repositories.emplace_back(GIT, canonical(p)); i.disable_recursion_pending(); } else if (i.depth() == depth) { i.disable_recursion_pending();