]> granicus.if.org Git - procps-ng/commitdiff
top: modify 'focus' strv function to display 'n/a' too
authorJim Warner <james.warner@comcast.net>
Tue, 17 May 2022 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@dropbear.xyz>
Wed, 18 May 2022 11:30:56 +0000 (21:30 +1000)
This commit just brings that 'bot_focus_strv' function
up to the same standard as the vanilla 'bot_focus_str'
guy. Namely, if there is no cmdline or environ for any
process, that bottom window will now display an 'n/a'.

[ with the nature of those string vectors, it wasn't ]
[ the same simple process found for regular strings. ]

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

index 2a980388ca0e2cd44506616706003be730b68661..03d6544686735ed90596b4906be8ee5361fd9b3d 100644 (file)
--- a/top/top.c
+++ b/top/top.c
@@ -4982,9 +4982,11 @@ static int bot_focus_strv (const char *hdr, const char **strv) {
    if (strv) {
       // we're a little careless with overhead here (it's a one time cost)
       memset(Bot_buf, '\0', sizeof(Bot_buf));
-      n = (void*)&strv[0] - (void*)strv[0];
+      n = (char*)&strv[0] - strv[0];
       if (n >= sizeof(Bot_buf)) n = sizeof(Bot_buf) - 1;
       memcpy(Bot_buf, strv[0], n);
+      if (!Bot_buf[0] || (!strcmp(Bot_buf, "-") && n <= sizeof(char*)))
+         strcpy(Bot_buf, "n/a");
       for (nsav= 0, p = Bot_buf; strv[nsav] != NULL; nsav++) {
          p += strlen(strv[nsav]) + 1;
          if ((p - Bot_buf) >= sizeof(Bot_buf))