summaryrefslogtreecommitdiffstats
path: root/src/pacman/query.c
diff options
context:
space:
mode:
authorOlivier Brunel <i.am.jack.mail@gmail.com>2013-06-17 10:46:38 +0200
committerAllan McRae <allan@archlinux.org>2013-06-26 07:32:15 +0200
commit00513823dc9e15c4de12c02f8faa4dd72ca4ee4e (patch)
tree16b537418c0250a3cd84a6c06f97e0bb2491f4b2 /src/pacman/query.c
parentd7d4f47d63e88a0b79eb2f77d83df218dfa359a0 (diff)
downloadpacman-00513823dc9e15c4de12c02f8faa4dd72ca4ee4e.tar.gz
pacman-00513823dc9e15c4de12c02f8faa4dd72ca4ee4e.tar.xz
Make --unrequired filter packages that are optdep as well
Specify it twice to only filter direct dependencies. Signed-off-by: Olivier Brunel <i.am.jack.mail@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'src/pacman/query.c')
-rw-r--r--src/pacman/query.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/pacman/query.c b/src/pacman/query.c
index f5862a2d..e88b393b 100644
--- a/src/pacman/query.c
+++ b/src/pacman/query.c
@@ -312,11 +312,16 @@ static unsigned short pkg_get_locality(alpm_pkg_t *pkg)
return PKG_LOCALITY_FOREIGN;
}
-static int is_unrequired(alpm_pkg_t *pkg)
+static int is_unrequired(alpm_pkg_t *pkg, unsigned short level)
{
alpm_list_t *requiredby = alpm_pkg_compute_requiredby(pkg);
if(requiredby == NULL) {
- return 1;
+ if(level == 1) {
+ requiredby = alpm_pkg_compute_optionalfor(pkg);
+ }
+ if(requiredby == NULL) {
+ return 1;
+ }
}
FREELIST(requiredby);
return 0;
@@ -339,7 +344,7 @@ static int filter(alpm_pkg_t *pkg)
return 0;
}
/* check if this pkg is unrequired */
- if(config->op_q_unrequired && !is_unrequired(pkg)) {
+ if(config->op_q_unrequired && !is_unrequired(pkg, config->op_q_unrequired)) {
return 0;
}
/* check if this pkg is outdated */