From 6829c5420b4c2e434489e837cad6f3fd09fa3ab3 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 28 Apr 2017 18:18:28 +0200 Subject: clean archives without changing directory Adopting this change in other frontends will require source changes as well similar to our own changes in apt-private/. --- apt-pkg/clean.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'apt-pkg/clean.h') diff --git a/apt-pkg/clean.h b/apt-pkg/clean.h index 6cedae086..2ba3932a0 100644 --- a/apt-pkg/clean.h +++ b/apt-pkg/clean.h @@ -16,6 +16,8 @@ #include +#include + class pkgCache; class pkgArchiveCleaner @@ -25,7 +27,7 @@ class pkgArchiveCleaner protected: - virtual void Erase(const char * /*File*/,std::string /*Pkg*/,std::string /*Ver*/,struct stat & /*St*/) {}; + APT_DEPRECATED_MSG("Use pkgArchiveCleaner2 to avoid CWD expectations and chdir") virtual void Erase(const char * /*File*/,std::string /*Pkg*/,std::string /*Ver*/,struct stat & /*St*/) {}; public: @@ -34,5 +36,15 @@ class pkgArchiveCleaner pkgArchiveCleaner(); virtual ~pkgArchiveCleaner(); }; +// TODO: merge classes and "erase" the old way +class pkgArchiveCleaner2: public pkgArchiveCleaner +{ + friend class pkgArchiveCleaner; +protected: + using pkgArchiveCleaner::Erase; + virtual void Erase(int const dirfd, char const * const File, + std::string const &Pkg,std::string const &Ver, + struct stat const &St) = 0; +}; #endif -- cgit v1.2.3