summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/acquire.cc24
-rw-r--r--apt-pkg/acquire.h17
2 files changed, 12 insertions, 29 deletions
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc
index 727880e71..1cb55bf14 100644
--- a/apt-pkg/acquire.cc
+++ b/apt-pkg/acquire.cc
@@ -826,11 +826,11 @@ pkgAcquire::Worker *pkgAcquire::WorkerStep(Worker *I)
return I->NextAcquire;
}
/*}}}*/
-// Acquire::CleanDir - Cleans a directory /*{{{*/
+// CleanDir - Cleans a directory /*{{{*/
// ---------------------------------------------------------------------
/* This is a bit simplistic, it looks at every file in the dir and sees
if it matches the predicate or not. */
-bool pkgAcquire::CleanDir(string Dir, std::function<bool(char const*)> const &Keep, char const * const Caller)
+static bool CleanDir(std::string const &Dir, std::function<bool(std::string_view)> const &Keep, char const * const Caller)
{
// non-existing directories are by definition clean…
if (DirectoryExists(Dir) == false)
@@ -855,7 +855,7 @@ bool pkgAcquire::CleanDir(string Dir, std::function<bool(char const*)> const &Ke
strcmp(E->d_name, "lost+found") == 0 ||
strcmp(E->d_name, ".") == 0 ||
strcmp(E->d_name, "..") == 0 ||
- Keep(E->d_name) == true)
+ Keep(E->d_name))
continue;
RemoveFileAt(Caller, dirfd, E->d_name);
}
@@ -867,12 +867,12 @@ bool pkgAcquire::CleanDir(string Dir, std::function<bool(char const*)> const &Ke
// ---------------------------------------------------------------------
/* This is a bit simplistic, it looks at every file in the dir and sees
if it is part of the download set. */
-bool pkgAcquire::Clean(string Dir)
+bool pkgAcquire::Clean(std::string Dir)
{
return CleanDir(
Dir,
// Look in the get list and if found then keep
- [this](char const *FName) {
+ [this](std::string_view const FName) {
return std::any_of(Items.cbegin(), Items.cend(),
[FName](pkgAcquire::Item const * const I) {
return flNotDir(I->DestFile) == FName;
@@ -882,21 +882,19 @@ bool pkgAcquire::Clean(string Dir)
);
}
/*}}}*/
-// Acquire::CleanLists - Cleans a directory of list files /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-bool pkgAcquire::CleanLists(string Dir)
+// Acquire::CleanLists - Cleans a directory of list files /*{{{*/
+bool pkgAcquire::CleanLists(std::string const &Dir)
{
+ std::regex const KeepPattern(".*_(Release|Release\\.gpg|InRelease)");
return CleanDir(
Dir,
- [](char const *FName) noexcept {
- static const std::regex KeepPattern(".*_(Release|Release.gpg|InRelease)");
- return std::regex_match(FName, KeepPattern);
+ [&KeepPattern](std::string_view const FName) noexcept {
+ return std::regex_match(FName.begin(), FName.end(), KeepPattern);
},
"pkgAcquire::CleanLists"
);
}
- /*}}}*/
+ /*}}}*/
// Acquire::TotalNeeded - Number of bytes to fetch /*{{{*/
// ---------------------------------------------------------------------
/* This is the total number of bytes needed */
diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h
index a5f7a40c8..f7c40aa5f 100644
--- a/apt-pkg/acquire.h
+++ b/apt-pkg/acquire.h
@@ -70,7 +70,6 @@
#include <apt-pkg/weakptr.h>
#include <chrono>
-#include <functional>
#include <string>
#include <vector>
@@ -338,7 +337,7 @@ class APT_PUBLIC pkgAcquire
*
* \return \b true if the directory exists and is readable.
*/
- bool CleanLists(std::string Dir);
+ bool CleanLists(std::string const &Dir);
/** \return the total size in bytes of all the items included in
* this download.
@@ -381,20 +380,6 @@ class APT_PUBLIC pkgAcquire
private:
APT_HIDDEN void Initialize();
-
- /** Delete each entry in the given directory whose name does \em not match
- * a criterion.
- *
- * \param Dir The directory to be cleaned.
- *
- * \param KeepP A predicate telling to keep the named file; if it is
- * non-empty and returns true, the file is kept.
- *
- * \param Caller Log name of the caller.
- *
- * \return \b true if the directory exists and is readable.
- */
- APT_HIDDEN static bool CleanDir(std::string Dir, std::function<bool(char const*)> const &KeepP, char const * const Caller);
};
/** \brief Represents a single download source from which an item