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

commit b5b748f1343f1160e281da2f2d3be6f21d225f4f
Author: Michel Hermier <[email protected]>
Date:   Mon Sep 8 13:21:28 2014 +0200

libpacman: Add (v)addf methods to FStringList.

diff --git a/lib/libpacman/util/fstringlist.cpp 
b/lib/libpacman/util/fstringlist.cpp
index 5f20188..cb6159a 100644
--- a/lib/libpacman/util/fstringlist.cpp
+++ b/lib/libpacman/util/fstringlist.cpp
@@ -67,7 +67,7 @@ FStringList *_pacman_list_remove_dupes(FStringList *list)
const char *f_stringlistitem_to_str(const FStringListIterator *self)
{
#ifndef F_NOCOMPAT
-       return f_ptrlistitem_data(self);
+       return (const char *)f_ptrlistitem_data(self);
#else
return self->to_str;
#endif
@@ -98,6 +98,24 @@ FStringList *f_stringlist_add_stringlist(FStringList *self, 
const FStringList *s
return &self->add(*src);
}

+FStringList *f_stringlist_addf(FStringList *self, const char *fmt, ...)
+{
+       va_list ap;
+
+       va_start(ap, fmt);
+       self = f_stringlist_vaddf(self, fmt, ap);
+       va_end(ap);
+       return self;
+}
+
+FStringList *f_stringlist_vaddf(FStringList *self, const char *fmt, va_list ap)
+{
+       if(self == NULL) {
+               self = new FStringList();
+       }
+       return &self->vaddf(fmt, ap);
+}
+
int f_stringlist_clear(FStringList *self)
{
ASSERT(self != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
@@ -147,4 +165,23 @@ FStringList &FStringList::add(const FStringList &o)
return *this;
}

+FStringList &FStringList::addf(const char *fmt, ...)
+{
+       va_list ap;
+
+  va_start(ap, fmt);
+       vaddf(fmt, ap);
+       va_end(ap);
+       return *this;
+}
+
+FStringList &FStringList::vaddf(const char *fmt, va_list ap)
+{
+       char *dest;
+
+       vasprintf(&dest, fmt, ap);
+       FPtrList::add(dest);
+       return *this;
+}
+
/* vim: set ts=2 sw=2 noet: */
diff --git a/lib/libpacman/util/fstringlist.h b/lib/libpacman/util/fstringlist.h
index 0307326..6c83958 100644
--- a/lib/libpacman/util/fstringlist.h
+++ b/lib/libpacman/util/fstringlist.h
@@ -44,6 +44,8 @@ int f_stringlist_delete(FStringList *self);

FStringList *f_stringlist_add(FStringList *list, const char *s);
FStringList *f_stringlist_add_stringlist(FStringList *dest, const FStringList 
*src);
+FStringList *f_stringlist_addf(FStringList *self, const char *s, ...);
+FStringList *f_stringlist_vaddf(FStringList *self, const char *s, va_list ap);
int f_stringlist_clear(FStringList *self);

#ifdef __cplusplus
@@ -62,6 +64,8 @@ public:

FStringList &add(const char *s);
FStringList &add(const FStringList &o);
+       FStringList &addf(const char *fmt, ...);
+       FStringList &vaddf(const char *fmt, va_list ap);
};

#endif
diff --git a/src/pacman-g2/sync.c b/src/pacman-g2/sync.c
index 7e86733..14d11ae 100644
--- a/src/pacman-g2/sync.c
+++ b/src/pacman-g2/sync.c
@@ -500,7 +500,7 @@ int syncpkg(FStringList *targets)

/* list targets and get confirmation */
if(!((unsigned long)pacman_trans_getinfo(PM_TRANS_FLAGS) & 
PM_TRANS_FLAG_PRINTURIS)) {
-               list_t *list_install = NULL;
+               FStringList *list_install = NULL;
list_t *list_remove = NULL;
char *str;
unsigned long totalsize = 0;
@@ -528,8 +528,7 @@ int syncpkg(FStringList *targets)
totalsize += (long)pacman_pkg_getinfo(pkg, PM_PKG_SIZE);
totalusize += (long)pacman_pkg_getinfo(pkg, PM_PKG_USIZE);

-                       asprintf(&str, "%s-%s", pkgname, pkgver);
-                       list_install = f_stringlist_add(list_install, str); // 
Fixme add a f_stringlist_addf
+                       list_install = f_stringlist_addf(list_install, "%s-%s", 
pkgname, pkgver);
}
if(list_remove) {
MSG(NL, _("\nRemove:  "));
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to