summaryrefslogtreecommitdiff
path: root/job.c
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2001-05-21 06:16:00 +0000
committerPaul Smith <psmith@gnu.org>2001-05-21 06:16:00 +0000
commit5d582d4ba06495a95854c45828399f7edfe51a50 (patch)
tree55e521f4b74f6903878a5563095387685f0e4b78 /job.c
parent8f2b1e2c7c1ced20354dcbcd08942256cf0dade0 (diff)
downloadgunmake-5d582d4ba06495a95854c45828399f7edfe51a50.tar.gz
Some VMS fixes sent by John Fowler.
Fix: make flags on some lines of define/endef don't affect other lines
Diffstat (limited to 'job.c')
-rw-r--r--job.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/job.c b/job.c
index 615e4b3..0334290 100644
--- a/job.c
+++ b/job.c
@@ -895,8 +895,14 @@ start_job_command (child)
++p;
}
- /* Update the file's command flags with any new ones we found. */
- child->file->cmds->lines_flags[child->command_line - 1] |= flags;
+ /* Update the file's command flags with any new ones we found. We only
+ keep the COMMANDS_RECURSE setting. Even this isn't 100% correct; we are
+ now marking more commands recursive than should be in the case of
+ multiline define/endef scripts where only one line is marked "+". In
+ order to really fix this, we'll have to keep a lines_flags for every
+ actual line, after expansion. */
+ child->file->cmds->lines_flags[child->command_line - 1]
+ |= flags & COMMANDS_RECURSE;
/* Figure out an argument list from this command line. */
@@ -1580,6 +1586,8 @@ load_too_high ()
}
user_access ();
+ DB (DB_JOBS, ("Current system load = %f (max requested = %f)\n",
+ load, max_load_average));
return load >= max_load_average;
#endif
}