diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2021-03-11 13:51:53 +0100 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2021-03-11 13:51:53 +0100 |
commit | 0ed7e4178c462946774d62016338c9f623aeab2e (patch) | |
tree | 506367176b97abc62bb1063630833a6b6e6a0751 | |
parent | 17f87e4cdf35307683734f2a2be557a58be94b08 (diff) |
sq: Fix filtering certificates.
-rw-r--r-- | sq/src/commands/keyring.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sq/src/commands/keyring.rs b/sq/src/commands/keyring.rs index c1d8ff87..04ae90b9 100644 --- a/sq/src/commands/keyring.rs +++ b/sq/src/commands/keyring.rs @@ -77,11 +77,15 @@ pub fn dispatch(config: Config, m: &clap::ArgMatches) -> Result<()> { let key_predicate = |_key: &Key<_, _>| false; let filter_fn = |c: Cert| -> Option<Cert> { - if ! (c.userids().any(|c| uid_predicate(&c)) - || c.user_attributes().any(|c| ua_predicate(&c)) - || c.keys().subkeys().any(|c| key_predicate(&c))) { + if ! (any_uid_predicates + || any_ua_predicates + || any_key_predicates) { // If there are no filters, pass it through. Some(c) + } else if ! (c.userids().any(|c| uid_predicate(&c)) + || c.user_attributes().any(|c| ua_predicate(&c)) + || c.keys().subkeys().any(|c| key_predicate(&c))) { + None } else if m.is_present("prune-certs") { let c = c .retain_userids(|c| { |