Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=ee21240892509799a56c18753e96fc3c41da88a4
commit ee21240892509799a56c18753e96fc3c41da88a4 Author: Michel Hermier <[email protected]> Date: Fri Aug 15 11:18:04 2014 +0200 libpacman: More Database::find methods. diff --git a/lib/libpacman/cache.cpp b/lib/libpacman/cache.cpp index 2cd8a8a..756c1b7 100644 --- a/lib/libpacman/cache.cpp +++ b/lib/libpacman/cache.cpp @@ -148,11 +148,7 @@ int _pacman_db_remove_pkgfromcache(Database *db, Package *pkg) Package *_pacman_db_get_pkgfromcache(Database *db, const char *target) { ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, NULL)); - if(_pacman_strempty(target)) { - return NULL; - } - - return(_pacman_pkg_isin(target, _pacman_db_get_pkgcache(db))); + return db->find(target); } /* return a pmlist_t of packages in "db" that provide "package" diff --git a/lib/libpacman/db.cpp b/lib/libpacman/db.cpp index d19d824..fe775ce 100644 --- a/lib/libpacman/db.cpp +++ b/lib/libpacman/db.cpp @@ -137,7 +137,6 @@ FPtrList *Database::filter(const FStringList *needles, int strmatcher_flags, int _pacman_packagestrmatcher_fini(&packagestrmatcher); f_strmatcher_fini(&strmatcher); } - return(ret); } @@ -168,6 +167,28 @@ Package *Database::find(const FStrMatcher *strmatcher, int packagestrmatcher_fla return ret; } +Package *Database::find(const char *target) +{ + if(_pacman_strempty(target)) { + return NULL; + } + + return _pacman_pkg_isin(target, _pacman_db_get_pkgcache(this)); +} + +Package *Database::find(const char *target, int strmatcher_flags, int packagestrmatcher_flags) +{ + Package *ret = NULL; + FStrMatcher strmatcher = { NULL }; + + if(!_pacman_strempty(target) && + f_strmatcher_init(&strmatcher, target, strmatcher_flags) == 0) { + ret = find(&strmatcher, packagestrmatcher_flags); + f_strmatcher_fini(&strmatcher); + } + return ret; +} + pmlist_t *Database::test() const { /* testing sync dbs is not supported */ diff --git a/lib/libpacman/db.h b/lib/libpacman/db.h index cba8e49..5b016d0 100644 --- a/lib/libpacman/db.h +++ b/lib/libpacman/db.h @@ -74,6 +74,9 @@ public: int packagestrmatcher_flags = PM_PACKAGE_FLAG_NAME | PM_PACKAGE_FLAG_DESCRIPTION | PM_PACKAGE_FLAG_PROVIDES); libpacman::Package *find(const FMatcher *packagestrmatcher); libpacman::Package *find(const FStrMatcher *strmatcher, int packagestrmatcher_flags); + Package *Database::find(const char *target); + Package *Database::find(const char *target, int strmatcher_flags, + int packagestrmatcher_flags = PM_PACKAGE_FLAG_NAME); virtual pmlist_t *getowners(const char *filename); /* Make pure virtual */ _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
