]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
busctl: use the pager everywhere
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 7 Apr 2020 07:39:46 +0000 (09:39 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 10 Apr 2020 14:40:29 +0000 (16:40 +0200)
There is no reason to assume that the user doesn't want the pager
even if they are looking at xml output or such.

src/busctl/busctl.c

index 3d03eb37a633fb12c9935ed1a03f12ae77408bb9..043aa5717f08acc7cea7a59c45246b454b4f55bb 100644 (file)
@@ -354,8 +354,7 @@ static int list_bus_names(int argc, char **argv, void *userdata) {
                         return log_error_errno(r, "Failed to fill line: %m");
         }
 
-        if (IN_SET(arg_json, JSON_OFF, JSON_PRETTY))
-                (void) pager_open(arg_pager_flags);
+        (void) pager_open(arg_pager_flags);
 
         if (arg_json)
                 r = table_print_json(table, stdout, (arg_json == JSON_PRETTY ? JSON_FORMAT_PRETTY : JSON_FORMAT_NEWLINE) | JSON_FORMAT_COLOR_AUTO);
@@ -1004,6 +1003,7 @@ static int introspect(int argc, char **argv, void *userdata) {
 
         if (arg_xml_interface) {
                 /* Just dump the received XML and finish */
+                (void) pager_open(arg_pager_flags);
                 puts(xml);
                 return 0;
         }
@@ -1088,17 +1088,14 @@ static int introspect(int argc, char **argv, void *userdata) {
                         return bus_log_parse_error(r);
         }
 
-        (void) pager_open(arg_pager_flags);
-
-        name_width = STRLEN("NAME");
-        type_width = STRLEN("TYPE");
-        signature_width = STRLEN("SIGNATURE");
-        result_width = STRLEN("RESULT/VALUE");
+        name_width = strlen("NAME");
+        type_width = strlen("TYPE");
+        signature_width = strlen("SIGNATURE");
+        result_width = strlen("RESULT/VALUE");
 
         sorted = newa(Member*, set_size(members));
 
         SET_FOREACH(m, members, i) {
-
                 if (argv[3] && !streq(argv[3], m->interface))
                         continue;
 
@@ -1123,6 +1120,8 @@ static int introspect(int argc, char **argv, void *userdata) {
 
         typesafe_qsort(sorted, k, member_compare_funcp);
 
+        (void) pager_open(arg_pager_flags);
+
         if (arg_legend) {
                 printf("%-*s %-*s %-*s %-*s %s\n",
                        (int) name_width, "NAME",
@@ -1375,6 +1374,8 @@ static int status(int argc, char **argv, void *userdata) {
         if (r < 0)
                 return r;
 
+        (void) pager_open(arg_pager_flags);
+
         if (!isempty(argv[1])) {
                 r = parse_pid(argv[1], &pid);
                 if (r < 0)