[BACK]Return to engine.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / make

Diff for /src/usr.bin/make/engine.c between version 1.37 and 1.38

version 1.37, 2012/10/09 19:50:44 version 1.38, 2012/10/18 17:54:43
Line 611 
Line 611 
         job->exit_type = JOB_EXIT_OKAY;          job->exit_type = JOB_EXIT_OKAY;
         job->location = NULL;          job->location = NULL;
         job->flags = 0;          job->flags = 0;
         job->sent_signal = 0;  
 }  }
   
 void  void
 job_handle_status(Job *job, int status)  job_handle_status(Job *job, int status)
 {  {
         bool silent;          bool silent;
           int dying;
   
         /* if there's one job running and we don't keep going, no need          /* if there's one job running and we don't keep going, no need
          * to report right now.           * to report right now.
Line 633 
Line 633 
         /* classify status */          /* classify status */
         if (WIFEXITED(status)) {          if (WIFEXITED(status)) {
                 job->code = WEXITSTATUS(status);/* exited */                  job->code = WEXITSTATUS(status);/* exited */
                 if (status != 0) {                  if (job->code != 0) {
                           /* if we're already dying from that signal, be silent */
                           if (!silent && job->code > 128
                               && job->code <= 128 + _NSIG) {
                                   dying = check_dying_signal();
                                   silent = dying && job->code == dying + 128;
                           }
                         if (!silent)                          if (!silent)
                                 printf("*** Error %d", job->code);                                  printf("*** Error %d", job->code);
                         job->exit_type = JOB_EXIT_BAD;                          job->exit_type = JOB_EXIT_BAD;
Line 642 
Line 648 
         } else {          } else {
                 job->exit_type = JOB_SIGNALED;                  job->exit_type = JOB_SIGNALED;
                 job->code = WTERMSIG(status);   /* signaled */                  job->code = WTERMSIG(status);   /* signaled */
                   /* if we're already dying from that signal, be silent */
                   if (!silent) {
                           dying = check_dying_signal();
                           silent = dying && job->code == dying;
                   }
                 if (!silent)                  if (!silent)
                         printf("*** Signal %d", job->code);                          printf("*** Signal %d", job->code);
         }          }

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.38