summaryrefslogtreecommitdiffstats
path: root/bin/sh/jobs.c
diff options
context:
space:
mode:
authortjr <tjr@FreeBSD.org>2002-06-04 14:37:13 +0000
committertjr <tjr@FreeBSD.org>2002-06-04 14:37:13 +0000
commitec349498c5d22ead622e5bc817d091331e23684f (patch)
tree15756f859c62d293952f03d3a285152df4e20ba3 /bin/sh/jobs.c
parentba4116c51497eef4f6893f1b609e47fd89626448 (diff)
downloadFreeBSD-src-ec349498c5d22ead622e5bc817d091331e23684f.zip
FreeBSD-src-ec349498c5d22ead622e5bc817d091331e23684f.tar.gz
Don't output `state' and `current' fields for processes that aren't
leaders in -l option to jobs(1).
Diffstat (limited to 'bin/sh/jobs.c')
-rw-r--r--bin/sh/jobs.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/bin/sh/jobs.c b/bin/sh/jobs.c
index b01515a..2adcafe 100644
--- a/bin/sh/jobs.c
+++ b/bin/sh/jobs.c
@@ -330,9 +330,9 @@ showjob(struct job *jp, int sformat, int lformat)
}
if (!lformat && ps != jp->ps)
goto skip;
- if (jobno == curr)
+ if (jobno == curr && ps == jp->ps)
c = '+';
- else if (jobno == prev)
+ else if (jobno == prev && ps == jp->ps)
c = '-';
else
c = ' ';
@@ -348,7 +348,9 @@ showjob(struct job *jp, int sformat, int lformat)
col += strlen(s);
}
s[0] = '\0';
- if (ps->status == -1) {
+ if (ps != jp->ps) {
+ *s = '\0';
+ } else if (ps->status == -1) {
strcpy(s, "Running");
} else if (WIFEXITED(ps->status)) {
fmtstr(s, 64, "Exit %d", WEXITSTATUS(ps->status));
OpenPOWER on IntegriCloud