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

Reply via email to