diff options
author | tjr <tjr@FreeBSD.org> | 2002-06-04 14:37:13 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2002-06-04 14:37:13 +0000 |
commit | ec349498c5d22ead622e5bc817d091331e23684f (patch) | |
tree | 15756f859c62d293952f03d3a285152df4e20ba3 /bin/sh | |
parent | ba4116c51497eef4f6893f1b609e47fd89626448 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | bin/sh/jobs.c | 8 |
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)); |