- if(WIFSIGNALED(child_status)) {
- dbprintf(("%s: child %ld terminated with signal %d\n",
- debug_prefix_time(NULL),
- (long) child_pid, WTERMSIG(child_status)));
- } else {
- exit_code = WEXITSTATUS(child_status);
- if(exit_code == 0) {
- dbprintf(("%s: child %ld terminated normally\n",
- debug_prefix_time(NULL), (long) child_pid));
- } else {
- dbprintf(("%s: child %ld terminated with code %d\n",
- debug_prefix_time(NULL),
- (long) child_pid, exit_code));
- }
+
+ if (!WIFEXITED(child_status) || WEXITSTATUS(child_status) != 0) {
+ char *child_name = vstrallocf(_("child %ld"), (long)child_pid);
+ char *child_status_str = str_exit_status(child_name, child_status);
+ dbprintf("%s\n", child_status_str);
+ amfree(child_status_str);
+ amfree(child_name);