print exit status in human readable form
authorSerge ??? <serge@ucbvax.Berkeley.EDU>
Thu, 19 Sep 1985 06:22:56 +0000 (22:22 -0800)
committerSerge ??? <serge@ucbvax.Berkeley.EDU>
Thu, 19 Sep 1985 06:22:56 +0000 (22:22 -0800)
SCCS-vsn: old/make/doname.c 4.8

usr/src/old/make/doname.c

index 059bcba..870a4d0 100644 (file)
@@ -1,6 +1,7 @@
-static char *sccsid = "@(#)doname.c    4.7 (Berkeley) 85/08/30";
+static char *sccsid = "@(#)doname.c    4.8 (Berkeley) 85/09/18";
 #include "defs"
 #include <strings.h>
 #include "defs"
 #include <strings.h>
+#include <signal.h>
 
 /*  BASIC PROCEDURE.  RECURSIVE.  */
 
 
 /*  BASIC PROCEDURE.  RECURSIVE.  */
 
@@ -11,6 +12,8 @@ p->done = 2   file already exists in current state
 p->done = 3   file make failed
 */
 
 p->done = 3   file make failed
 */
 
+extern char *sys_siglist[];
+
 doname(p, reclevel, tval)
 register struct nameblock *p;
 int reclevel;
 doname(p, reclevel, tval)
 register struct nameblock *p;
 int reclevel;
@@ -266,9 +269,17 @@ if(noexflag) return(0);
 
 if( status = dosys(comstring, nohalt) )
        {
 
 if( status = dosys(comstring, nohalt) )
        {
-       if( status>>8 )
-               printf("*** Error code %d", status>>8 );
-       else    printf("*** Termination code %d", status );
+       unsigned sig = status & 0177;
+       if( sig ) {
+               if (sig < NSIG && sys_siglist[sig] != NULL &&
+                   *sys_siglist[sig] != '\0')
+                       printf("*** %s", sys_siglist[sig]);
+               else
+                       printf("*** Signal %d", sig);
+               if (status & 0200)
+                       printf(" - core dumped");
+       } else
+               printf("*** Exit %d", status>>8 );
 
        if(nohalt) printf(" (ignored)\n");
        else    printf("\n");
 
        if(nohalt) printf(" (ignored)\n");
        else    printf("\n");