pacman/remove: switch to new alpm_remove_pkg interface

Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
This commit is contained in:
Xavier Chantry 2010-10-17 11:18:01 +02:00
parent 4a72c0964a
commit eed7ba92e8
2 changed files with 32 additions and 4 deletions

View File

@ -31,6 +31,36 @@
#include "util.h"
#include "conf.h"
static int remove_target(char *target)
{
pmpkg_t *info;
pmdb_t *db_local = alpm_option_get_localdb();
alpm_list_t *p;
if((info = alpm_db_get_pkg(db_local, target)) != NULL) {
if(alpm_remove_pkg(info) == -1) {
pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n", target, alpm_strerrorlast());
return(-1);
}
return(0);
}
/* fallback to group */
pmgrp_t *grp = alpm_db_readgrp(db_local, target);
if(grp == NULL) {
pm_fprintf(stderr, PM_LOG_ERROR, "'%s': target not found\n", target);
return(-1);
}
for(p = alpm_grp_get_pkgs(grp); p; p = alpm_list_next(p)) {
pmpkg_t *pkg = alpm_list_getdata(p);
if(alpm_remove_pkg(pkg) == -1) {
pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n", target, alpm_strerrorlast());
return(-1);
}
}
return(0);
}
/**
* @brief Remove a specified list of packages.
*
@ -62,8 +92,7 @@ int pacman_remove(alpm_list_t *targets)
} else {
targ = target;
}
if(alpm_remove_target(targ) == -1) {
pm_fprintf(stderr, PM_LOG_ERROR, "'%s': %s\n", targ, alpm_strerrorlast());
if(remove_target(targ) == -1) {
retval = 1;
goto cleanup;
}

View File

@ -636,8 +636,7 @@ static int process_group(alpm_list_t *dbs, char *group)
printf(_(":: There are %d members in group %s:\n"), count,
group);
select_display(pkgs);
select_question(count,
_("Which ones do you want to install?"));
select_question(count);
char *array = malloc(count);
memset(array, 1, count);
int n = 0;