it's 2 for error or 1 for -q trigger. When STATUS gets nonzero and -q is
set, always stop immediately.
{
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)
{