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

commit 358d342d557a24eb9c5fd947bb045dfaa9c55702
Author: Michel Hermier <[email protected]>
Date:   Fri Nov 14 15:13:58 2014 +0100

libpacman: Drop f_stringlist_any_match.

diff --git a/lib/libpacman/kernel/fstr.cpp b/lib/libpacman/kernel/fstr.cpp
index c30fed6..d95d975 100644
--- a/lib/libpacman/kernel/fstr.cpp
+++ b/lib/libpacman/kernel/fstr.cpp
@@ -243,23 +243,14 @@ bool FStrMatcher::match(const str &s) const
return match(s.c_str());
}

-int f_stringlist_any_match(const FStringList *list, const FStrMatcher *matcher)
+bool FStrMatcher::match_all(const FStringList &l) const
{
-#ifndef F_NOCOMPAT
-       for(auto it = list->begin(), end = list->end(); it != end; ++it) {
-               if(matcher->match((const char *)*it) != 0) {
-                       return 1;
-               }
-       }
-       return 0;
-#else
-       for(auto str: *list) {
-               if(matcher->match((const char *)str) != 0) {
-                       return 1;
-               }
-       }
-       return 0;
-#endif
+       return l.all_match_if<const FStrMatcher &>(*this);
+}
+
+bool FStrMatcher::match_any(const FStringList &l) const
+{
+       return l.any_match_if<const FStrMatcher &>(*this);
}

/* vim: set ts=2 sw=2 noet: */
diff --git a/lib/libpacman/kernel/fstr.h b/lib/libpacman/kernel/fstr.h
index 913a99f..321325d 100644
--- a/lib/libpacman/kernel/fstr.h
+++ b/lib/libpacman/kernel/fstr.h
@@ -173,14 +173,18 @@ public:

bool match(const char *s) const;
bool match(const flib::str &s) const;
+       bool match_all(const FStringList &l) const;
+       bool match_any(const FStringList &l) const;

protected:
int m_flags;
char *m_str;
regex_t m_regex;
-};

-int f_stringlist_any_match(const FStringList *list, const FStrMatcher 
*matcher);
+private:
+       FStrMatcher(const FStrMatcher &o);
+       FStrMatcher &operator = (const FStrMatcher &o);
+};

#endif /* F_STR_H */

diff --git a/lib/libpacman/package.cpp b/lib/libpacman/package.cpp
index d68c51d..f616f36 100644
--- a/lib/libpacman/package.cpp
+++ b/lib/libpacman/package.cpp
@@ -357,18 +357,18 @@ int _pacman_strmatcher_match(const FStrMatcher 
*strmatcher, const package_ptr &p
((flags & PM_PACKAGE_FLAG_PACKAGER) && strmatcher->match(pkg->packager)) ||
//                      ((flags & PM_PACKAGE_FLAG_HASH) && ) ||
((flags & PM_PACKAGE_FLAG_ARCH) && strmatcher->match(pkg->arch)) ||
-                       ((flags & PM_PACKAGE_FLAG_LOCALISED_DESCRIPTION) && 
f_stringlist_any_match(&pkg->desc_localized, strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_LICENSE) && 
f_stringlist_any_match(&pkg->license, strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_REPLACES) && 
f_stringlist_any_match(&pkg->replaces(), strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_GROUPS) && 
f_stringlist_any_match(&pkg->groups(), strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_FILES) && 
pkg->files().any_match_if(*strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_BACKUP) && 
f_stringlist_any_match(&pkg->backup(), strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_DEPENDS) && 
f_stringlist_any_match(&pkg->depends(), strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_REMOVES) && 
f_stringlist_any_match(&pkg->removes(), strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_REQUIREDBY) && 
f_stringlist_any_match(&pkg->requiredby(), strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_CONFLICTS) && 
f_stringlist_any_match(&pkg->conflicts(), strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_PROVIDES) && 
f_stringlist_any_match(&pkg->provides(), strmatcher)) ||
-                       ((flags & PM_PACKAGE_FLAG_TRIGGERS) && 
f_stringlist_any_match(&pkg->triggers(), strmatcher))) {
+                       ((flags & PM_PACKAGE_FLAG_LOCALISED_DESCRIPTION) && 
strmatcher->match_any(pkg->desc_localized)) ||
+                       ((flags & PM_PACKAGE_FLAG_LICENSE) && 
strmatcher->match_any(pkg->license)) ||
+                       ((flags & PM_PACKAGE_FLAG_REPLACES) && 
strmatcher->match_any(pkg->replaces())) ||
+                       ((flags & PM_PACKAGE_FLAG_GROUPS) && 
strmatcher->match_any(pkg->groups())) ||
+                       ((flags & PM_PACKAGE_FLAG_FILES) && 
pkg->files().any_match_if<const FStrMatcher &>(*strmatcher)) ||
+                       ((flags & PM_PACKAGE_FLAG_BACKUP) && 
strmatcher->match_any(pkg->backup())) ||
+                       ((flags & PM_PACKAGE_FLAG_DEPENDS) && 
strmatcher->match_any(pkg->depends())) ||
+                       ((flags & PM_PACKAGE_FLAG_REMOVES) && 
strmatcher->match_any(pkg->removes())) ||
+                       ((flags & PM_PACKAGE_FLAG_REQUIREDBY) && 
strmatcher->match_any(pkg->requiredby())) ||
+                       ((flags & PM_PACKAGE_FLAG_CONFLICTS) && 
strmatcher->match_any(pkg->conflicts())) ||
+                       ((flags & PM_PACKAGE_FLAG_PROVIDES) && 
strmatcher->match_any(pkg->provides())) ||
+                       ((flags & PM_PACKAGE_FLAG_TRIGGERS) && 
strmatcher->match_any(pkg->triggers()))) {
return 1;
}
return 0;
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to