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

commit 6e66eabea4be982cffe92aa021a96d946688af01
Author: Michel Hermier <[email protected]>
Date:   Mon Sep 29 08:45:18 2014 +0200

libpacman: Move FStringList implementation to header (in prevision of future 
change.

diff --git a/lib/libpacman/util/fstringlist.cpp 
b/lib/libpacman/util/fstringlist.cpp
index 89af215..70e2966 100644
--- a/lib/libpacman/util/fstringlist.cpp
+++ b/lib/libpacman/util/fstringlist.cpp
@@ -125,95 +125,4 @@ int f_stringlist_clear(FStringList *self)
return 0;
}

-FStringList::FStringList()
-{ }
-
-FStringList::FStringList(const FStringList &o)
-       : FStringList()
-{
-       operator = (o);
-}
-
-FStringList::FStringList(FStringList &&o)
-       : FList(std::move(o))
-{ }
-
-FStringList &FStringList::operator = (const FStringList &o)
-{
-       for(auto lp = o.begin(), end = o.end(); lp != end; ++lp) {
-               f_stringlist_add(this, *lp);
-       }
-
-       return *this;
-}
-
-FStringList &FStringList::operator = (FStringList &&o)
-{
-       swap(o);
-       return *this;
-}
-
-FStringList &FStringList::add_nocopy(char *s)
-{
-       FList::add(s);
-       return *this;
-}
-
-FStringList &FStringList::add(const char *s)
-{
-       return add_nocopy(f_strdup(s));
-}
-
-FStringList &FStringList::add(const FStringList &o)
-{
-       for(auto lp = o.begin(), end = o.end(); lp != end; ++lp) {
-               add((const char *)*lp);
-       }
-       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);
-       return add_nocopy(dest);
-}
-
-bool FStringList::contains(const char *s) const
-{
-       return find(s) != end();
-}
-
-FStringList::iterator FStringList::find(const char *s)
-{
-       return find_if(
-                       [&] (const char *o) -> bool
-                       { return f_streq(o, s); });
-}
-
-FStringList::const_iterator FStringList::find(const char *s) const
-{
-       return find_if(
-                       [&] (const char *o) -> bool
-                       { return f_streq(o, s); });
-}
-
-FStringList::size_type FStringList::remove(const char *s)
-{
-       return remove_if(
-                       [&] (const char *v) -> bool
-                       { return strcmp(v, s) == 0; });
-}
-
/* vim: set ts=2 sw=2 noet: */
diff --git a/lib/libpacman/util/fstringlist.h b/lib/libpacman/util/fstringlist.h
index 5936575..b6cb7c5 100644
--- a/lib/libpacman/util/fstringlist.h
+++ b/lib/libpacman/util/fstringlist.h
@@ -58,25 +58,90 @@ public:
typedef typename FList<const char *>::iterator iterator;
typedef typename FList<const char *>::const_iterator const_iterator;

-       FStringList();
-       FStringList(const FStringList &o);
-       FStringList(FStringList &&o);
+       FStringList()
+       { }

-       FStringList &operator = (const FStringList &o);
-       FStringList &operator = (FStringList &&o);
+       FStringList(const FStringList &o)
+               : FStringList()
+       {
+               operator = (o);
+       }
+
+       FStringList(FStringList &&o)
+               : FList(std::move(o))
+       { }
+
+       FStringList &operator = (const FStringList &o)
+       {
+               for(auto lp = o.begin(), end = o.end(); lp != end; ++lp) {
+                       f_stringlist_add(this, *lp);
+               }
+               return *this;
+       }
+
+       FStringList &operator = (FStringList &&o)
+       {
+               swap(o);
+               return *this;
+       }

-       FStringList &add_nocopy(char *s);
-       FStringList &add(const char *s);
-       FStringList &add(const FStringList &o);
-       FStringList &addf(const char *fmt, ...);
-       FStringList &vaddf(const char *fmt, va_list ap);
+       FStringList &add_nocopy(char *s)
+       {
+               FList::add(s);
+               return *this;
+       }
+
+       FStringList &add(const char *s)
+       {
+               return add_nocopy(f_strdup(s));
+       }
+
+       FStringList &add(const FStringList &o)
+       {
+               for(auto lp = o.begin(), end = o.end(); lp != end; ++lp) {
+                       add((const char *)*lp);
+               }
+               return *this;
+       }
+
+       FStringList &addf(const char *fmt, ...)
+       {
+               va_list ap;
+
+               va_start(ap, fmt);
+               vaddf(fmt, ap);
+               va_end(ap);
+               return *this;
+       }
+
+       FStringList &vaddf(const char *fmt, va_list ap)
+       {
+               char *dest;
+
+               vasprintf(&dest, fmt, ap);
+               return add_nocopy(dest);
+       }

/* Element access */
-       bool contains(const char *s) const;
-       iterator find(const char *s);
-       const_iterator find(const char *s) const;
+       bool contains(const char *s) const
+       {
+               return find(s) != end();
+       }

-       size_type remove(const char *s);
+       iterator find(const char *s)
+       {
+               return find_if([&] (const char *o) -> bool { return f_streq(o, 
s); });
+       }
+
+       const_iterator find(const char *s) const
+       {
+               return find_if([&] (const char *o) -> bool { return f_streq(o, 
s); });
+       }
+
+       size_type remove(const char *s)
+       {
+               return remove_if([&] (const char *o) -> bool { return 
f_streq(o, s); });
+       }

template <class UnaryPredicate>
size_type remove_if(UnaryPredicate pred)
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to