aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-06-14 02:18:41 +0000
committerMike Frysinger <vapier@gentoo.org>2005-06-14 02:18:41 +0000
commit43fa2191c37590f0eba6d5b665e01426f6aeac1d (patch)
tree90a65391b524b8f48688ef2fda5677924fea89dc /qsearch.c
parentimport initial cache support (diff)
downloadportage-utils-43fa2191c37590f0eba6d5b665e01426f6aeac1d.tar.gz
portage-utils-43fa2191c37590f0eba6d5b665e01426f6aeac1d.tar.bz2
portage-utils-43fa2191c37590f0eba6d5b665e01426f6aeac1d.zip
add support for metadata parsing
Diffstat (limited to 'qsearch.c')
-rw-r--r--qsearch.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/qsearch.c b/qsearch.c
index 8839aae..5c82728 100644
--- a/qsearch.c
+++ b/qsearch.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qsearch.c,v 1.6 2005/06/14 00:16:05 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qsearch.c,v 1.7 2005/06/14 02:18:41 vapier Exp $
*
* 2005 Ned Ludd - <solar@gentoo.org>
* 2005 Mike Frysinger - <vapier@gentoo.org>
@@ -109,6 +109,21 @@ int qsearch_main(int argc, char **argv)
switch (search_cache) {
+ case CACHE_METADATA: {
+ portage_cache *pcache;
+ if ((pcache = cache_read_file(ebuild)) != NULL) {
+ if ((rematch(search_me, (search_desc ? pcache->DESCRIPTION : ebuild), REG_EXTENDED | REG_ICASE)) == 0)
+ printf("%s%s/%s%s%s %s\n", BOLD, pcache->atom->CATEGORY, BLUE,
+ pcache->atom->PN, NORM, pcache->DESCRIPTION);
+ cache_free(pcache);
+ } else {
+ if (!reinitialize)
+ warnf("(cache update pending) %s", ebuild);
+ reinitialize = 1;
+ }
+ break;
+ }
+
case CACHE_EBUILD: {
FILE *ebuildfp;
str = xstrdup(ebuild);
@@ -141,7 +156,7 @@ int qsearch_main(int argc, char **argv)
fclose(ebuildfp);
} else {
if (!reinitialize)
- warnf("(cache update pending) %s : %s", ebuild, strerror(errno));
+ warnfp("(cache update pending) %s", ebuild);
reinitialize = 1;
}
}