ps: restore missing space when environment is displayed

This commit restores the missing space between command
lines and the environment when the later is being
displayed.  Below is a brief history of that elusive
character.

commit bb4f08ba29
Date:   Thu Aug 11 07:42:14 2011 +1000
   The ps program was altered for improved args/comm
   compliance.  At this time, the needed space was
   present due to a buglet in the new library
   read_unvectored function used by fill_cmdline_cvt.

commit a5881b5a4e
Date:   Thu Dec 8 10:19:38 2011 -0600
   The trailing space was eliminated so that the
   file2strvec and fill_cmdline_cvt returned
   command lines contained no trailing space.

   However, this created a buglet when control group
   hierarchies were displayed and the final cgroup
   was empty.

   This is also where the undetected ps buglet was
   created.

commit c3a1239efe
Date:   Sun Dec 11 12:00:50 2011 -0600
   The control group anomaly was fixed but the impact
   on ps args/environ was still not detected.

Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
Jim Warner 2012-06-25 23:59:59 -05:00 committed by Craig Small
parent f12277c74d
commit f4b6de1136

View File

@ -384,8 +384,11 @@ static int pr_args(char *restrict const outbuf, const proc_t *restrict const pp)
endp += escape_command(endp, pp, OUTBUF_SIZE, &rightward, ESC_DEFUNCT);
if(bsd_e_option && rightward>1) {
if(pp->environ && *pp->environ)
if(pp->environ && *pp->environ) {
*endp++ = ' ';
rightward--;
endp += escape_strlist(endp, pp->environ, OUTBUF_SIZE, &rightward);
}
}
return max_rightward-rightward;
}
@ -408,8 +411,11 @@ static int pr_comm(char *restrict const outbuf, const proc_t *restrict const pp)
endp += escape_command(endp, pp, OUTBUF_SIZE, &rightward, ESC_DEFUNCT);
if(bsd_e_option && rightward>1) {
if(pp->environ && *pp->environ)
if(pp->environ && *pp->environ) {
*endp++ = ' ';
rightward--;
endp += escape_strlist(endp, pp->environ, OUTBUF_SIZE, &rightward);
}
}
return max_rightward-rightward;
}