Module Name:    src
Committed By:   rillig
Date:           Fri Oct 23 17:05:40 UTC 2020

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

Log Message:
make(1): rename Shell fields

Some of them should have been in an anonymous union, or should just kept
as separate fields.  There is only a small, fixed number of shells,
therefore it doesn't make sense to squeeze two completely separate
meanings into a single field just because that field happens to have a
fitting data type.


To generate a diff of this commit:
cvs rdiff -u -r1.275 -r1.276 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.275 src/usr.bin/make/job.c:1.276
--- src/usr.bin/make/job.c:1.275	Fri Oct 23 16:45:34 2020
+++ src/usr.bin/make/job.c	Fri Oct 23 17:05:40 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: job.c,v 1.275 2020/10/23 16:45:34 rillig Exp $	*/
+/*	$NetBSD: job.c,v 1.276 2020/10/23 17:05:40 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.275 2020/10/23 16:45:34 rillig Exp $");
+MAKE_RCSID("$NetBSD: job.c,v 1.276 2020/10/23 17:05:40 rillig Exp $");
 
 # define STATIC static
 
@@ -163,14 +163,14 @@ MAKE_RCSID("$NetBSD: job.c,v 1.275 2020/
  * it is filtered out using noPrint and noPrintLen.
  *
  * The error checking for individual commands is controlled using hasErrCtl,
- * errCheck, ignErr and errOut.
+ * errOnOrEcho, errOffOrExecIgnore and errExit.
  *
- * If a shell doesn't have error control, errCheck becomes a printf template
- * for echoing the command, should echoing be on and ignErr becomes another
- * printf template for executing the command while ignoring the return
- * status. Finally errOut is a printf template for running the command and
+ * If a shell doesn't have error control, errOnOrEcho becomes a printf template
+ * for echoing the command, should echoing be on; errOffOrExecIgnore becomes
+ * another printf template for executing the command while ignoring the return
+ * status. Finally errExit is a printf template for running the command and
  * causing the shell to exit on error. If any of these strings are empty when
- * hasErrCtl is FALSE, the command will be executed anyway as is and if it
+ * hasErrCtl is FALSE, the command will be executed anyway as is, and if it
  * causes an error, so be it. Any templates setup to echo the command will
  * escape any '$ ` \ "' characters in the command string to avoid common
  * problems with echo "%s\n" as a template.
@@ -196,9 +196,11 @@ typedef struct Shell {
 
     Boolean hasErrCtl;		/* set if can control error checking for
 				 * individual commands */
-    const char *errCheck;	/* string to turn on error checking */
-    const char *ignErr;		/* string to turn off error checking */
-    const char *errOut;		/* string to use for testing exit code */
+    /* XXX: split into errOn and echoCmd */
+    const char *errOnOrEcho;	/* template to turn on error checking */
+    /* XXX: split into errOff and execIgnore */
+    const char *errOffOrExecIgnore; /* template to turn off error checking */
+    const char *errExit;	/* template to use for testing exit code */
 
     /* string literal that results in a newline character when it appears
      * outside of any 'quote' or "quote" characters */
@@ -287,9 +289,9 @@ static Shell    shells[] = {
     "",				/* .noPrint */
     0,				/* .noPrintLen */
     FALSE,			/* .hasErrCtl */
-    "echo \"%s\"\n",		/* .errCheck */
-    "%s\n",			/* .ignErr */
-    "{ %s \n} || exit $?\n",	/* .errOut */
+    "echo \"%s\"\n",		/* .errOnOrEcho */
+    "%s\n",			/* .errOffOrExecIgnore */
+    "{ %s \n} || exit $?\n",	/* .errExit */
     "'\n'",			/* .newline */
     '#',			/* .commentChar */
     "",				/* .echo */
@@ -308,9 +310,9 @@ static Shell    shells[] = {
     "",				/* .noPrint */
     0,				/* .noPrintLen */
     FALSE,			/* .hasErrCtl */
-    "echo \"%s\"\n", 		/* .errCheck */
-    "%s\n",			/* .ignErr */
-    "{ %s \n} || exit $?\n",	/* .errOut */
+    "echo \"%s\"\n", 		/* .errOnOrEcho */
+    "%s\n",			/* .errOffOrExecIgnore */
+    "{ %s \n} || exit $?\n",	/* .errExit */
     "'\n'",			/* .newline */
     '#',			/* .commentChar*/
 #if defined(MAKE_NATIVE) && defined(__NetBSD__)
@@ -331,9 +333,9 @@ static Shell    shells[] = {
     "set +v",			/* .noPrint */
     6,				/* .noPrintLen */
     FALSE,			/* .hasErrCtl */
-    "echo \"%s\"\n",		/* .errCheck */
-    "%s\n",			/* .ignErr */
-    "{ %s \n} || exit $?\n",	/* .errOut */
+    "echo \"%s\"\n",		/* .errOnOrEcho */
+    "%s\n",			/* .errOffOrExecIgnore */
+    "{ %s \n} || exit $?\n",	/* .errExit */
     "'\n'",			/* .newline */
     '#',			/* .commentChar */
     "v",			/* .echo */
@@ -352,9 +354,10 @@ static Shell    shells[] = {
     "unset verbose", 		/* .noPrint */
     13,				/* .noPrintLen */
     FALSE, 			/* .hasErrCtl */
-    "echo \"%s\"\n", 		/* .errCheck */
-    "csh -c \"%s || exit 0\"\n", /* .ignErr */
-    "", 			/* .errOut */
+    "echo \"%s\"\n", 		/* .errOnOrEcho */
+    /* XXX: Mismatch between errOn and execIgnore */
+    "csh -c \"%s || exit 0\"\n", /* .errOffOrExecIgnore */
+    "", 			/* .errExit */
     "'\\\n'",			/* .newline */
     '#',			/* .commentChar */
     "v", 			/* .echo */
@@ -768,19 +771,19 @@ JobPrintCommand(Job *job, char *cmd)
 		if (!(job->flags & JOB_SILENT) && !shutUp &&
 		    commandShell->hasEchoCtl) {
 			DBPRINTF("%s\n", commandShell->echoOff);
-			DBPRINTF("%s\n", commandShell->ignErr);
+			DBPRINTF("%s\n", commandShell->errOffOrExecIgnore);
 			DBPRINTF("%s\n", commandShell->echoOn);
 		} else {
-			DBPRINTF("%s\n", commandShell->ignErr);
+			DBPRINTF("%s\n", commandShell->errOffOrExecIgnore);
 		}
-	    } else if (commandShell->ignErr &&
-		       commandShell->ignErr[0] != '\0')
+	    } else if (commandShell->errOffOrExecIgnore &&
+		       commandShell->errOffOrExecIgnore[0] != '\0')
 	    {
 		/*
 		 * The shell has no error control, so we need to be
 		 * weird to get it to ignore any errors from the command.
 		 * If echoing is turned on, we turn it off and use the
-		 * errCheck template to echo the command. Leave echoing
+		 * errOnOrEcho template to echo the command. Leave echoing
 		 * off so the user doesn't see the weirdness we go through
 		 * to ignore errors. Set cmdTemplate to use the weirdness
 		 * instead of the simple "%s\n" template.
@@ -790,18 +793,18 @@ JobPrintCommand(Job *job, char *cmd)
 			if (commandShell->hasEchoCtl) {
 				DBPRINTF("%s\n", commandShell->echoOff);
 			}
-			DBPRINTF(commandShell->errCheck, escCmd);
+			DBPRINTF(commandShell->errOnOrEcho, escCmd);
 			shutUp = TRUE;
 		} else {
 			if (!shutUp) {
-				DBPRINTF(commandShell->errCheck, escCmd);
+				DBPRINTF(commandShell->errOnOrEcho, escCmd);
 			}
 		}
-		cmdTemplate = commandShell->ignErr;
+		cmdTemplate = commandShell->errOffOrExecIgnore;
 		/*
 		 * The error ignoration (hee hee) is already taken care
-		 * of by the ignErr template, so pretend error checking
-		 * is still on.
+		 * of by the errOffOrExecIgnore template, so pretend error
+		 * checking is still on.
 		 */
 		errOff = FALSE;
 	    } else {
@@ -814,25 +817,25 @@ JobPrintCommand(Job *job, char *cmd)
 
 	/*
 	 * If errors are being checked and the shell doesn't have error control
-	 * but does supply an errOut template, then setup commands to run
+	 * but does supply an errExit template, then setup commands to run
 	 * through it.
 	 */
 
-	if (!commandShell->hasErrCtl && commandShell->errOut &&
-	    commandShell->errOut[0] != '\0') {
+	if (!commandShell->hasErrCtl && commandShell->errExit &&
+	    commandShell->errExit[0] != '\0') {
 		if (!(job->flags & JOB_SILENT) && !shutUp) {
 			if (commandShell->hasEchoCtl) {
 				DBPRINTF("%s\n", commandShell->echoOff);
 			}
-			DBPRINTF(commandShell->errCheck, escCmd);
+			DBPRINTF(commandShell->errOnOrEcho, escCmd);
 			shutUp = TRUE;
 		}
 		/* If it's a comment line or blank, treat as an ignored error */
 		if ((escCmd[0] == commandShell->commentChar) ||
 		    (escCmd[0] == 0))
-			cmdTemplate = commandShell->ignErr;
+			cmdTemplate = commandShell->errOffOrExecIgnore;
 		else
-			cmdTemplate = commandShell->errOut;
+			cmdTemplate = commandShell->errExit;
 		errOff = FALSE;
 	}
     }
@@ -856,7 +859,7 @@ JobPrintCommand(Job *job, char *cmd)
 	    DBPRINTF("%s\n", commandShell->echoOff);
 	    shutUp = TRUE;
 	}
-	DBPRINTF("%s\n", commandShell->errCheck);
+	DBPRINTF("%s\n", commandShell->errOnOrEcho);
     }
     if (shutUp && commandShell->hasEchoCtl) {
 	DBPRINTF("%s\n", commandShell->echoOn);
@@ -2323,11 +2326,11 @@ Job_ParseShell(char *line)
 	    } else if (strncmp(arg, "newline=", 8) == 0) {
 		newShell.newline = arg + 8;
 	    } else if (strncmp(arg, "check=", 6) == 0) {
-		newShell.errCheck = arg + 6;
+		newShell.errOnOrEcho = arg + 6;
 	    } else if (strncmp(arg, "ignore=", 7) == 0) {
-		newShell.ignErr = arg + 7;
+		newShell.errOffOrExecIgnore = arg + 7;
 	    } else if (strncmp(arg, "errout=", 7) == 0) {
-		newShell.errOut = arg + 7;
+		newShell.errExit = arg + 7;
 	    } else if (strncmp(arg, "comment=", 8) == 0) {
 		newShell.commentChar = arg[8];
 	    } else {
@@ -2407,11 +2410,11 @@ Job_ParseShell(char *line)
     }
 
     if (!commandShell->hasErrCtl) {
-	if (commandShell->errCheck == NULL) {
-	    commandShell->errCheck = "";
+	if (commandShell->errOnOrEcho == NULL) {
+	    commandShell->errOnOrEcho = "";
 	}
-	if (commandShell->ignErr == NULL) {
-	    commandShell->ignErr = "%s\n";
+	if (commandShell->errOffOrExecIgnore == NULL) {
+	    commandShell->errOffOrExecIgnore = "%s\n";
 	}
     }
 

Reply via email to