pgrep naively appends the delimiter to all PIDs including the last

e.g. "pgrep -d, getty" outputs "1399,1386,1309,1308,1307,1306,1305,1302,"
Ensure the list is correctly delimited by suppressing the emission of the
delimiter after the final PID.

Reviewed by:	imp, kib
MFC after:	1 week
Sponsored by:	Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D8537
This commit is contained in:
Lawrence Stewart 2017-08-08 00:31:10 +00:00
parent 79f39c6aa1
commit 27181846bb

View File

@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$");
#include <sys/user.h>
#include <assert.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
@ -656,10 +657,12 @@ killact(const struct kinfo_proc *kp)
static int
grepact(const struct kinfo_proc *kp)
{
static bool first = true;
show_process(kp);
if (!quiet)
if (!quiet && !first)
printf("%s", delim);
show_process(kp);
first = false;
return (1);
}