commit: ae999cf28829aad734b43255941b2c4449fc951b
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 26 13:54:22 2019 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Thu Sep 26 13:54:22 2019 +0000
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=ae999cf2
qlop: sort average output before display
sort the package lists using atom order for some consistency after set
usage
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
qlop.c | 29 +++++++++++++++++++++--------
1 file changed, 21 insertions(+), 8 deletions(-)
diff --git a/qlop.c b/qlop.c
index b75988a..4347699 100644
--- a/qlop.c
+++ b/qlop.c
@@ -279,6 +279,25 @@ static char *fmt_elapsedtime(struct qlop_mode *flags,
time_t e)
return _elapsed_buf;
}
+struct pkg_match {
+ char id[BUFSIZ];
+ depend_atom *atom;
+ time_t tbegin;
+ time_t time;
+ size_t cnt;
+};
+
+static int
+pkg_sort_cb(const void *l, const void *r)
+{
+ struct pkg_match *pl = *(struct pkg_match **)l;
+ struct pkg_match *pr = *(struct pkg_match **)r;
+ depend_atom *al = pl->atom;
+ depend_atom *ar = pr->atom;
+
+ return atom_compar_cb(al, ar);
+}
+
/* The format of the sync log has changed over time.
Old format:
@@ -348,14 +367,6 @@ static int do_emerge_log(
size_t parallel_emerge = 0;
bool all_atoms = false;
char afmt[BUFSIZ];
-
- struct pkg_match {
- char id[BUFSIZ];
- depend_atom *atom;
- time_t tbegin;
- time_t time;
- size_t cnt;
- };
struct pkg_match *pkg;
struct pkg_match *pkgw;
@@ -917,6 +928,7 @@ static int do_emerge_log(
DECLARE_ARRAY(avgs);
values_set(merge_averages, avgs);
+ xarraysort(avgs, pkg_sort_cb);
array_for_each(avgs, i, pkg) {
printf("%s: %s average for %s%zd%s merge%s\n",
atom_format(flags->fmt, pkg->atom),
@@ -928,6 +940,7 @@ static int do_emerge_log(
xarrayfree_int(avgs);
values_set(unmerge_averages, avgs);
+ xarraysort(avgs, pkg_sort_cb);
array_for_each(avgs, i, pkg) {
printf("%s: %s average for %s%zd%s unmerge%s\n",
atom_format(flags->fmt, pkg->atom),