]> granicus.if.org Git - procps-ng/commitdiff
slabtop: for run_once switch (-o), output all slabinfo
authorJim Warner <james.warner@comcast.net>
Mon, 27 Nov 2017 06:00:00 +0000 (00:00 -0600)
committerCraig Small <csmall@enc.com.au>
Wed, 20 Dec 2017 10:07:49 +0000 (21:07 +1100)
It doesn't make sense to restrict the number of output
lines to the total of terminal rows when using the run
once command line switch. And, in fact, that's how the
newlib version of slabtop works. Everything is output.

So, this commit places both versions on equal footing.

[ it was even worse if the switch was used in a pipe ]
[ since only 23 lines would have then been displayed ]

Signed-off-by: Jim Warner <james.warner@comcast.net>
slabtop.c

index ec7515ded6a22b812fdacc218ed3330d9acfded0..c0bf54f716c1d09655d0131b4421b237dc66486e 100644 (file)
--- a/slabtop.c
+++ b/slabtop.c
@@ -21,6 +21,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#include <limits.h>
 #include <locale.h>
 #include <stdlib.h>
 #include <stdio.h>
@@ -47,6 +48,7 @@
 
 #define DEF_SORT_FUNC          sort_nr_objs
 
+static int run_once;
 static unsigned short cols, rows;
 static struct termios saved_tty;
 static long delay = 3;
@@ -176,6 +178,8 @@ static void term_size(int unusused __attribute__ ((__unused__)))
                cols = 80;
                rows = 24;
        }
+       if (run_once)
+               rows = USHRT_MAX;
 }
 
 static void sigint_handler(int unused __attribute__ ((__unused__)))
@@ -289,7 +293,7 @@ int main(int argc, char *argv[])
        int is_tty, o;
        unsigned short old_rows;
        struct slab_info *slab_list = NULL;
-       int run_once = 0, retval = EXIT_SUCCESS;
+       int retval = EXIT_SUCCESS;
 
        static const struct option longopts[] = {
                { "delay",      required_argument, NULL, 'd' },