Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=a67d56efce3946a62f82e45d290926b604c3528a
commit a67d56efce3946a62f82e45d290926b604c3528a Author: Michel Hermier <[email protected]> Date: Thu Aug 14 12:27:48 2014 +0200 pacman-g2: Reduce trans_commit/removepkg differences even more. diff --git a/src/pacman-g2/conf.h b/src/pacman-g2/conf.h index eec5ab7..2a682c8 100644 --- a/src/pacman-g2/conf.h +++ b/src/pacman-g2/conf.h @@ -21,6 +21,8 @@ #ifndef _PM_CONF_H #define _PM_CONF_H +#include "list.h" + typedef struct __config_t { /* command line options */ char *root; @@ -33,8 +35,8 @@ typedef struct __config_t { unsigned short help; unsigned short noconfirm; unsigned short noprogressbar; - unsigned short op_d_all; - unsigned short op_d_vertest; + unsigned short op_d_all; + unsigned short op_d_vertest; unsigned short op_d_resolve; unsigned short op_q_isfile; unsigned short op_q_info; diff --git a/src/pacman-g2/remove.c b/src/pacman-g2/remove.c index 991d751..85eb257 100644 --- a/src/pacman-g2/remove.c +++ b/src/pacman-g2/remove.c @@ -26,12 +26,12 @@ #include <pacman.h> /* pacman-g2 */ -#include "util.h" -#include "log.h" +#include "conf.h" #include "list.h" -#include "trans.h" +#include "log.h" #include "remove.h" -#include "conf.h" +#include "trans.h" +#include "util.h" extern config_t *config; diff --git a/src/pacman-g2/trans.c b/src/pacman-g2/trans.c index f6dc740..6d702b6 100644 --- a/src/pacman-g2/trans.c +++ b/src/pacman-g2/trans.c @@ -31,12 +31,12 @@ #include <libintl.h> /* pacman-g2 */ -#include "util.h" -#include "log.h" -#include "trans.h" -#include "list.h" #include "conf.h" #include "download.h" +#include "list.h" +#include "log.h" +#include "trans.h" +#include "util.h" #define LOG_STR_LEN 256 @@ -381,6 +381,7 @@ int trans_commit(pmtranstype_t transtype, list_t *targets) { PM_LIST *data; list_t *i; + list_t *finaltargs = NULL; int retval = 0; if(targets == NULL) { @@ -395,9 +396,10 @@ int trans_commit(pmtranstype_t transtype, list_t *targets) if(str == NULL) { return(1); } else { - free(i->data); - i->data = str; + finaltargs = list_add(finaltargs, str); } + } else { + finaltargs = list_add(finaltargs, strdup(i->data)); } } @@ -410,11 +412,12 @@ int trans_commit(pmtranstype_t transtype, list_t *targets) MSG(NL, _(" if you're sure a package manager is not already running,\n" " you can remove %s%s\n"), config->root, PM_LOCK); } + FREELIST(finaltargs); return(1); } /* and add targets to it */ MSG(NL, _("loading package data... ")); - for(i = targets; i; i = i->next) { + for(i = finaltargs; i; i = i->next) { if(pacman_trans_addtarget(i->data) == -1) { ERR(NL, _("failed to add target '%s' (%s)\n"), (char *)i->data, pacman_strerror(pm_errno)); retval = 1; @@ -499,6 +502,7 @@ int trans_commit(pmtranstype_t transtype, list_t *targets) /* Step 4: release transaction resources */ cleanup: + FREELIST(finaltargs); if(pacman_trans_release() == -1) { ERR(NL, _("failed to release transaction (%s)\n"), pacman_strerror(pm_errno)); retval = 1; _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
