mirror of
https://github.com/moparisthebest/pacman
synced 2024-12-21 23:38:49 -05:00
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>
This commit is contained in:
parent
d7d4f47d63
commit
00513823dc
@ -313,8 +313,10 @@ Query Options[[QO]]
|
||||
with descriptions matching ALL of those terms are returned.
|
||||
|
||||
*-t, \--unrequired*::
|
||||
Restrict or filter output to packages not required by any currently
|
||||
installed package.
|
||||
Restrict or filter output to packages not required or optionally required by
|
||||
any currently installed package. Specify this option twice to only filter
|
||||
packages that are direct dependencies (i.e. do not filter optional
|
||||
dependencies).
|
||||
|
||||
*-u, \--upgrades*::
|
||||
Restrict or filter output to packages that are out-of-date on the local
|
||||
|
@ -146,7 +146,8 @@ static void usage(int op, const char * const myname)
|
||||
addlist(_(" -p, --file <package> query a package file instead of the database\n"));
|
||||
addlist(_(" -q, --quiet show less information for query and search\n"));
|
||||
addlist(_(" -s, --search <regex> search locally-installed packages for matching strings\n"));
|
||||
addlist(_(" -t, --unrequired list packages not required by any package [filter]\n"));
|
||||
addlist(_(" -t, --unrequired list packages not (optionally) required by any\n"
|
||||
" package (-tt to ignore optdepends) [filter]\n"));
|
||||
addlist(_(" -u, --upgrades list outdated packages [filter]\n"));
|
||||
} else if(op == PM_OP_SYNC) {
|
||||
printf("%s: %s {-S --sync} [%s] [%s]\n", str_usg, myname, str_opt, str_pkg);
|
||||
@ -483,7 +484,7 @@ static int parsearg_query(int opt)
|
||||
case 'p': config->op_q_isfile = 1; break;
|
||||
case 'q': config->quiet = 1; break;
|
||||
case 's': config->op_q_search = 1; break;
|
||||
case 't': config->op_q_unrequired = 1; break;
|
||||
case 't': (config->op_q_unrequired)++; break;
|
||||
case 'u': config->op_q_upgrade = 1; break;
|
||||
default: return 1;
|
||||
}
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user