-
-/*
- * pidstatus.c -- report child's status
+/* pidstatus.c -- report child's status
*
* This code is Copyright (c) 2002, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
#include <h/mh.h>
-/*
- * auto-generated header
- */
-#include <sigmsg.h>
-
#ifndef WTERMSIG
# define WTERMSIG(s) ((int)((s) & 0x7F))
#endif
pidstatus (int status, FILE *fp, char *cp)
{
int signum;
+ char *signame;
/*
* I have no idea what this is for (rc)
fprintf (fp, "exit %d\n", signum);
}
return signum;
- } else if (WIFSIGNALED(status)) {
+ }
+
+ if (WIFSIGNALED(status)) {
/* If child process terminated due to receipt of a signal */
signum = WTERMSIG(status);
if (signum != SIGINT) {
if (cp)
fprintf (fp, "%s: ", cp);
fprintf (fp, "signal %d", signum);
- if (signum >= 0 && signum < (int) sizeof(sigmsg) &&
- sigmsg[signum] != NULL)
- fprintf (fp, " (%s%s)\n", sigmsg[signum],
+ errno = 0;
+ signame = strsignal(signum);
+ if (errno)
+ signame = NULL;
+ if (signame)
+ fprintf (fp, " (%s%s)\n", signame,
WCOREDUMP(status) ? ", core dumped" : "");
else
fprintf (fp, "%s\n", WCOREDUMP(status) ? " (core dumped)" : "");