can't reset it if not set up
[unix-history] / usr / src / old / make / doname.c
index 3f1237f..870a4d0 100644 (file)
@@ -1,6 +1,7 @@
-static char *sccsid = "@(#)doname.c    4.6 (Berkeley) 85/04/16";
+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;
@@ -26,7 +29,7 @@ struct nameblock *p1, *p2;
 struct shblock *implcom, *explcom;
 register struct lineblock *lp;
 struct lineblock *lp1, *lp2;
 struct shblock *implcom, *explcom;
 register struct lineblock *lp;
 struct lineblock *lp1, *lp2;
-char sourcename[100], prefix[100], temp[100], concsuff[20];
+char sourcename[BUFSIZ], prefix[BUFSIZ], temp[BUFSIZ], concsuff[20];
 char *pnamep, *p1namep, *cp;
 char *mkqlist();
 struct chain *qchain, *appendq();
 char *pnamep, *p1namep, *cp;
 char *mkqlist();
 struct chain *qchain, *appendq();
@@ -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");