chiark / gitweb /
delta: draw arrows with draw_special_char()
[elogind.git] / src / shared / cgroup-show.c
index 83cc0731b852d2357b6215da6ad8252bf9a5db3a..c862ee91f6091bcb52213500c1a385725b71d747 100644 (file)
@@ -63,9 +63,9 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi
         pid_width = DECIMAL_STR_WIDTH(biggest);
 
         /* And sort */
-        qsort(pids, n_pids, sizeof(pid_t), compare);
+        qsort_safe(pids, n_pids, sizeof(pid_t), compare);
 
-        if(flags & OUTPUT_FULL_WIDTH)
+        if (flags & OUTPUT_FULL_WIDTH)
                 n_columns = 0;
         else {
                 if (n_columns > pid_width+2)
@@ -74,19 +74,19 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi
                         n_columns = 20;
         }
         for (i = 0; i < n_pids; i++) {
-                char *t = NULL;
+                _cleanup_free_ char *t = NULL;
 
                 get_process_cmdline(pids[i], n_columns, true, &t);
 
-                printf("%s%s%*lu %s\n",
-                       prefix,
-                       draw_special_char(extra ? DRAW_TRIANGULAR_BULLET :
-                                         ((more || i < n_pids-1) ? DRAW_TREE_BRANCH : DRAW_TREE_RIGHT)),
+                if (extra)
+                        printf("%s%s ", prefix, draw_special_char(DRAW_TRIANGULAR_BULLET));
+                else
+                        printf("%s%s", prefix, draw_special_char(((more || i < n_pids-1) ? DRAW_TREE_BRANCH : DRAW_TREE_RIGHT)));
+
+                printf("%*lu %s\n",
                        pid_width,
                        (unsigned long) pids[i],
                        strna(t));
-
-                free(t);
         }
 }
 
@@ -96,7 +96,7 @@ static int show_cgroup_one_by_path(const char *path, const char *prefix, unsigne
         _cleanup_fclose_ FILE *f = NULL;
         size_t n = 0, n_allocated = 0;
         _cleanup_free_ pid_t *pids = NULL;
-        char *p = NULL;
+        _cleanup_free_ char *p = NULL;
         pid_t pid;
         int r;
 
@@ -104,13 +104,8 @@ static int show_cgroup_one_by_path(const char *path, const char *prefix, unsigne
         if (r < 0)
                 return r;
 
-        fn = strappend(p, "/cgroup.procs");
-        free(p);
-        if (!fn)
-                return -ENOMEM;
-
+        fn = strappenda(p, "/cgroup.procs");
         f = fopen(fn, "re");
-        free(fn);
         if (!f)
                 return -errno;
 
@@ -185,10 +180,10 @@ int show_cgroup_by_path(const char *path, const char *prefix, unsigned n_columns
 
                 if (last) {
                         printf("%s%s%s\n", prefix, draw_special_char(DRAW_TREE_BRANCH),
-                                           path_get_file_name(last));
+                                           basename(last));
 
                         if (!p1) {
-                                p1 = strappend(prefix, draw_special_char(DRAW_TREE_VERT));
+                                p1 = strappend(prefix, draw_special_char(DRAW_TREE_VERTICAL));
                                 if (!p1)
                                         return -ENOMEM;
                         }
@@ -209,7 +204,7 @@ int show_cgroup_by_path(const char *path, const char *prefix, unsigned n_columns
 
         if (last) {
                 printf("%s%s%s\n", prefix, draw_special_char(DRAW_TREE_RIGHT),
-                                   path_get_file_name(last));
+                                   basename(last));
 
                 if (!p2) {
                         p2 = strappend(prefix, "  ");
@@ -241,7 +236,6 @@ static int show_extra_pids(const char *controller, const char *path, const char
         unsigned i, j;
         int r;
 
-        assert(controller);
         assert(path);
 
         if (n_pids <= 0)