Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make make(1): split Job.errOffOrExecIgnore into sepa...



details:   https://anonhg.NetBSD.org/src/rev/5a69d3238c8a
branches:  trunk
changeset: 978993:5a69d3238c8a
user:      rillig <rillig%NetBSD.org@localhost>
date:      Thu Dec 10 22:34:39 2020 +0000

description:
make(1): split Job.errOffOrExecIgnore into separate fields

Like errOnOrEcho, these two fields were completely unrelated.  One of
them expected a %s placeholder, the other didn't.

diffstat:

 usr.bin/make/job.c |  52 +++++++++++++++++++++++++++-------------------------
 1 files changed, 27 insertions(+), 25 deletions(-)

diffs (152 lines):

diff -r c4b946c37df8 -r 5a69d3238c8a usr.bin/make/job.c
--- a/usr.bin/make/job.c        Thu Dec 10 22:17:37 2020 +0000
+++ b/usr.bin/make/job.c        Thu Dec 10 22:34:39 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: job.c,v 1.358 2020/12/10 22:17:37 rillig Exp $ */
+/*     $NetBSD: job.c,v 1.359 2020/12/10 22:34:39 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.358 2020/12/10 22:17:37 rillig Exp $");
+MAKE_RCSID("$NetBSD: job.c,v 1.359 2020/12/10 22:34:39 rillig Exp $");
 
 /*
  * A shell defines how the commands are run.  All commands for a target are
@@ -198,13 +198,10 @@
 
        Boolean hasErrCtl;      /* set if can control error checking for
                                 * individual commands */
-       const char *errOn;      /* template to turn on error checking */
-       const char *echoCmd;
-       /*
-        * template to turn off error checking
-        * XXX: split into errOff and execIgnore
-        */
-       const char *errOffOrExecIgnore;
+       const char *errOn;      /* command to turn on error checking */
+       const char *errOff;     /* command to turn off error checking */
+       const char *echoCmd;    /* template to echo a command */
+       const char *execIgnore; /* template to run a command with ignerr */
        const char *errExit;    /* template to use for testing exit code */
 
        /* string literal that results in a newline character when it appears
@@ -308,8 +305,9 @@
        0,                      /* .noPrintLen */
        FALSE,                  /* .hasErrCtl */
        "",                     /* .errOn */
+       "",                     /* .errOff */
        "echo \"%s\"\n",        /* .echoCmd */
-       "%s\n",                 /* .errOffOrExecIgnore */
+       "%s\n",                 /* .execIgnore */
        "{ %s \n} || exit $?\n", /* .errExit */
        "'\n'",                 /* .newline */
        '#',                    /* .commentChar */
@@ -330,8 +328,9 @@
        0,                      /* .noPrintLen */
        FALSE,                  /* .hasErrCtl */
        "",                     /* .errOn */
+       "",                     /* .errOff */
        "echo \"%s\"\n",        /* .echoCmd */
-       "%s\n",                 /* .errOffOrExecIgnore */
+       "%s\n",                 /* .execIgnore */
        "{ %s \n} || exit $?\n", /* .errExit */
        "'\n'",                 /* .newline */
        '#',                    /* .commentChar*/
@@ -354,8 +353,9 @@
        6,                      /* .noPrintLen */
        FALSE,                  /* .hasErrCtl */
        "",                     /* .errOn */
+       "",                     /* .errOff */
        "echo \"%s\"\n",        /* .echoCmd */
-       "%s\n",                 /* .errOffOrExecIgnore */
+       "%s\n",                 /* .execIgnore */
        "{ %s \n} || exit $?\n", /* .errExit */
        "'\n'",                 /* .newline */
        '#',                    /* .commentChar */
@@ -376,9 +376,9 @@
        13,                     /* .noPrintLen */
        FALSE,                  /* .hasErrCtl */
        "",                     /* .errOn */
+       "",                     /* .errOff */
        "echo \"%s\"\n",        /* .echoCmd */
-       /* XXX: Mismatch between errOn and execIgnore */
-       "csh -c \"%s || exit 0\"\n", /* .errOffOrExecIgnore */
+       "csh -c \"%s || exit 0\"\n", /* .execIgnore */
        "",                     /* .errExit */
        "'\\\n'",               /* .newline */
        '#',                    /* .commentChar */
@@ -768,10 +768,10 @@
 {
        if (job->echo && cmdEcho && shell->hasEchoCtl) {
                JobPrintln(job, shell->echoOff);
-               JobPrintln(job, shell->errOffOrExecIgnore);
+               JobPrintln(job, shell->errOff);
                JobPrintln(job, shell->echoOn);
        } else {
-               JobPrintln(job, shell->errOffOrExecIgnore);
+               JobPrintln(job, shell->errOff);
        }
 }
 
@@ -797,7 +797,7 @@
                if (inout_runFlags->echo)
                        JobPrintf(job, shell->echoCmd, escCmd);
        }
-       *inout_cmdTemplate = shell->errOffOrExecIgnore;
+       *inout_cmdTemplate = shell->execIgnore;
 
        /*
         * The error ignoration (hee hee) is already taken care of by the
@@ -815,8 +815,7 @@
                inout_runFlags->ignerr = FALSE;
        else if (shell->hasErrCtl)
                JobPrintSpecialsErrCtl(job, inout_runFlags->echo);
-       else if (shell->errOffOrExecIgnore != NULL &&
-                shell->errOffOrExecIgnore[0] != '\0') {
+       else if (shell->execIgnore != NULL && shell->execIgnore[0] != '\0') {
                JobPrintSpecialsEchoCtl(job, inout_runFlags, escCmd,
                    inout_cmdTemplate);
        } else
@@ -916,7 +915,7 @@
                         */
                        if (escCmd[0] == shell->commentChar ||
                            (escCmd[0] == '\0'))
-                               cmdTemplate = shell->errOffOrExecIgnore;
+                               cmdTemplate = shell->execIgnore;
                        else
                                cmdTemplate = shell->errExit;
                        runFlags.ignerr = FALSE;
@@ -2351,12 +2350,15 @@
                        } else if (strncmp(arg, "newline=", 8) == 0) {
                                newShell.newline = arg + 8;
                        } else if (strncmp(arg, "check=", 6) == 0) {
+                               /* Before 2020-12-10, these two variables
+                                * had been a single variable. */
                                newShell.errOn = arg + 6;
-                               /* Before 2020-12-10, these two variables
-                                * used to be a single variable. */
                                newShell.echoCmd = arg + 6;
                        } else if (strncmp(arg, "ignore=", 7) == 0) {
-                               newShell.errOffOrExecIgnore = arg + 7;
+                               /* Before 2020-12-10, these two variables
+                                * had been a single variable. */
+                               newShell.errOff = arg + 7;
+                               newShell.execIgnore = arg + 7;
                        } else if (strncmp(arg, "errout=", 7) == 0) {
                                newShell.errExit = arg + 7;
                        } else if (strncmp(arg, "comment=", 8) == 0) {
@@ -2444,8 +2446,8 @@
        if (!shell->hasErrCtl) {
                if (shell->echoCmd == NULL)
                        shell->echoCmd = "";
-               if (shell->errOffOrExecIgnore == NULL)
-                       shell->errOffOrExecIgnore = "%s\n";
+               if (shell->execIgnore == NULL)
+                       shell->execIgnore = "%s\n";
        }
 
        /*



Home | Main Index | Thread Index | Old Index