ps: fix buglet, add microoptimization
authorDenis Vlasenko <vda.linux@googlemail.com>
Mon, 18 Dec 2006 14:20:01 +0000 (14:20 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Mon, 18 Dec 2006 14:20:01 +0000 (14:20 -0000)
procps/ps.c

index e18bd2a..12f6b65 100644 (file)
@@ -216,18 +216,16 @@ static void format_process(const procps_status_t *ps)
                // POSIX: Any field need not be meaningful in all
                // implementations. In such a case a hyphen ( '-' )
                // should be output in place of the field value.
-               if (!*p) {
-                       *p++ = '-';
-                       *p = '\0';
+               if (!p[0]) {
+                       p[0] = '-';
+                       p[1] = '\0';
                }
                len = strlen(p);
                p += len;
                len = out[i].width - len + 1;
                if (++i == out_cnt) /* do not pad last field */
                        break;
-               while (len--)
-                       *p++ = ' ';
-               *p = '\0';
+               p += sprintf(p, "%*s", len, "");
        }
        printf("%.*s\n", terminal_width, buffer);
 }