ps: avoid -o stat to contain spaces. Closes 9631
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 2 Feb 2017 12:04:30 +0000 (13:04 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 2 Feb 2017 12:04:30 +0000 (13:04 +0100)
function                                             old     new   delta
procps_scan                                         1227    1236      +9

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
libbb/procps.c

index 4edc54d486202498f2759ea1ec5139febe5bd4f3..b52c0f51b71c51415590a865f5ecbbc86a20dd37 100644 (file)
@@ -370,6 +370,7 @@ procps_status_t* FAST_FUNC procps_scan(procps_status_t* sp, int flags)
                        | PSSCAN_TTY | PSSCAN_NICE
                        | PSSCAN_CPU)
                ) {
+                       int s_idx;
                        char *cp, *comm1;
                        int tty;
 #if !ENABLE_FEATURE_FAST_TOP
@@ -468,17 +469,20 @@ procps_status_t* FAST_FUNC procps_scan(procps_status_t* sp, int flags)
 #if ENABLE_FEATURE_PS_ADDITIONAL_COLUMNS
                        sp->niceness = tasknice;
 #endif
-
-                       if (sp->vsz == 0 && sp->state[0] != 'Z')
+                       sp->state[1] = ' ';
+                       sp->state[2] = ' ';
+                       s_idx = 1;
+                       if (sp->vsz == 0 && sp->state[0] != 'Z') {
+                               /* not sure what the purpose of this flag */
                                sp->state[1] = 'W';
-                       else
-                               sp->state[1] = ' ';
-                       if (tasknice < 0)
-                               sp->state[2] = '<';
-                       else if (tasknice) /* > 0 */
-                               sp->state[2] = 'N';
-                       else
-                               sp->state[2] = ' ';
+                               s_idx = 2;
+                       }
+                       if (tasknice != 0) {
+                               if (tasknice < 0)
+                                       sp->state[s_idx] = '<';
+                               else /* > 0 */
+                                       sp->state[s_idx] = 'N';
+                       }
                }
 
 #if ENABLE_FEATURE_TOPMEM