diff options
| -rw-r--r-- | tools/hi-q.c | 17 | 
1 files changed, 14 insertions, 3 deletions
diff --git a/tools/hi-q.c b/tools/hi-q.c index 8f0fb93..a065ad0 100644 --- a/tools/hi-q.c +++ b/tools/hi-q.c @@ -309,15 +309,26 @@ int main(int argc, char** argv, char const * const * env) {    for (int ii=0; ii<nkids-1; ii++){        /* loop over N-1 kids */                                          /* not last kid */ -  #ifdef testing      blurb(ii, kidpid);  #else      somekid = waitpid(kidpid[ii], &kidstatus, WUNTRACED);      if (somekid) {}             // avoid silly compiler warning      if (WIFEXITED(kidstatus)) { -      if (WEXITSTATUS(kidstatus) == 1) panic(ex_spam); -      if (WEXITSTATUS(kidstatus) != 0) panic(ex_syserr); +      int sts = WEXITSTATUS(kidstatus); +      if (sts == 1) { +        cerr << "hi-q says: kid " << ii  +             << " i.e. '" << filter[ii][0] << "' reports spam." +             << endl; +        panic(ex_spam); +      } +      if (sts != 0) { +        cerr << "hi-q says: kid " << ii  +             << " i.e. '" << filter[ii][0] << "'" +             << " suffered an error: " << sts +             << endl; +        panic(ex_syserr); +      }        /* otherwise kidstatus==0 and we fall through */      }      else panic(ex_syserr);      // any kill, not a normal exit  | 
