diff --git a/bin/xbps-bin/defs.h b/bin/xbps-bin/defs.h index 42ca750f..98628dd9 100644 --- a/bin/xbps-bin/defs.h +++ b/bin/xbps-bin/defs.h @@ -61,6 +61,6 @@ int show_pkg_namedesc(prop_object_t, void *, bool *); int list_strings_in_array(prop_object_t, void *, bool *); int list_strings_sep_in_array(prop_object_t, void *, bool *); size_t find_longest_pkgver(prop_dictionary_t); -void print_package_line(const char *); +void print_package_line(const char *, bool); #endif /* !_XBPS_BIN_DEFS_H_ */ diff --git a/bin/xbps-bin/install.c b/bin/xbps-bin/install.c index 5187012d..93a419d7 100644 --- a/bin/xbps-bin/install.c +++ b/bin/xbps-bin/install.c @@ -183,9 +183,10 @@ show_package_list(prop_object_iterator_t iter, const char *match) prop_dictionary_get_cstring_nocopy(obj, "trans-action", &tract); if (strcmp(match, tract)) continue; - print_package_line(pkgver); + print_package_line(pkgver, false); } prop_object_iterator_reset(iter); + print_package_line(NULL, true); } static int diff --git a/bin/xbps-bin/remove.c b/bin/xbps-bin/remove.c index 8e6330c0..7ce52df3 100644 --- a/bin/xbps-bin/remove.c +++ b/bin/xbps-bin/remove.c @@ -93,7 +93,7 @@ xbps_autoremove_pkgs(bool yes, bool purge) "(as dependencies) and aren't needed anymore:\n\n"); while ((obj = prop_object_iterator_next(iter)) != NULL) { prop_dictionary_get_cstring_nocopy(obj, "pkgver", &pkgver); - print_package_line(pkgver); + print_package_line(pkgver, false); } prop_object_iterator_reset(iter); printf("\n\n"); @@ -168,7 +168,7 @@ xbps_remove_installed_pkgs(int argc, char **argv, bool yes, bool purge, for (x = 0; x < prop_array_count(sorted_pkgs); x++) { dict = prop_array_get(sorted_pkgs, x); prop_dictionary_get_cstring_nocopy(dict, "pkgver", &pkgver); - print_package_line(pkgver); + print_package_line(pkgver, false); } printf("\n\n"); if (!yes && !xbps_noyes("Do you want to continue?")) { diff --git a/bin/xbps-bin/util.c b/bin/xbps-bin/util.c index b6a19e28..e1150b15 100644 --- a/bin/xbps-bin/util.c +++ b/bin/xbps-bin/util.c @@ -247,7 +247,7 @@ list_strings_in_array(prop_object_t obj, void *arg, bool *loop_done) (void)loop_done; assert(prop_object_type(obj) == PROP_TYPE_STRING); - print_package_line(prop_string_cstring_nocopy(obj)); + print_package_line(prop_string_cstring_nocopy(obj), false); return 0; } @@ -266,11 +266,16 @@ list_strings_sep_in_array(prop_object_t obj, void *arg, bool *loop_done) } void -print_package_line(const char *str) +print_package_line(const char *str, bool reset) { static size_t cols; static bool first; + if (reset) { + cols = 0; + first = false; + return; + } cols += strlen(str) + 4; if (cols <= 80) { if (first == false) {