Date: Sun, 21 Jul 2013 14:15:25 GMT From: mattbw@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r255000 - in soc2013/mattbw/backend: . query Message-ID: <201307211415.r6LEFPMS072450@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mattbw Date: Sun Jul 21 14:15:25 2013 New Revision: 255000 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=255000 Log: use name-version for jobs instead of name only Modified: soc2013/mattbw/backend/pkgutils.c soc2013/mattbw/backend/pkgutils.h soc2013/mattbw/backend/query/jobs.c Modified: soc2013/mattbw/backend/pkgutils.c ============================================================================== --- soc2013/mattbw/backend/pkgutils.c Sun Jul 21 13:15:05 2013 (r254999) +++ soc2013/mattbw/backend/pkgutils.c Sun Jul 21 14:15:25 2013 (r255000) @@ -97,6 +97,22 @@ } /* + * Allocates and returns a string of the form "name-version" that identifies + * the given package's name and version. + * + * To be freed using free(3). + */ +char * +pkgutils_pkg_namever(struct pkg *pkg) +{ + char *result; + + result = NULL; + (void)pkg_asprintf(&result, "%n-%v", pkg, pkg); + return result; +} + +/* * Gets the PackageKit repository name for the package. */ const char * Modified: soc2013/mattbw/backend/pkgutils.h ============================================================================== --- soc2013/mattbw/backend/pkgutils.h Sun Jul 21 13:15:05 2013 (r254999) +++ soc2013/mattbw/backend/pkgutils.h Sun Jul 21 14:15:25 2013 (r255000) @@ -28,6 +28,7 @@ PkInfoEnum pkgutils_pkg_current_state(struct pkg *pkg); PkInfoEnum pkgutils_pkg_install_state(struct pkg *pkg); PkInfoEnum pkgutils_pkg_remove_state(struct pkg *pkg); +char *pkgutils_pkg_namever(struct pkg *pkg); const char *pkgutils_pk_repo_of(struct pkg *pkg); gchar *pkgutils_pkg_to_id(struct pkg *pkg); gchar *pkgutils_pkg_to_id_through(struct pkg *pkg, const gchar **strv); Modified: soc2013/mattbw/backend/query/jobs.c ============================================================================== --- soc2013/mattbw/backend/query/jobs.c Sun Jul 21 13:15:05 2013 (r254999) +++ soc2013/mattbw/backend/query/jobs.c Sun Jul 21 14:15:25 2013 (r255000) @@ -29,7 +29,6 @@ #include "core.h" /* query_... */ #include "jobs.h" /* query_jobs_... */ -static int add_pkg(struct pkg_jobs *jobs, match_t type, struct pkg *pkg); static int repo_from_query(struct pkg_jobs *jobs, struct query *q); /* @@ -71,6 +70,7 @@ job_emit_ptr f) { bool success; + char *namever; struct pkg_jobs *jobs; PkBackend *backend; @@ -80,6 +80,7 @@ success = false; jobs = NULL; + namever = NULL; backend = query_backend(q); @@ -95,7 +96,13 @@ "could not set repo"); goto cleanup; } - if (add_pkg(jobs, MATCH_EXACT, pkg) != EPKG_OK) { + namever = pkgutils_pkg_namever(pkg); + if (namever == NULL) { + ERR(backend, + PK_ERROR_ENUM_OOM, + "could not allocate a namever"); + } + if (pkg_jobs_add(jobs, MATCH_EXACT, &namever, 1) != EPKG_OK) { ERR(backend, PK_ERROR_ENUM_INTERNAL_ERROR, "could not add to job"); @@ -111,6 +118,7 @@ success = f(jobs, q); cleanup: + free(namever); pkg_jobs_free(jobs); return success; } @@ -138,17 +146,6 @@ return true; } -/* Adds a single package to a jobs structure. */ -static int -add_pkg(struct pkg_jobs *jobs, match_t type, struct pkg *pkg) -{ - char *name; - - name = NULL; - pkg_get(pkg, PKG_NAME, &name); - return pkg_jobs_add(jobs, type, &name, 1); -} - /* Sets a jobset to target the repository the given query is looking in. */ static int repo_from_query(struct pkg_jobs *jobs, struct query *q)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307211415.r6LEFPMS072450>