cli: ensure --modversion is output is printed in dependency queue order
ci/woodpecker/push/woodpecker Pipeline was successful
Details
ci/woodpecker/push/woodpecker Pipeline was successful
Details
Previously, --modversion operated on the calculated solution and printed versions in order of the calculated dependency graph. Change this to use the dependency queue instead, looking up nodes in the dependency graph as needed, to ensure that the --modversion output behaves as intended. Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>pull/190/head
parent
4fb0988a29
commit
f49029c681
31
cli/main.c
31
cli/main.c
|
@ -289,23 +289,32 @@ apply_digraph(pkgconf_client_t *client, pkgconf_pkg_t *world, void *unused, int
|
|||
#endif
|
||||
|
||||
static bool
|
||||
apply_modversion(pkgconf_client_t *client, pkgconf_pkg_t *world, void *unused, int maxdepth)
|
||||
apply_modversion(pkgconf_client_t *client, pkgconf_pkg_t *world, void *data, int maxdepth)
|
||||
{
|
||||
pkgconf_node_t *iter;
|
||||
pkgconf_node_t *queue_iter;
|
||||
pkgconf_list_t *pkgq = data;
|
||||
(void) client;
|
||||
(void) unused;
|
||||
(void) maxdepth;
|
||||
|
||||
PKGCONF_FOREACH_LIST_ENTRY(world->required.head, iter)
|
||||
PKGCONF_FOREACH_LIST_ENTRY(pkgq->head, queue_iter)
|
||||
{
|
||||
pkgconf_dependency_t *dep = iter->data;
|
||||
pkgconf_pkg_t *pkg = dep->match;
|
||||
pkgconf_node_t *world_iter;
|
||||
pkgconf_queue_t *queue_node = queue_iter->data;
|
||||
|
||||
if (pkg->version != NULL) {
|
||||
if (verbosity)
|
||||
printf("%s: ", pkg->id);
|
||||
PKGCONF_FOREACH_LIST_ENTRY(world->required.head, world_iter)
|
||||
{
|
||||
pkgconf_dependency_t *dep = world_iter->data;
|
||||
pkgconf_pkg_t *pkg = dep->match;
|
||||
|
||||
printf("%s\n", pkg->version);
|
||||
if (strncmp(pkg->id, queue_node->package, strlen(pkg->id)))
|
||||
continue;
|
||||
|
||||
if (pkg->version != NULL) {
|
||||
if (verbosity)
|
||||
printf("%s: ", pkg->id);
|
||||
|
||||
printf("%s\n", pkg->version);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1430,7 +1439,7 @@ cleanup3:
|
|||
if ((want_flags & PKG_MODVERSION) == PKG_MODVERSION)
|
||||
{
|
||||
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
||||
apply_modversion(&pkg_client, &world, NULL, 2);
|
||||
apply_modversion(&pkg_client, &world, &pkgq, 2);
|
||||
}
|
||||
|
||||
if ((want_flags & PKG_PATH) == PKG_PATH)
|
||||
|
|
Loading…
Reference in New Issue