[git commit] top: improve large PID display in memory ('s') mode

Denys Vlasenko vda.linux at googlemail.com
Thu May 12 09:44:47 UTC 2022


commit: https://git.busybox.net/busybox/commit/?id=8d67007a4dedef77dd0cf757bcc0e6fbee267ced
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
display_topmem_process_list                          530     564     +34

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 procps/top.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/procps/top.c b/procps/top.c
index 744f20e9b..ff775422c 100644
--- a/procps/top.c
+++ b/procps/top.c
@@ -879,8 +879,11 @@ static NOINLINE void display_topmem_process_list(int lines_rem, int scr_width)
 		lines_rem = ntop - G_scroll_ofs;
 	while (--lines_rem >= 0) {
 		/* PID VSZ VSZRW RSS (SHR) DIRTY (SHR) COMMAND */
-		ulltoa6_and_space(s->pid     , &line_buf[0*6]);
+		int n = sprintf(line_buf, "%5u ", s->pid);
 		ulltoa6_and_space(s->vsz     , &line_buf[1*6]);
+		if (n > 7 || (n == 7 && line_buf[6] != ' '))
+			/* PID and VSZ are clumped together, truncate PID */
+			line_buf[5] = '.';
 		ulltoa6_and_space(s->vszrw   , &line_buf[2*6]);
 		ulltoa6_and_space(s->rss     , &line_buf[3*6]);
 		ulltoa6_and_space(s->rss_sh  , &line_buf[4*6]);


More information about the busybox-cvs mailing list