From 06045cf889437d5f9cd7d3c0d9e16f624092007a Mon Sep 17 00:00:00 2001 From: tg Date: Fri, 20 Feb 2015 13:08:28 +0000 Subject: [PATCH] =?UTF-8?q?more=20IRC=20deliberation=20with=20igli=20(let?= =?UTF-8?q?=E2=80=99s=20hope=20the=20=E2=80=9Cconst=E2=80=9D=20works),=20p?= =?UTF-8?q?lus=20style=20advice=20from=20Kernighan=E2=80=99s=20writs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jobs.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/jobs.c b/jobs.c index 9f517a3..64495fd 100644 --- a/jobs.c +++ b/jobs.c @@ -23,7 +23,7 @@ #include "sh.h" -__RCSID("$MirOS: src/bin/mksh/jobs.c,v 1.107 2015/02/20 12:43:22 tg Exp $"); +__RCSID("$MirOS: src/bin/mksh/jobs.c,v 1.108 2015/02/20 13:08:28 tg Exp $"); #if HAVE_KILLPG #define mksh_killpg killpg @@ -1111,6 +1111,7 @@ j_waitj(Job *j, int flags, const char *where) { + Proc *p; int rv; #ifdef MKSH_NO_SIGSUSPEND sigset_t omask; @@ -1238,9 +1239,10 @@ j_waitj(Job *j, j_systime = j->systime; rv = j->status; - if ((flags & JW_PIPEST) && (j->proc_list != NULL)) { + if (!(p = j->proc_list)) { + /* nothing */; + } else if (flags & JW_PIPEST) { uint32_t num = 0; - Proc *p = j->proc_list; struct tbl *vp; unset(vp_pipest, 1); @@ -1270,14 +1272,13 @@ j_waitj(Job *j, rv = vp->val.i; p = p->next; } - } else if (Flag(FPIPEFAIL) && (j->proc_list != NULL)) { - Proc *p = j->proc_list; - int i; - + } else if (Flag(FPIPEFAIL)) { do { - if ((i = proc_errorlevel(p))) + const int i = proc_errorlevel(p); + + if (i) rv = i; - } while ((p = p->next) != NULL); + } while ((p = p->next)); } if (!(flags & JW_ASYNCNOTIFY)