On Sat, Oct 12, 2019 at 09:53:44AM -0600, Theo de Raadt wrote: > I am suggesting you put the spaces after the cpu#. Is this better?
4 CPUs: 0.0% user, 0.0% nice, 0.0% sys, 0.0% spin, 0.0% intr, 100% idle CPU 0 : 0.0% user, 0.0% nice, 0.0% sys, 0.0% spin, 0.0% intr, 100% idle CPU 1 : 0.0% user, 0.0% nice, 0.0% sys, 0.0% spin, 0.0% intr, 100% idle CPU 2 : 0.0% user, 0.0% nice, 0.0% sys, 0.0% spin, 0.0% intr, 100% idle CPU 3 : 1.1% user, 0.0% nice, 0.0% sys, 0.0% spin, 0.0% intr, 98.9% idle Index: display.c =================================================================== RCS file: /cvs/src/usr.bin/top/display.c,v retrieving revision 1.60 diff -u -p -r1.60 display.c --- display.c 8 Oct 2019 07:26:59 -0000 1.60 +++ display.c 12 Oct 2019 16:48:14 -0000 @@ -72,7 +72,7 @@ FILE *debug; static int display_width = MAX_COLS; -static char *cpustates_tag(int); +static void cpustates_tag(int); static int string_count(char **); static void summary_format(char *, size_t, int *, char **); static int readlinedumb(char *, int); @@ -335,44 +335,16 @@ i_procstates(int total, int *states, int /* cpustates_tag() calculates the correct tag to use to label the line */ -static char * +static void cpustates_tag(int cpu) { if (screen_length > 3 || !smart_terminal) { - static char *tag; - static int cpulen, old_width; - int i; - - if (cpulen == 0 && ncpu > 1) { - /* compute length of the cpu string */ - for (i = ncpu; i > 0; cpulen++, i /= 10) - continue; - } - - if (old_width == screen_width) { - if (ncpu > 1) { - /* just store the cpu number in the tag */ - i = tag[3 + cpulen]; - snprintf(tag + 3, cpulen + 1, "%.*d", cpulen, cpu); - tag[3 + cpulen] = i; - } - } else { - /* - * use a long tag if it will fit, otherwise use short one. - */ - free(tag); - if (cpustate_total_length + 10 + cpulen >= screen_width) - i = asprintf(&tag, "CPU%.*d: ", cpulen, cpu); - else - i = asprintf(&tag, "CPU%.*d states: ", cpulen, cpu); - if (i == -1) - tag = NULL; - else - old_width = screen_width; - } - return (tag); + if (ncpu > 1) + printwp("CPU%3d : ", cpu); + else + addstrp("CPU : "); } else - return ("\0"); + addstrp("\0"); } void @@ -438,7 +410,7 @@ i_cpustates(int64_t *ostates, int *onlin if (screen_length > 2 + cpu_line || !smart_terminal) { move(2 + cpu_line, 0); clrtoeol(); - addstrp(cpustates_tag(cpu)); + cpustates_tag(cpu); while ((thisname = *names++) != NULL) { i