summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZheyu Shen <zheyushen@microsoft.com>2026-04-07 09:43:42 +0000
committerJulian Andres Klode <jak@debian.org>2026-04-07 09:43:42 +0000
commit1e99b5bf84197ae90e669791a6b28604db8139f3 (patch)
tree975fce7efc9e04c5213206977aa81310751f73a0
parent2757f593507ced8145fc75d986721dff6d45daa5 (diff)
fix apt patterns parsing bug for pre-depends
-rw-r--r--apt-pkg/cachefilter-patterns.cc6
-rw-r--r--doc/apt-patterns.7.xml2
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<APT::CacheFilter::Matcher> PatternParser::aPattern(std::unique_p
return std::make_unique<Patterns::PackageIsConfigFiles>();
if (node->matches("?depends", 1, 1))
return std::make_unique<Patterns::VersionDepends>(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<Patterns::VersionDepends>(aPattern(node->arguments[0]), pkgCache::Dep::PreDepends);
if (node->matches("?suggests", 1, 1))
return std::make_unique<Patterns::VersionDepends>(aPattern(node->arguments[0]), pkgCache::Dep::Suggests);
@@ -464,7 +466,7 @@ std::unique_ptr<APT::CacheFilter::Matcher> PatternParser::aPattern(std::unique_p
return std::make_unique<Patterns::VersionDepends>(aPattern(node->arguments[0]), pkgCache::Dep::Enhances);
if (node->matches("?reverse-depends", 1, 1))
return std::make_unique<Patterns::PackageReverseDepends>(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<Patterns::PackageReverseDepends>(aPattern(node->arguments[0]), pkgCache::Dep::PreDepends);
if (node->matches("?reverse-suggests", 1, 1))
return std::make_unique<Patterns::PackageReverseDepends>(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 @@
<variablelist>
<varlistentry>
<term><code>?depends(PATTERN)</code></term><term><code>~DPATTERN</code></term>
- <term><code>?pre-depends(PATTERN)</code></term><term><code>~DPre-Depends:PATTERN</code></term>
+ <term><code>?predepends(PATTERN)</code></term><term><code>~DPreDepends:PATTERN</code></term>
<term><code>?suggests(PATTERN)</code></term><term><code>~DSuggests:PATTERN</code></term>
<term><code>?recommends(PATTERN)</code></term><term><code>~DRecommends:PATTERN</code></term>
<term><code>?conflicts(PATTERN)</code></term><term><code>~DConflicts:PATTERN</code></term>