summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)
{