[pacman-dev] [PATCH] Search package groups when searching a DB
Dan McGee
dan at archlinux.org
Sat Jun 6 13:31:27 EDT 2009
See FS#13099. This makes sense especially for the pacman frontend, as we
show groups in the search output.
Signed-off-by: Dan McGee <dan at archlinux.org>
---
lib/libalpm/db.c | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c
index 561967c..4bd55d2 100644
--- a/lib/libalpm/db.c
+++ b/lib/libalpm/db.c
@@ -397,10 +397,10 @@ alpm_list_t *_alpm_db_search(pmdb_t *db, const alpm_list_t *needles)
else if (desc && regexec(®, desc, 0, 0, 0) == 0) {
matched = desc;
}
- /* check provides */
/* TODO: should we be doing this, and should we print something
* differently when we do match it since it isn't currently printed? */
- else {
+ if(!matched) {
+ /* check provides */
for(k = alpm_pkg_get_provides(pkg); k; k = k->next) {
if (regexec(®, k->data, 0, 0, 0) == 0) {
matched = k->data;
@@ -408,6 +408,15 @@ alpm_list_t *_alpm_db_search(pmdb_t *db, const alpm_list_t *needles)
}
}
}
+ if(!matched) {
+ /* check groups */
+ for(k = alpm_pkg_get_groups(pkg); k; k = k->next) {
+ if (regexec(®, k->data, 0, 0, 0) == 0) {
+ matched = k->data;
+ break;
+ }
+ }
+ }
if(matched != NULL) {
_alpm_log(PM_LOG_DEBUG, " search target '%s' matched '%s'\n",
--
1.6.3.2
More information about the pacman-dev
mailing list