mirror of
https://github.com/moparisthebest/pacman
synced 2024-08-13 17:03:46 -04: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.
|
with descriptions matching ALL of those terms are returned.
|
||||||
|
|
||||||
*-t, \--unrequired*::
|
*-t, \--unrequired*::
|
||||||
Restrict or filter output to packages not required by any currently
|
Restrict or filter output to packages not required or optionally required by
|
||||||
installed package.
|
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*::
|
*-u, \--upgrades*::
|
||||||
Restrict or filter output to packages that are out-of-date on the local
|
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(_(" -p, --file <package> query a package file instead of the database\n"));
|
||||||
addlist(_(" -q, --quiet show less information for query and search\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(_(" -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"));
|
addlist(_(" -u, --upgrades list outdated packages [filter]\n"));
|
||||||
} else if(op == PM_OP_SYNC) {
|
} else if(op == PM_OP_SYNC) {
|
||||||
printf("%s: %s {-S --sync} [%s] [%s]\n", str_usg, myname, str_opt, str_pkg);
|
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 'p': config->op_q_isfile = 1; break;
|
||||||
case 'q': config->quiet = 1; break;
|
case 'q': config->quiet = 1; break;
|
||||||
case 's': config->op_q_search = 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;
|
case 'u': config->op_q_upgrade = 1; break;
|
||||||
default: return 1;
|
default: return 1;
|
||||||
}
|
}
|
||||||
|
@ -312,12 +312,17 @@ static unsigned short pkg_get_locality(alpm_pkg_t *pkg)
|
|||||||
return PKG_LOCALITY_FOREIGN;
|
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);
|
alpm_list_t *requiredby = alpm_pkg_compute_requiredby(pkg);
|
||||||
|
if(requiredby == NULL) {
|
||||||
|
if(level == 1) {
|
||||||
|
requiredby = alpm_pkg_compute_optionalfor(pkg);
|
||||||
|
}
|
||||||
if(requiredby == NULL) {
|
if(requiredby == NULL) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
FREELIST(requiredby);
|
FREELIST(requiredby);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -339,7 +344,7 @@ static int filter(alpm_pkg_t *pkg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* check if this pkg is unrequired */
|
/* 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;
|
return 0;
|
||||||
}
|
}
|
||||||
/* check if this pkg is outdated */
|
/* check if this pkg is outdated */
|
||||||
|
Loading…
Reference in New Issue
Block a user