[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(&reg, 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(&reg, 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(&reg, 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