summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorgjb <gjb@FreeBSD.org>2016-03-02 23:53:08 +0000
committergjb <gjb@FreeBSD.org>2016-03-02 23:53:08 +0000
commit7f622b840367101a59fea39a608e273d9e888eae (patch)
tree8fe757212a72898d1edb6ddfe6b669c77c2a4693 /bin
parent6677e930b3cdc63da59696069af377e242ec1d1f (diff)
downloadFreeBSD-src-7f622b840367101a59fea39a608e273d9e888eae.zip
FreeBSD-src-7f622b840367101a59fea39a608e273d9e888eae.tar.gz
MFH
Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'bin')
-rw-r--r--bin/sh/jobs.c36
-rw-r--r--bin/sh/parser.c2
2 files changed, 19 insertions, 19 deletions
diff --git a/bin/sh/jobs.c b/bin/sh/jobs.c
index b531231..b5d084c 100644
--- a/bin/sh/jobs.c
+++ b/bin/sh/jobs.c
@@ -322,8 +322,8 @@ static void
showjob(struct job *jp, int mode)
{
char s[64];
- char statestr[64];
- const char *sigstr;
+ char statebuf[16];
+ const char *statestr, *coredump;
struct procstat *ps;
struct job *j;
int col, curr, i, jobno, prev, procno;
@@ -339,9 +339,10 @@ showjob(struct job *jp, int mode)
prev = j - jobtab + 1;
}
#endif
+ coredump = "";
ps = jp->ps + jp->nprocs - 1;
if (jp->state == 0) {
- strcpy(statestr, "Running");
+ statestr = "Running";
#if JOBS
} else if (jp->state == JOBSTOPPED) {
while (!WIFSTOPPED(ps->status) && ps > jp->ps)
@@ -350,27 +351,25 @@ showjob(struct job *jp, int mode)
i = WSTOPSIG(ps->status);
else
i = -1;
- sigstr = strsignal(i);
- if (sigstr != NULL)
- strcpy(statestr, sigstr);
- else
- strcpy(statestr, "Suspended");
+ statestr = strsignal(i);
+ if (statestr == NULL)
+ statestr = "Suspended";
#endif
} else if (WIFEXITED(ps->status)) {
if (WEXITSTATUS(ps->status) == 0)
- strcpy(statestr, "Done");
- else
- fmtstr(statestr, 64, "Done(%d)",
+ statestr = "Done";
+ else {
+ fmtstr(statebuf, sizeof(statebuf), "Done(%d)",
WEXITSTATUS(ps->status));
+ statestr = statebuf;
+ }
} else {
i = WTERMSIG(ps->status);
- sigstr = strsignal(i);
- if (sigstr != NULL)
- strcpy(statestr, sigstr);
- else
- strcpy(statestr, "Unknown signal");
+ statestr = strsignal(i);
+ if (statestr == NULL)
+ statestr = "Unknown signal";
if (WCOREDUMP(ps->status))
- strcat(statestr, " (core dumped)");
+ coredump = " (core dumped)";
}
for (ps = jp->ps ; procno > 0 ; ps++, procno--) { /* for each process */
@@ -399,7 +398,8 @@ showjob(struct job *jp, int mode)
}
if (ps == jp->ps) {
out1str(statestr);
- col += strlen(statestr);
+ out1str(coredump);
+ col += strlen(statestr) + strlen(coredump);
}
do {
out1c(' ');
diff --git a/bin/sh/parser.c b/bin/sh/parser.c
index d324d88..da6defd 100644
--- a/bin/sh/parser.c
+++ b/bin/sh/parser.c
@@ -1671,7 +1671,7 @@ varname:
c = pgetc_linecont();
} while (is_digit(c));
} else {
- STPUTC(c, out);
+ USTPUTC(c, out);
c = pgetc_linecont();
}
} else if (is_special(c)) {
OpenPOWER on IntegriCloud