From: Jo-Philipp Wich Date: Tue, 30 Oct 2018 09:25:11 +0000 (+0100) Subject: libopkg: don't print unresolved dependencies twice X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=e3d73300bd7bd6d02d00e862bccc66e27449a0c9;p=project%2Fopkg-lede.git libopkg: don't print unresolved dependencies twice Sometimes opkg ends up reporting unresolved dependencies multiple times while also missing a newline between consecutive error lines, making the error message output looking garbled and confusing. Add some logic to skip repeated unresolved dependencies and ensure that message lines are properly terminated by newlines. Signed-off-by: Jo-Philipp Wich --- diff --git a/libopkg/opkg_install.c b/libopkg/opkg_install.c index e6f8a1b..d2d919a 100644 --- a/libopkg/opkg_install.c +++ b/libopkg/opkg_install.c @@ -45,7 +45,7 @@ static int satisfy_dependencies_for(pkg_t * pkg) int i, err; pkg_vec_t *depends = pkg_vec_alloc(); pkg_t *dep; - char **tmp, **unresolved = NULL; + char **tmp, **unresolved = NULL, *prev = NULL; int ndepends; ndepends = pkg_hash_fetch_unsatisfied_dependencies(pkg, depends, @@ -57,12 +57,17 @@ static int satisfy_dependencies_for(pkg_t * pkg) pkg->name); tmp = unresolved; while (*unresolved) { - opkg_message(ERROR, "\t%s", *unresolved); + if (!prev || strcmp(*unresolved, prev)) + opkg_message(ERROR, "\t%s\n", *unresolved); + prev = *unresolved; + unresolved++; + } + unresolved = tmp; + while (*unresolved) { free(*unresolved); unresolved++; } free(tmp); - opkg_message(ERROR, "\n"); if (!conf->force_depends) { opkg_msg(INFO, "This could mean that your package list is out of date or that the packages\n"