From 1e99b5bf84197ae90e669791a6b28604db8139f3 Mon Sep 17 00:00:00 2001 From: Zheyu Shen Date: Tue, 7 Apr 2026 09:43:42 +0000 Subject: fix apt patterns parsing bug for pre-depends --- apt-pkg/cachefilter-patterns.cc | 6 ++++-- doc/apt-patterns.7.xml | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apt-pkg/cachefilter-patterns.cc b/apt-pkg/cachefilter-patterns.cc index e79e1afb5..73157765e 100644 --- a/apt-pkg/cachefilter-patterns.cc +++ b/apt-pkg/cachefilter-patterns.cc @@ -33,6 +33,7 @@ static const constexpr struct // FIXME: The words after ~D should be case-insensitive {"DDepends:"sv, "?depends"sv, true}, {"DPre-Depends:"sv, "?pre-depends"sv, true}, + {"DPreDepends:"sv, "?predepends"sv, true}, {"DSuggests:"sv, "?suggests"sv, true}, {"DRecommends:"sv, "?recommends"sv, true}, {"DConflicts:"sv, "?conflicts"sv, true}, @@ -43,6 +44,7 @@ static const constexpr struct {"D"sv, "?depends"sv, true}, {"RDepends:"sv, "?reverse-depends"sv, true}, {"RPre-Depends:"sv, "?reverse-pre-depends"sv, true}, + {"RPreDepends:"sv, "?reverse-predepends"sv, true}, {"RSuggests:"sv, "?reverse-suggests"sv, true}, {"RRecommends:"sv, "?reverse-recommends"sv, true}, {"RConflicts:"sv, "?reverse-conflicts"sv, true}, @@ -446,7 +448,7 @@ std::unique_ptr PatternParser::aPattern(std::unique_p return std::make_unique(); if (node->matches("?depends", 1, 1)) return std::make_unique(aPattern(node->arguments[0])); - if (node->matches("?predepends", 1, 1)) + if (node->matches("?pre-depends", 1, 1) || node->matches("?predepends", 1, 1)) return std::make_unique(aPattern(node->arguments[0]), pkgCache::Dep::PreDepends); if (node->matches("?suggests", 1, 1)) return std::make_unique(aPattern(node->arguments[0]), pkgCache::Dep::Suggests); @@ -464,7 +466,7 @@ std::unique_ptr PatternParser::aPattern(std::unique_p return std::make_unique(aPattern(node->arguments[0]), pkgCache::Dep::Enhances); if (node->matches("?reverse-depends", 1, 1)) return std::make_unique(aPattern(node->arguments[0])); - if (node->matches("?reverse-predepends", 1, 1)) + if (node->matches("?reverse-pre-depends", 1, 1) || node->matches("?reverse-predepends", 1, 1)) return std::make_unique(aPattern(node->arguments[0]), pkgCache::Dep::PreDepends); if (node->matches("?reverse-suggests", 1, 1)) return std::make_unique(aPattern(node->arguments[0]), pkgCache::Dep::Suggests); diff --git a/doc/apt-patterns.7.xml b/doc/apt-patterns.7.xml index 40a8dd2fb..7f7ad3db0 100644 --- a/doc/apt-patterns.7.xml +++ b/doc/apt-patterns.7.xml @@ -173,7 +173,7 @@ ?depends(PATTERN)~DPATTERN - ?pre-depends(PATTERN)~DPre-Depends:PATTERN + ?predepends(PATTERN)~DPreDepends:PATTERN ?suggests(PATTERN)~DSuggests:PATTERN ?recommends(PATTERN)~DRecommends:PATTERN ?conflicts(PATTERN)~DConflicts:PATTERN -- cgit v1.2.3-70-g09d2