summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>1994-04-21 02:15:37 +0000
committerRoland McGrath <roland@redhat.com>1994-04-21 02:15:37 +0000
commitcbfe6d75f6f61ee3acfa98bc62d80651f1e40c69 (patch)
treec15d05013f333de939b7fba02e9df62e6ce4eb76
parent716e804b5b14251db1db37576d57d3ad41846f24 (diff)
downloadgunmake-cbfe6d75f6f61ee3acfa98bc62d80651f1e40c69.tar.gz
(update_goal_chain): Set STATUS to FILE->update_status, to preserve whether
it's 2 for error or 1 for -q trigger. When STATUS gets nonzero and -q is set, always stop immediately.
-rw-r--r--remake.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/remake.c b/remake.c
index 479045e..a280b52 100644
--- a/remake.c
+++ b/remake.c
@@ -144,9 +144,14 @@ update_goal_chain (goals, makefiles)
{
if (file->update_status != 0)
{
- /* Updating failed. */
- status = 1;
- stop = !keep_going_flag && !makefiles;
+ /* Updating failed, or -q triggered.
+ The STATUS value tells our caller which. */
+ status = file->update_status;
+ /* If -q just triggered, stop immediately.
+ It doesn't matter how much more we run,
+ since we already know the answer to return. */
+ stop = (!keep_going_flag && !question_flag
+ && !makefiles);
}
else if (MTIME (file) != mtime)
{