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 <jo@mein.io>
int i, err;
pkg_vec_t *depends = pkg_vec_alloc();
pkg_t *dep;
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,
int ndepends;
ndepends = pkg_hash_fetch_unsatisfied_dependencies(pkg, depends,
pkg->name);
tmp = unresolved;
while (*unresolved) {
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);
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"
if (!conf->force_depends) {
opkg_msg(INFO,
"This could mean that your package list is out of date or that the packages\n"