Module Name:    src
Committed By:   rillig
Date:           Tue Dec  8 21:34:49 UTC 2020

Modified Files:
        src/usr.bin/make: job.c

Log Message:
make(1): in jobs mode, invert local variable noSpecials to run


To generate a diff of this commit:
cvs rdiff -u -r1.350 -r1.351 src/usr.bin/make/job.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/make/job.c
diff -u src/usr.bin/make/job.c:1.350 src/usr.bin/make/job.c:1.351
--- src/usr.bin/make/job.c:1.350	Tue Dec  8 20:17:18 2020
+++ src/usr.bin/make/job.c	Tue Dec  8 21:34:49 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: job.c,v 1.350 2020/12/08 20:17:18 rillig Exp $	*/
+/*	$NetBSD: job.c,v 1.351 2020/12/08 21:34:49 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -143,7 +143,7 @@
 #include "trace.h"
 
 /*	"@(#)job.c	8.2 (Berkeley) 3/19/94"	*/
-MAKE_RCSID("$NetBSD: job.c,v 1.350 2020/12/08 20:17:18 rillig Exp $");
+MAKE_RCSID("$NetBSD: job.c,v 1.351 2020/12/08 21:34:49 rillig Exp $");
 
 /*
  * A shell defines how the commands are run.  All commands for a target are
@@ -792,10 +792,10 @@ JobPrintSpecialsEchoCtl(Job *job, RunFla
 
 static void
 JobPrintSpecials(Job *const job, const char *const escCmd,
-		 Boolean const noSpecials, RunFlags *const inout_runFlags,
+		 Boolean const run, RunFlags *const inout_runFlags,
 		 const char **const inout_cmdTemplate)
 {
-	if (noSpecials)
+	if (!run)
 		inout_runFlags->ignerr = FALSE;
 	else if (commandShell->hasErrCtl)
 		JobPrintSpecialsErrCtl(job, inout_runFlags->echo);
@@ -829,11 +829,8 @@ static void
 JobPrintCommand(Job *job, char *cmd)
 {
 	const char *const cmdp = cmd;
-	/*
-	 * true if we shouldn't worry about inserting special commands into
-	 * the input stream.
-	 */
-	Boolean noSpecials;
+
+	Boolean run;
 
 	RunFlags runFlags;
 	/* Template to use when printing the command */
@@ -841,7 +838,7 @@ JobPrintCommand(Job *job, char *cmd)
 	char *cmdStart;		/* Start of expanded command */
 	char *escCmd = NULL;	/* Command with quotes/backticks escaped */
 
-	noSpecials = !GNode_ShouldExecute(job->node);
+	run = GNode_ShouldExecute(job->node);
 
 	numCommands++;
 
@@ -853,7 +850,8 @@ JobPrintCommand(Job *job, char *cmd)
 
 	ParseRunOptions(&cmd, &runFlags);
 
-	if (runFlags.always && noSpecials) {
+	/* The '+' command flag overrides the -n or -N options. */
+	if (runFlags.always && !run) {
 		/*
 		 * We're not actually executing anything...
 		 * but this one needs to be - use compat mode just for it.
@@ -873,7 +871,7 @@ JobPrintCommand(Job *job, char *cmd)
 		escCmd = EscapeShellDblQuot(cmd);
 
 	if (!runFlags.echo) {
-		if (!(job->flags & JOB_SILENT) && !noSpecials &&
+		if (!(job->flags & JOB_SILENT) && run &&
 		    commandShell->hasEchoCtl) {
 			JobPrintln(job, commandShell->echoOff);
 		} else {
@@ -883,8 +881,7 @@ JobPrintCommand(Job *job, char *cmd)
 	}
 
 	if (runFlags.ignerr) {
-		JobPrintSpecials(job, escCmd, noSpecials, &runFlags,
-		    &cmdTemplate);
+		JobPrintSpecials(job, escCmd, run, &runFlags, &cmdTemplate);
 	} else {
 
 		/*

Reply via email to