From 96f795bce665a1907b885bd2d57d6ab22b0a4199 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Tue, 26 Nov 2019 11:56:28 +0100 Subject: patterns: Add ?all-versions --- apt-pkg/cachefilter-patterns.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'apt-pkg/cachefilter-patterns.h') diff --git a/apt-pkg/cachefilter-patterns.h b/apt-pkg/cachefilter-patterns.h index 26b42d04b..8c5561c82 100644 --- a/apt-pkg/cachefilter-patterns.h +++ b/apt-pkg/cachefilter-patterns.h @@ -260,6 +260,25 @@ struct VersionAnyMatcher : public Matcher } }; +struct VersionIsAllVersions : public Matcher +{ + std::unique_ptr base; + VersionIsAllVersions(std::unique_ptr base) : base(std::move(base)) {} + bool operator()(pkgCache::GrpIterator const &) override { return false; } + bool operator()(pkgCache::VerIterator const &Ver) override + { + return (*base)(Ver); + } + bool operator()(pkgCache::PkgIterator const &Pkg) override + { + for (auto Ver = Pkg.VersionList(); not Ver.end(); Ver++) + { + if (not(*this)(Ver)) + return false; + } + return true; + } +}; struct VersionIsAnyVersion : public VersionAnyMatcher { -- cgit v1.2.3-70-g09d2