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
