diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index fe70ea10..58e85b22 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -386,7 +386,7 @@ static int parseargs(int argc, char *argv[]) break; case 'd': config->flags |= PM_TRANS_FLAG_NODEPS; break; case 'e': - config->op_q_orphans = 1; + config->op_q_orphans++; config->flags |= PM_TRANS_FLAG_DEPENDSONLY; break; case 'f': config->flags |= PM_TRANS_FLAG_FORCE; break; diff --git a/src/pacman/query.c b/src/pacman/query.c index 06d111b0..4abb674d 100644 --- a/src/pacman/query.c +++ b/src/pacman/query.c @@ -51,7 +51,7 @@ static char *resolve_path(const char* file) return(NULL); } - if(!realpath(copy, str)) { + if(!realpath(file, str)) { return(NULL); } @@ -289,7 +289,8 @@ int pacman_query(alpm_list_t *targets) dump_pkg_files(info); } else if(config->op_q_orphans) { if(alpm_pkg_get_requiredby(info) == NULL - && (long)alpm_pkg_get_reason(info) == PM_PKG_REASON_DEPEND) { + && ((long)alpm_pkg_get_reason(info) == PM_PKG_REASON_DEPEND + || config->op_q_orphans > 1)) { printf("%s %s\n", pkgname, pkgver); } } else {