Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=ead39938c9835101fecd793576eecb7761f10911

commit ead39938c9835101fecd793576eecb7761f10911
Author: Michel Hermier <[email protected]>
Date:   Thu Oct 31 19:24:30 2013 +0100

libpacman: Add _pacman_stringlist_append to replace _pacman_list_add(foo, 
strdup(bar)) idiom.

diff --git a/lib/libpacman/add.c b/lib/libpacman/add.c
index 9d4f2eb..53e94da 100644
--- a/lib/libpacman/add.c
+++ b/lib/libpacman/add.c
@@ -91,7 +91,7 @@ static pmpkg_t *fakedb_pkg_new(pmdb_t *fakedb, const char 
*name)
} else if(strncmp("version", p, q-p) == 0) {
STRNCPY(dummy->version, q+1, PKG_VERSION_LEN);
} else if(strncmp("depend", p, q-p) == 0) {
-                       dummy->depends = _pacman_list_add(dummy->depends, 
strdup(q+1));
+                       dummy->depends = 
_pacman_stringlist_append(dummy->depends, q+1);
} else {
_pacman_log(PM_LOG_ERROR, _("could not parse token %s"), p);
}
@@ -756,7 +756,7 @@ int _pacman_add_commit(pmtrans_t *trans, pmlist_t **data)
}
if(tmppm->data && (!strcmp(depend.name, info->name) || 
_pacman_list_is_strin(depend.name, info->provides))) {
_pacman_log(PM_LOG_DEBUG, _("adding '%s' in requiredby field for '%s'"), 
tmpp->name, info->name);
-                                       info->requiredby = 
_pacman_list_add(info->requiredby, strdup(tmpp->name));
+                                       info->requiredby = 
_pacman_stringlist_append(info->requiredby, tmpp->name);
}
}
}
@@ -807,7 +807,7 @@ int _pacman_add_commit(pmtrans_t *trans, pmlist_t **data)
}
}
_pacman_log(PM_LOG_DEBUG, _("adding '%s' in requiredby field for '%s'"), 
info->name, depinfo->name);
-                       depinfo->requiredby = 
_pacman_list_add(_pacman_pkg_getinfo(depinfo, PM_PKG_REQUIREDBY), 
strdup(info->name));
+                       depinfo->requiredby = 
_pacman_stringlist_append(_pacman_pkg_getinfo(depinfo, PM_PKG_REQUIREDBY), 
info->name);
if(_pacman_db_write(db_local, depinfo, INFRQ_DEPENDS)) {
_pacman_log(PM_LOG_ERROR, _("could not update 'requiredby' database entry 
%s-%s"),
depinfo->name, depinfo->version);
diff --git a/lib/libpacman/be_files.c b/lib/libpacman/be_files.c
index 73f29a4..2044f5c 100644
--- a/lib/libpacman/be_files.c
+++ b/lib/libpacman/be_files.c
@@ -39,8 +39,8 @@

/* pacman-g2 */

-#include "util/list.h"
#include "util/log.h"
+#include "util/stringlist.h"
#include "util.h"
#include "db.h"
#include "package.h"
@@ -74,19 +74,19 @@ pmlist_t *_pacman_localdb_test(pmdb_t *db)
if(stat(path, &buf))
{
snprintf(path, LOG_STR_LEN, _("%s: description file is missing"), ent->d_name);
-                       ret = _pacman_list_add(ret, strdup(path));
+                       ret = _pacman_stringlist_append(ret, path);
}
snprintf(path, PATH_MAX, "%s/%s/depends", db->path, ent->d_name);
if(stat(path, &buf))
{
snprintf(path, LOG_STR_LEN, _("%s: dependency information is missing"), 
ent->d_name);
-                       ret = _pacman_list_add(ret, strdup(path));
+                       ret = _pacman_stringlist_append(ret, path);
}
snprintf(path, PATH_MAX, "%s/%s/files", db->path, ent->d_name);
if(stat(path, &buf))
{
snprintf(path, LOG_STR_LEN, _("%s: file list is missing"), ent->d_name);
-                       ret = _pacman_list_add(ret, strdup(path));
+                       ret = _pacman_stringlist_append(ret, path);
}
}

@@ -362,7 +362,7 @@ static int _pacman_db_read_lines(pmdb_t *db, pmlist_t 
**list, char *s, size_t si
int lines = 0;

while(_pacman_db_read_fgets(db, s, size, fp) && 
!_pacman_strempty(_pacman_strtrim(s))) {
-               *list = _pacman_list_add(*list, strdup(s));
+               *list = _pacman_stringlist_append(*list, s);
lines++;
}
return lines;
@@ -638,11 +638,11 @@ int _pacman_db_read(pmdb_t *db, unsigned int inforeq, 
pmpkg_t *info)
/* just ignore the content after the pipe for now */
*ptr = '\0';
}
-                                       info->files = 
_pacman_list_add(info->files, strdup(line));
+                                       info->files = 
_pacman_stringlist_append(info->files, line);
}
} else if(!strcmp(line, "%BACKUP%")) {
while(fgets(line, sline, fp) && !_pacman_strempty(_pacman_strtrim(line))) {
-                                       info->backup = 
_pacman_list_add(info->backup, strdup(line));
+                                       info->backup = 
_pacman_stringlist_append(info->backup, line);
}
}
}
diff --git a/lib/libpacman/cache.c b/lib/libpacman/cache.c
index e27d2c3..a9660ff 100644
--- a/lib/libpacman/cache.c
+++ b/lib/libpacman/cache.c
@@ -298,7 +298,7 @@ int _pacman_sync_cleancache(int level)
if(!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, "..")) {
continue;
}
-                       cache = _pacman_list_add(cache, strdup(ent->d_name));
+                       cache = _pacman_stringlist_append(cache, ent->d_name);
}
closedir(dir);

@@ -307,7 +307,7 @@ int _pacman_sync_cleancache(int level)
char name[256], version[64];

if(strstr(str, PM_EXT_PKG) == NULL) {
-                               clean = _pacman_list_add(clean, strdup(str));
+                               clean = _pacman_stringlist_append(clean, str);
continue;
}
/* we keep partially downloaded files */
@@ -315,7 +315,7 @@ int _pacman_sync_cleancache(int level)
continue;
}
if(_pacman_pkg_splitname(str, name, version, 1) != 0) {
-                               clean = _pacman_list_add(clean, strdup(str));
+                               clean = _pacman_stringlist_append(clean, str);
continue;
}
for(j = i->next; j; j = j->next) {
@@ -334,7 +334,7 @@ int _pacman_sync_cleancache(int level)
if(!strcmp(name, n)) {
char *ptr = (pacman_pkg_vercmp(version, v) < 0) ? str : s;
if(!_pacman_list_is_strin(ptr, clean)) {
-                                               clean = _pacman_list_add(clean, 
strdup(ptr));
+                                               clean = 
_pacman_stringlist_append(clean, ptr);
}
}
}
diff --git a/lib/libpacman/conflict.c b/lib/libpacman/conflict.c
index c376274..8a82035 100644
--- a/lib/libpacman/conflict.c
+++ b/lib/libpacman/conflict.c
@@ -245,7 +245,7 @@ static pmlist_t *chk_fileconflicts(pmlist_t *filesA, 
pmlist_t *filesB)
pB = pB->next;
} else {
/* item in both, record it */
-                               ret = _pacman_list_add(ret, strdup(strA));
+                               ret = _pacman_stringlist_append(ret, strA);
pA = pA->next;
pB = pB->next;
}
@@ -357,7 +357,7 @@ pmlist_t *_pacman_db_find_conflicts(pmdb_t *db, pmtrans_t 
*trans, char *root, pm
* Our workaround is to scan through all "old" packages and all "new"
* ones, looking for files that jump to different packages.
*/
-                                                                       
*skip_list = _pacman_list_add(*skip_list, strdup(filestr));
+                                                                       
*skip_list = _pacman_stringlist_append(*skip_list, filestr);
}
}
}
diff --git a/lib/libpacman/handle.c b/lib/libpacman/handle.c
index b4b0161..63b2571 100644
--- a/lib/libpacman/handle.c
+++ b/lib/libpacman/handle.c
@@ -39,6 +39,7 @@

#include "util/list.h"
#include "util/log.h"
+#include "util/stringlist.h"
#include "error.h"
#include "trans.h"
#include "pacman.h"
@@ -187,7 +188,7 @@ int _pacman_handle_set_option(pmhandle_t *ph, unsigned char 
val, unsigned long d
break;
case PM_OPT_NOUPGRADE:
if(!_pacman_strempty((char *)data)) {
-                               ph->noupgrade = _pacman_list_add(ph->noupgrade, 
strdup((char *)data));
+                               ph->noupgrade = 
_pacman_stringlist_append(ph->noupgrade, (char *)data);
_pacman_log(PM_LOG_FLOW2, _("'%s' added to PM_OPT_NOUPGRADE"), (char *)data);
} else {
FREELIST(ph->noupgrade);
@@ -196,7 +197,7 @@ int _pacman_handle_set_option(pmhandle_t *ph, unsigned char 
val, unsigned long d
break;
case PM_OPT_NOEXTRACT:
if(!_pacman_strempty((char *)data)) {
-                               ph->noextract = _pacman_list_add(ph->noextract, 
strdup((char *)data));
+                               ph->noextract = 
_pacman_stringlist_append(ph->noextract, (char *)data);
_pacman_log(PM_LOG_FLOW2, _("'%s' added to PM_OPT_NOEXTRACT"), (char *)data);
} else {
FREELIST(ph->noextract);
@@ -205,7 +206,7 @@ int _pacman_handle_set_option(pmhandle_t *ph, unsigned char 
val, unsigned long d
break;
case PM_OPT_IGNOREPKG:
if(!_pacman_strempty((char *)data)) {
-                               ph->ignorepkg = _pacman_list_add(ph->ignorepkg, 
strdup((char *)data));
+                               ph->ignorepkg = 
_pacman_stringlist_append(ph->ignorepkg, (char *)data);
_pacman_log(PM_LOG_FLOW2, _("'%s' added to PM_OPT_IGNOREPKG"), (char *)data);
} else {
FREELIST(ph->ignorepkg);
@@ -214,7 +215,7 @@ int _pacman_handle_set_option(pmhandle_t *ph, unsigned char 
val, unsigned long d
break;
case PM_OPT_HOLDPKG:
if(!_pacman_strempty((char *)data)) {
-                               ph->holdpkg = _pacman_list_add(ph->holdpkg, 
strdup((char *)data));
+                               ph->holdpkg = 
_pacman_stringlist_append(ph->holdpkg, (char *)data);
_pacman_log(PM_LOG_FLOW2, _("'%s' added to PM_OPT_HOLDPKG"), (char *)data);
} else {
FREELIST(ph->holdpkg);
@@ -223,7 +224,7 @@ int _pacman_handle_set_option(pmhandle_t *ph, unsigned char 
val, unsigned long d
break;
case PM_OPT_NEEDLES:
if(!_pacman_strempty((char *)data)) {
-                               ph->needles = _pacman_list_add(ph->needles, 
strdup((char *)data));
+                               ph->needles = 
_pacman_stringlist_append(ph->needles, (char *)data);
_pacman_log(PM_LOG_FLOW2, _("'%s' added to PM_OPT_NEEDLES"), (char *)data);
} else {
FREELIST(ph->needles);
diff --git a/lib/libpacman/package.c b/lib/libpacman/package.c
index 40dbc30..328825b 100644
--- a/lib/libpacman/package.c
+++ b/lib/libpacman/package.c
@@ -184,18 +184,18 @@ static int parse_descfile(char *descfile, pmpkg_t *info, 
int output)
} else if(!strcmp(key, "PKGVER")) {
STRNCPY(info->version, ptr, sizeof(info->version));
} else if(!strcmp(key, "PKGDESC")) {
-                               info->desc_localized = 
_pacman_list_add(info->desc_localized, strdup(ptr));
+                               info->desc_localized = 
_pacman_stringlist_append(info->desc_localized, ptr);
if(_pacman_list_count(info->desc_localized) == 1) {
STRNCPY(info->desc, ptr, sizeof(info->desc));
} else if (!strncmp(ptr, handle->language, strlen(handle->language))) {
STRNCPY(info->desc, ptr+strlen(handle->language)+1, sizeof(info->desc));
}
} else if(!strcmp(key, "GROUP")) {
-                               info->groups = _pacman_list_add(info->groups, 
strdup(ptr));
+                               info->groups = 
_pacman_stringlist_append(info->groups, ptr);
} else if(!strcmp(key, "URL")) {
STRNCPY(info->url, ptr, sizeof(info->url));
} else if(!strcmp(key, "LICENSE")) {
-                               info->license = _pacman_list_add(info->license, 
strdup(ptr));
+                               info->license = 
_pacman_stringlist_append(info->license, ptr);
} else if(!strcmp(key, "BUILDDATE")) {
STRNCPY(info->builddate, ptr, sizeof(info->builddate));
} else if(!strcmp(key, "BUILDTYPE")) {
@@ -215,17 +215,17 @@ static int parse_descfile(char *descfile, pmpkg_t *info, 
int output)
STRNCPY(tmp, ptr, sizeof(tmp));
info->usize = atol(tmp);
} else if(!strcmp(key, "DEPEND")) {
-                               info->depends = _pacman_list_add(info->depends, 
strdup(ptr));
+                               info->depends = 
_pacman_stringlist_append(info->depends, ptr);
} else if(!strcmp(key, "REMOVE")) {
-                               info->removes = _pacman_list_add(info->removes, 
strdup(ptr));
+                               info->removes = 
_pacman_stringlist_append(info->removes, ptr);
} else if(!strcmp(key, "CONFLICT")) {
-                               info->conflicts = 
_pacman_list_add(info->conflicts, strdup(ptr));
+                               info->conflicts = 
_pacman_stringlist_append(info->conflicts, ptr);
} else if(!strcmp(key, "REPLACES")) {
-                               info->replaces = 
_pacman_list_add(info->replaces, strdup(ptr));
+                               info->replaces = 
_pacman_stringlist_append(info->replaces, ptr);
} else if(!strcmp(key, "PROVIDES")) {
-                               info->provides = 
_pacman_list_add(info->provides, strdup(ptr));
+                               info->provides = 
_pacman_stringlist_append(info->provides, ptr);
} else if(!strcmp(key, "BACKUP")) {
-                               info->backup = _pacman_list_add(info->backup, 
strdup(ptr));
+                               info->backup = 
_pacman_stringlist_append(info->backup, ptr);
} else {
_pacman_log(PM_LOG_DEBUG, _("%s: syntax error in description file line %d"),
info->name[0] != '\0' ? info->name : "error", linenum);
@@ -360,7 +360,7 @@ pmpkg_t *_pacman_pkg_load(const char *pkgfile)
continue;
}
_pacman_strtrim(str);
-                               info->files = _pacman_list_add(info->files, 
strdup(str));
+                               info->files = 
_pacman_stringlist_append(info->files, str);
}
FREE(str);
fclose(fp);
diff --git a/lib/libpacman/pacman.c b/lib/libpacman/pacman.c
index 07302df..6bee40c 100644
--- a/lib/libpacman/pacman.c
+++ b/lib/libpacman/pacman.c
@@ -350,7 +350,7 @@ int pacman_db_update(int force, pmdb_t *db)

/* build a one-element list */
snprintf(path, PATH_MAX, "%s" PM_EXT_DB, db->treename);
-       files = _pacman_list_add(files, strdup(path));
+       files = _pacman_stringlist_append(files, path);

snprintf(path, PATH_MAX, "%s%s", handle->root, handle->dbpath);

diff --git a/lib/libpacman/sync.c b/lib/libpacman/sync.c
index 63374e5..6a6abca 100644
--- a/lib/libpacman/sync.c
+++ b/lib/libpacman/sync.c
@@ -451,7 +451,7 @@ int _pacman_sync_prepare(pmtrans_t *trans, pmlist_t **data)
int doremove = 0;
if(!_pacman_list_is_strin(miss->depend.name, asked)) {
QUESTION(trans, PM_TRANS_CONV_CONFLICT_PKG, miss->target, miss->depend.name, 
NULL, &doremove);
-                                               asked = _pacman_list_add(asked, 
strdup(miss->depend.name));
+                                               asked = 
_pacman_stringlist_append(asked, miss->depend.name);
if(doremove) {
pmsyncpkg_t *rsync = find_pkginsync(miss->depend.name, trans->packages);
pmpkg_t *q = _pacman_pkg_new(miss->depend.name, NULL);
@@ -763,7 +763,7 @@ int _pacman_sync_commit(pmtrans_t *trans, pmlist_t **data)
new->name, new->version);
}
/* add the new requiredby */
-                                                       new->requiredby = 
_pacman_list_add(new->requiredby, strdup(k->data));
+                                                       new->requiredby = 
_pacman_stringlist_append(new->requiredby, k->data);
}
}
}
@@ -830,7 +830,7 @@ int _pacman_trans_download_commit(pmtrans_t *trans, 
pmlist_t **data)
} else {
if(stat(lcpath, &buf)) {
/* file is not in the cache dir, so add it to the list */
-                                                       files = 
_pacman_list_add(files, strdup(filename));
+                                                       files = 
_pacman_stringlist_append(files, filename);
} else {
_pacman_log(PM_LOG_DEBUG, _("%s is already in the cache\n"), filename);
}
diff --git a/lib/libpacman/trans.c b/lib/libpacman/trans.c
index 8b3023a..6b87a60 100644
--- a/lib/libpacman/trans.c
+++ b/lib/libpacman/trans.c
@@ -164,7 +164,7 @@ int _pacman_trans_addtarget(pmtrans_t *trans, const char 
*target)
return(-1);
}

-       trans->targets = _pacman_list_add(trans->targets, strdup(target));
+       trans->targets = _pacman_stringlist_append(trans->targets, target);

return(0);
}
diff --git a/lib/libpacman/util/stringlist.c b/lib/libpacman/util/stringlist.c
index ca158b2..330b4e6 100644
--- a/lib/libpacman/util/stringlist.c
+++ b/lib/libpacman/util/stringlist.c
@@ -56,7 +56,7 @@ pmlist_t *_pacman_list_remove_dupes(pmlist_t *list)

for(i = list; i; i = i->next) {
if(!_pacman_list_is_strin(i->data, newlist)) {
-                       newlist = _pacman_list_add(newlist, strdup(i->data));
+                       newlist = _pacman_stringlist_append(newlist, i->data);
}
}
return newlist;
@@ -68,10 +68,15 @@ pmlist_t *_pacman_list_strdup(pmlist_t *list)
pmlist_t *lp;

for(lp = list; lp; lp = lp->next) {
-               newlist = _pacman_list_add(newlist, strdup(lp->data));
+               newlist = _pacman_stringlist_append(newlist, lp->data);
}

return(newlist);
}

+pmlist_t *_pacman_stringlist_append(pmlist_t *list, const char *s)
+{
+       return _pacman_list_add(list, strdup(s));
+}
+
/* vim: set ts=2 sw=2 noet: */
diff --git a/lib/libpacman/util/stringlist.h b/lib/libpacman/util/stringlist.h
index f95b5b7..b8ee255 100644
--- a/lib/libpacman/util/stringlist.h
+++ b/lib/libpacman/util/stringlist.h
@@ -27,6 +27,8 @@ int _pacman_list_is_strin(const char *needle, pmlist_t 
*haystack);
pmlist_t *_pacman_list_remove_dupes(pmlist_t *list);
pmlist_t *_pacman_list_strdup(pmlist_t *list);

+pmlist_t *_pacman_stringlist_append(pmlist_t *list, const char *s);
+
#endif /* _PACMAN_STRINGLIST_H */

/* vim: set ts=2 sw=2 noet: */
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to