socsvn commit: r254393 - soc2013/mattbw/backend

mattbw at FreeBSD.org mattbw at FreeBSD.org
Mon Jul 8 01:22:57 UTC 2013


Author: mattbw
Date: Mon Jul  8 01:22:56 2013
New Revision: 254393
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=254393

Log:
  eventual filters support

Modified:
  soc2013/mattbw/backend/pk-backend-pkgng.c
  soc2013/mattbw/backend/query.c

Modified: soc2013/mattbw/backend/pk-backend-pkgng.c
==============================================================================
--- soc2013/mattbw/backend/pk-backend-pkgng.c	Mon Jul  8 01:06:44 2013	(r254392)
+++ soc2013/mattbw/backend/pk-backend-pkgng.c	Mon Jul  8 01:22:56 2013	(r254393)
@@ -115,6 +115,7 @@
 
 	/* TODO: support more filters */
 	return pk_bitfield_from_enums(PK_FILTER_ENUM_INSTALLED,
+	    PK_FILTER_ENUM_NOT_INSTALLED,
 	    -1);
 }
 

Modified: soc2013/mattbw/backend/query.c
==============================================================================
--- soc2013/mattbw/backend/query.c	Mon Jul  8 01:06:44 2013	(r254392)
+++ soc2013/mattbw/backend/query.c	Mon Jul  8 01:22:56 2013	(r254393)
@@ -77,6 +77,7 @@
 	gboolean	try_local;
 	gboolean	try_remote;
 	int		match;
+	PkBitfield	filters;
 	const char     *name;
 	gchar          *match_id;
 	struct pkg     *match_pkg;
@@ -102,6 +103,13 @@
 		try_remote = (q->local_repo == FALSE);
 	}
 
+	/* Apply filters, if any */
+	filters = pk_backend_get_uint(q->backend, "filters");
+	if (pk_bitfield_contain(filters, PK_FILTER_ENUM_INSTALLED))
+		try_remote = FALSE;
+	if (pk_bitfield_contain(filters, PK_FILTER_ENUM_NOT_INSTALLED))
+		try_local = FALSE;
+
 	/* Try a local search first, if applicable. */
 	it = (try_local ? pkgdb_query(db, name, match) : NULL);
 	if (it != NULL)


More information about the svn-soc-all mailing list