OSDN Git Service

Revert commit e02e41373ea3, we're always initializing the TNAME string
authorRob Landley <rob@landley.net>
Fri, 10 Jun 2016 22:58:56 +0000 (17:58 -0500)
committerRob Landley <rob@landley.net>
Fri, 10 Jun 2016 22:58:56 +0000 (17:58 -0500)
field (that's the ptb/tb switching in get_ps) so it's never blank, so
this doesn't trigger. (Conditionally initializing it would save runtime
memory, but at the expense of more complex code.)

toys/posix/ps.c

index 9402b77..74f8954 100644 (file)
@@ -443,24 +443,13 @@ static char *string_field(struct carveup *tb, struct strawberry *field)
     sl *= -1;
     // First string slot has offset 0, others are offset[-slot-2]
     if (--sl) out += tb->offset[--sl];
-    // If TNAME is blank, show ARGS instead
-    if (which==PS_ARGS && !*out)
-      out = tb->str+tb->offset[-2-typos[which = PS_ARGS].slot];
     if (which==PS_ARGS || which==PS_NAME) {
-      int i, j;
+      int i;
 
       s = out;
       for (i = 0; (which==PS_ARGS) ? i < slot[SLOT_argv0len] : out[i]; i++)
         if (out[i] == '/') s = out+i+1;
-      i = s - out;
       out = s;
-      if (which != field->which) {
-        j = slot[SLOT_argv0len]-i;
-        if (j > 259) j = 259;
-        memcpy(buf, out+i, j);
-        buf[j] = 0;
-        out = buf;
-      }
     }
     if (which>=PS_COMM && !*out) sprintf(out = buf, "[%s]", tb->str);