Date: Mon, 8 Jul 2013 01:22:57 GMT From: mattbw@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r254393 - soc2013/mattbw/backend Message-ID: <201307080122.r681MvrI070305@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307080122.r681MvrI070305>