#include "util.h"
#include "macro.h"
+#include "path-util.h"
#include "cgroup-util.h"
#include "cgroup-show.h"
}
static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsigned n_columns, bool extra, bool more, bool kernel_threads) {
- unsigned i, m;
+ unsigned i, m, pid_width;
pid_t biggest = 0;
/* Filter duplicates */
pids[m++] = pids[i];
}
n_pids = m;
+ pid_width = ilog10(biggest);
/* And sort */
qsort(pids, n_pids, sizeof(pid_t), compare);
- if (n_columns > 8)
- n_columns -= 8;
+ if (n_columns > pid_width+2)
+ n_columns -= pid_width+2;
else
n_columns = 20;
printf("%s%s %*lu %s\n",
prefix,
- extra ? "\342\200\243" : ((more || i < n_pids-1) ? "\342\224\234" : "\342\224\224"),
- (int) ilog10(biggest),
+ draw_special_char(extra ? DRAW_TRIANGULAR_BULLET :
+ ((more || i < n_pids-1) ? DRAW_BOX_VERT_AND_RIGHT : DRAW_BOX_UP_AND_RIGHT)),
+ pid_width,
(unsigned long) pids[i],
strna(t));
}
if (last) {
- printf("%s\342\224\234 %s\n", prefix, file_name_from_path(last));
+ printf("%s%s %s\n", prefix, draw_special_char(DRAW_BOX_VERT_AND_RIGHT),
+ path_get_file_name(last));
if (!p1) {
- p1 = strappend(prefix, "\342\224\202 ");
+ p1 = strjoin(prefix, draw_special_char(DRAW_BOX_VERT), " ", NULL);
if (!p1) {
free(k);
r = -ENOMEM;
show_cgroup_one_by_path(path, prefix, n_columns, !!last, kernel_threads);
if (last) {
- printf("%s\342\224\224 %s\n", prefix, file_name_from_path(last));
+ printf("%s%s %s\n", prefix, draw_special_char(DRAW_BOX_UP_AND_RIGHT),
+ path_get_file_name(last));
if (!p2) {
p2 = strappend(prefix, " ");