summaryrefslogtreecommitdiff
path: root/job.c
diff options
context:
space:
mode:
Diffstat (limited to 'job.c')
-rw-r--r--job.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/job.c b/job.c
index 1c75420..fb07141 100644
--- a/job.c
+++ b/job.c
@@ -383,7 +383,7 @@ child_error (char *target_name, int exit_code, int exit_sig, int coredump,
{
if (ignored && silent_flag)
return;
-
+
#ifdef VMS
if (!(exit_code & 1))
error (NILF,
@@ -718,7 +718,7 @@ reap_children (int block, int err)
if (c->good_stdin)
good_stdin_used = 0;
- dontcare = c->file->dontcare;
+ dontcare = c->dontcare;
if (child_failed && !c->noerror && !ignore_errors_flag)
{
@@ -1612,6 +1612,10 @@ new_job (struct file *file)
c->command_lines = lines;
c->sh_batch_file = NULL;
+ /* Cache dontcare flag because file->dontcare can be changed once we
+ return. Check dontcare inheritance mechanism for details. */
+ c->dontcare = file->dontcare;
+
/* Fetch the first command line to be run. */
job_next_command (c);