Module Name: src Committed By: rillig Date: Tue Jul 28 16:42:22 UTC 2020
Modified Files: src/usr.bin/make: arch.c compat.c for.c job.c main.c make.c meta.c nonints.h parse.c suff.c var.c Log Message: make(1): remove dead code from Var_Subst The first parameter from Var_Subst had been a literal NULL in all cases. These have been fixed using this command: sed -i 's|Var_Subst(NULL, |Var_Subst(|' *.c The one remaining case was not found because the "NULL," was followed by a line break instead of a space. The removed code probably wouldn't have worked as expected anyway. Expanding a single variable to a literal string would have led to unexpected behavior for cases like ${VAR:M${pattern}}, in case pattern would contain an unescaped ':' itself. To generate a diff of this commit: cvs rdiff -u -r1.76 -r1.77 src/usr.bin/make/arch.c cvs rdiff -u -r1.114 -r1.115 src/usr.bin/make/compat.c cvs rdiff -u -r1.55 -r1.56 src/usr.bin/make/for.c cvs rdiff -u -r1.202 -r1.203 src/usr.bin/make/job.c cvs rdiff -u -r1.283 -r1.284 src/usr.bin/make/main.c cvs rdiff -u -r1.100 -r1.101 src/usr.bin/make/make.c cvs rdiff -u -r1.88 -r1.89 src/usr.bin/make/meta.c cvs rdiff -u -r1.86 -r1.87 src/usr.bin/make/nonints.h cvs rdiff -u -r1.238 -r1.239 src/usr.bin/make/parse.c cvs rdiff -u -r1.90 -r1.91 src/usr.bin/make/suff.c cvs rdiff -u -r1.351 -r1.352 src/usr.bin/make/var.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/arch.c diff -u src/usr.bin/make/arch.c:1.76 src/usr.bin/make/arch.c:1.77 --- src/usr.bin/make/arch.c:1.76 Mon Jul 27 19:06:45 2020 +++ src/usr.bin/make/arch.c Tue Jul 28 16:42:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: arch.c,v 1.76 2020/07/27 19:06:45 rillig Exp $ */ +/* $NetBSD: arch.c,v 1.77 2020/07/28 16:42:22 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: arch.c,v 1.76 2020/07/27 19:06:45 rillig Exp $"; +static char rcsid[] = "$NetBSD: arch.c,v 1.77 2020/07/28 16:42:22 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)arch.c 8.2 (Berkeley) 1/2/94"; #else -__RCSID("$NetBSD: arch.c,v 1.76 2020/07/27 19:06:45 rillig Exp $"); +__RCSID("$NetBSD: arch.c,v 1.77 2020/07/28 16:42:22 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -276,7 +276,7 @@ Arch_ParseArchive(char **linePtr, Lst no *cp++ = '\0'; if (subLibName) { - libName = Var_Subst(NULL, libName, ctxt, VARE_UNDEFERR|VARE_WANTRES); + libName = Var_Subst(libName, ctxt, VARE_UNDEFERR|VARE_WANTRES); } @@ -356,8 +356,7 @@ Arch_ParseArchive(char **linePtr, Lst no char *oldMemName = memName; size_t sz; - memName = Var_Subst(NULL, memName, ctxt, - VARE_UNDEFERR|VARE_WANTRES); + memName = Var_Subst(memName, ctxt, VARE_UNDEFERR | VARE_WANTRES); /* * Now form an archive spec and recurse to deal with nested Index: src/usr.bin/make/compat.c diff -u src/usr.bin/make/compat.c:1.114 src/usr.bin/make/compat.c:1.115 --- src/usr.bin/make/compat.c:1.114 Sun Jul 19 12:26:17 2020 +++ src/usr.bin/make/compat.c Tue Jul 28 16:42:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: compat.c,v 1.114 2020/07/19 12:26:17 rillig Exp $ */ +/* $NetBSD: compat.c,v 1.115 2020/07/28 16:42:22 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: compat.c,v 1.114 2020/07/19 12:26:17 rillig Exp $"; +static char rcsid[] = "$NetBSD: compat.c,v 1.115 2020/07/28 16:42:22 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)compat.c 8.2 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: compat.c,v 1.114 2020/07/19 12:26:17 rillig Exp $"); +__RCSID("$NetBSD: compat.c,v 1.115 2020/07/28 16:42:22 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -235,7 +235,7 @@ CompatRunCommand(void *cmdp, void *gnp) doIt = FALSE; cmdNode = Lst_Member(gn->commands, cmd); - cmdStart = Var_Subst(NULL, cmd, gn, VARE_WANTRES); + cmdStart = Var_Subst(cmd, gn, VARE_WANTRES); /* * brk_string will return an argv with a NULL in av[0], thus causing Index: src/usr.bin/make/for.c diff -u src/usr.bin/make/for.c:1.55 src/usr.bin/make/for.c:1.56 --- src/usr.bin/make/for.c:1.55 Sun Jul 19 12:26:17 2020 +++ src/usr.bin/make/for.c Tue Jul 28 16:42:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: for.c,v 1.55 2020/07/19 12:26:17 rillig Exp $ */ +/* $NetBSD: for.c,v 1.56 2020/07/28 16:42:22 rillig Exp $ */ /* * Copyright (c) 1992, The Regents of the University of California. @@ -30,14 +30,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: for.c,v 1.55 2020/07/19 12:26:17 rillig Exp $"; +static char rcsid[] = "$NetBSD: for.c,v 1.56 2020/07/28 16:42:22 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)for.c 8.1 (Berkeley) 6/6/93"; #else -__RCSID("$NetBSD: for.c,v 1.55 2020/07/19 12:26:17 rillig Exp $"); +__RCSID("$NetBSD: for.c,v 1.56 2020/07/28 16:42:22 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -216,7 +216,7 @@ For_Eval(char *line) * We can't do the escapes here - because we don't know whether * we are substuting into ${...} or $(...). */ - sub = Var_Subst(NULL, ptr, VAR_GLOBAL, VARE_WANTRES); + sub = Var_Subst(ptr, VAR_GLOBAL, VARE_WANTRES); /* * Split into words allowing for quoted strings. Index: src/usr.bin/make/job.c diff -u src/usr.bin/make/job.c:1.202 src/usr.bin/make/job.c:1.203 --- src/usr.bin/make/job.c:1.202 Sun Jul 19 12:26:17 2020 +++ src/usr.bin/make/job.c Tue Jul 28 16:42:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: job.c,v 1.202 2020/07/19 12:26:17 rillig Exp $ */ +/* $NetBSD: job.c,v 1.203 2020/07/28 16:42:22 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -70,14 +70,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: job.c,v 1.202 2020/07/19 12:26:17 rillig Exp $"; +static char rcsid[] = "$NetBSD: job.c,v 1.203 2020/07/28 16:42:22 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)job.c 8.2 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: job.c,v 1.202 2020/07/19 12:26:17 rillig Exp $"); +__RCSID("$NetBSD: job.c,v 1.203 2020/07/28 16:42:22 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -729,7 +729,7 @@ JobPrintCommand(void *cmdp, void *jobp) numCommands += 1; - cmdStart = cmd = Var_Subst(NULL, cmd, job->node, VARE_WANTRES); + cmdStart = cmd = Var_Subst(cmd, job->node, VARE_WANTRES); cmdTemplate = "%s\n"; @@ -917,7 +917,7 @@ JobPrintCommand(void *cmdp, void *jobp) static int JobSaveCommand(void *cmd, void *gn) { - cmd = Var_Subst(NULL, (char *)cmd, (GNode *)gn, VARE_WANTRES); + cmd = Var_Subst((char *)cmd, (GNode *)gn, VARE_WANTRES); (void)Lst_AtEnd(postCommands->commands, cmd); return 0; } @@ -2248,7 +2248,7 @@ Job_SetPrefix(void) Var_Set(MAKE_JOB_PREFIX, "---", VAR_GLOBAL); } - targPrefix = Var_Subst(NULL, "${" MAKE_JOB_PREFIX "}", + targPrefix = Var_Subst("${" MAKE_JOB_PREFIX "}", VAR_GLOBAL, VARE_WANTRES); } Index: src/usr.bin/make/main.c diff -u src/usr.bin/make/main.c:1.283 src/usr.bin/make/main.c:1.284 --- src/usr.bin/make/main.c:1.283 Mon Jul 20 18:12:48 2020 +++ src/usr.bin/make/main.c Tue Jul 28 16:42:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.283 2020/07/20 18:12:48 sjg Exp $ */ +/* $NetBSD: main.c,v 1.284 2020/07/28 16:42:22 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,7 +69,7 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: main.c,v 1.283 2020/07/20 18:12:48 sjg Exp $"; +static char rcsid[] = "$NetBSD: main.c,v 1.284 2020/07/28 16:42:22 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint @@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 19 #if 0 static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: main.c,v 1.283 2020/07/20 18:12:48 sjg Exp $"); +__RCSID("$NetBSD: main.c,v 1.284 2020/07/28 16:42:22 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -772,7 +772,7 @@ Main_SetVarObjdir(const char *var, const /* expand variable substitutions */ if (strchr(path, '$') != 0) - xpath = Var_Subst(NULL, path, VAR_GLOBAL, VARE_WANTRES); + xpath = Var_Subst(path, VAR_GLOBAL, VARE_WANTRES); else xpath = path; @@ -838,7 +838,7 @@ MakeMode(const char *mode) char *mp = NULL; if (!mode) - mode = mp = Var_Subst(NULL, "${" MAKE_MODE ":tl}", + mode = mp = Var_Subst("${" MAKE_MODE ":tl}", VAR_GLOBAL, VARE_WANTRES); if (mode && *mode) { @@ -875,8 +875,7 @@ doPrintVars(void) char *p1; if (strchr(var, '$')) { - value = p1 = Var_Subst(NULL, var, VAR_GLOBAL, - VARE_WANTRES); + value = p1 = Var_Subst(var, VAR_GLOBAL, VARE_WANTRES); } else if (expandVars) { char tmp[128]; int len = snprintf(tmp, sizeof(tmp), "${%s}", var); @@ -884,8 +883,7 @@ doPrintVars(void) if (len >= (int)sizeof(tmp)) Fatal("%s: variable name too big: %s", progname, var); - value = p1 = Var_Subst(NULL, tmp, VAR_GLOBAL, - VARE_WANTRES); + value = p1 = Var_Subst(tmp, VAR_GLOBAL, VARE_WANTRES); } else { value = Var_Value(var, VAR_GLOBAL, &p1); } @@ -1348,7 +1346,7 @@ main(int argc, char **argv) Fatal("%s: cannot open %s.", progname, (char *)Lst_Datum(ln)); } else { - p1 = Var_Subst(NULL, "${" MAKEFILE_PREFERENCE "}", + p1 = Var_Subst("${" MAKEFILE_PREFERENCE "}", VAR_CMD, VARE_WANTRES); if (p1) { (void)str2Lst_Append(makefiles, p1, NULL); @@ -1359,7 +1357,7 @@ main(int argc, char **argv) /* In particular suppress .depend for '-r -V .OBJDIR -f /dev/null' */ if (!noBuiltins || !printVars) { - makeDependfile = Var_Subst(NULL, "${.MAKE.DEPENDFILE:T}", + makeDependfile = Var_Subst("${.MAKE.DEPENDFILE:T}", VAR_CMD, VARE_WANTRES); doing_depend = TRUE; (void)ReadMakefile(makeDependfile, NULL); @@ -1379,7 +1377,7 @@ main(int argc, char **argv) char *value; int n; - value = Var_Subst(NULL, "${.MAKE.JOBS}", VAR_GLOBAL, VARE_WANTRES); + value = Var_Subst("${.MAKE.JOBS}", VAR_GLOBAL, VARE_WANTRES); n = strtol(value, NULL, 0); if (n < 1) { (void)fprintf(stderr, "%s: illegal value for .MAKE.JOBS -- must be positive integer!\n", @@ -1429,7 +1427,7 @@ main(int argc, char **argv) */ static char VPATH[] = "${VPATH}"; - vpath = Var_Subst(NULL, VPATH, VAR_CMD, VARE_WANTRES); + vpath = Var_Subst(VPATH, VAR_CMD, VARE_WANTRES); path = vpath; do { /* skip to end of directory */ @@ -2065,7 +2063,7 @@ PrintOnError(GNode *gn, const char *s) Lst_ForEach(gn->commands, addErrorCMD, gn); } const char *expr = "${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'\n@}"; - char *cp = Var_Subst(NULL, expr, VAR_GLOBAL, VARE_WANTRES); + char *cp = Var_Subst(expr, VAR_GLOBAL, VARE_WANTRES); if (cp) { if (*cp) printf("%s", cp); @@ -2093,7 +2091,7 @@ Main_ExportMAKEFLAGS(Boolean first) once = 0; const char *expr = "${.MAKEFLAGS} ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}"; - char *s = Var_Subst(NULL, expr, VAR_CMD, VARE_WANTRES); + char *s = Var_Subst(expr, VAR_CMD, VARE_WANTRES); if (s != NULL && s[0] != '\0') { #ifdef POSIX setenv("MAKEFLAGS", s, 1); @@ -2115,7 +2113,7 @@ getTmpdir(void) * Honor $TMPDIR but only if it is valid. * Ensure it ends with /. */ - tmpdir = Var_Subst(NULL, "${TMPDIR:tA:U" _PATH_TMP "}/", VAR_GLOBAL, + tmpdir = Var_Subst("${TMPDIR:tA:U" _PATH_TMP "}/", VAR_GLOBAL, VARE_WANTRES); if (stat(tmpdir, &st) < 0 || !S_ISDIR(st.st_mode)) { free(tmpdir); @@ -2209,7 +2207,7 @@ getBoolean(const char *name, Boolean bf) char *cp; if (snprintf(tmp, sizeof(tmp), "${%s:U:tl}", name) < (int)(sizeof(tmp))) { - cp = Var_Subst(NULL, tmp, VAR_GLOBAL, VARE_WANTRES); + cp = Var_Subst(tmp, VAR_GLOBAL, VARE_WANTRES); if (cp) { bf = s2Boolean(cp, bf); Index: src/usr.bin/make/make.c diff -u src/usr.bin/make/make.c:1.100 src/usr.bin/make/make.c:1.101 --- src/usr.bin/make/make.c:1.100 Sun Jul 19 12:26:17 2020 +++ src/usr.bin/make/make.c Tue Jul 28 16:42:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: make.c,v 1.100 2020/07/19 12:26:17 rillig Exp $ */ +/* $NetBSD: make.c,v 1.101 2020/07/28 16:42:22 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: make.c,v 1.100 2020/07/19 12:26:17 rillig Exp $"; +static char rcsid[] = "$NetBSD: make.c,v 1.101 2020/07/28 16:42:22 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)make.c 8.1 (Berkeley) 6/6/93"; #else -__RCSID("$NetBSD: make.c,v 1.100 2020/07/19 12:26:17 rillig Exp $"); +__RCSID("$NetBSD: make.c,v 1.101 2020/07/28 16:42:22 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -484,7 +484,7 @@ Make_HandleUse(GNode *cgn, GNode *pgn) } else { free(gn->name); } - gn->name = Var_Subst(NULL, gn->uname, pgn, VARE_WANTRES); + gn->name = Var_Subst(gn->uname, pgn, VARE_WANTRES); if (gn->name && gn->uname && strcmp(gn->name, gn->uname) != 0) { /* See if we have a target for this node. */ tgn = Targ_FindNode(gn->name, TARG_NOCREATE); Index: src/usr.bin/make/meta.c diff -u src/usr.bin/make/meta.c:1.88 src/usr.bin/make/meta.c:1.89 --- src/usr.bin/make/meta.c:1.88 Sun Jul 19 12:35:30 2020 +++ src/usr.bin/make/meta.c Tue Jul 28 16:42:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: meta.c,v 1.88 2020/07/19 12:35:30 rillig Exp $ */ +/* $NetBSD: meta.c,v 1.89 2020/07/28 16:42:22 rillig Exp $ */ /* * Implement 'meta' mode. @@ -329,7 +329,7 @@ is_submake(void *cmdp, void *gnp) } cp = strchr(cmd, '$'); if ((cp)) { - mp = Var_Subst(NULL, cmd, gn, VARE_WANTRES); + mp = Var_Subst(cmd, gn, VARE_WANTRES); cmd = mp; } cp2 = strstr(cmd, p_make); @@ -371,7 +371,7 @@ printCMD(void *cmdp, void *mfpp) char *cp = NULL; if (strchr(cmd, '$')) { - cmd = cp = Var_Subst(NULL, cmd, mfp->gn, VARE_WANTRES); + cmd = cp = Var_Subst(cmd, mfp->gn, VARE_WANTRES); } fprintf(mfp->fp, "CMD %s\n", cmd); free(cp); @@ -484,7 +484,7 @@ meta_create(BuildMon *pbm, GNode *gn) char *mp; /* Describe the target we are building */ - mp = Var_Subst(NULL, "${" MAKE_META_PREFIX "}", gn, VARE_WANTRES); + mp = Var_Subst("${" MAKE_META_PREFIX "}", gn, VARE_WANTRES); if (*mp) fprintf(stdout, "%s\n", mp); free(mp); @@ -626,7 +626,7 @@ meta_mode_init(const char *make_mode) * We consider ourselves master of all within ${.MAKE.META.BAILIWICK} */ metaBailiwick = Lst_Init(FALSE); - metaBailiwickStr = Var_Subst(NULL, "${.MAKE.META.BAILIWICK:O:u:tA}", + metaBailiwickStr = Var_Subst("${.MAKE.META.BAILIWICK:O:u:tA}", VAR_GLOBAL, VARE_WANTRES); if (metaBailiwickStr) { str2Lst_Append(metaBailiwick, metaBailiwickStr, NULL); @@ -637,9 +637,8 @@ meta_mode_init(const char *make_mode) metaIgnorePaths = Lst_Init(FALSE); Var_Append(MAKE_META_IGNORE_PATHS, "/dev /etc /proc /tmp /var/run /var/tmp ${TMPDIR}", VAR_GLOBAL); - metaIgnorePathsStr = Var_Subst(NULL, - "${" MAKE_META_IGNORE_PATHS ":O:u:tA}", VAR_GLOBAL, - VARE_WANTRES); + metaIgnorePathsStr = Var_Subst("${" MAKE_META_IGNORE_PATHS ":O:u:tA}", + VAR_GLOBAL, VARE_WANTRES); if (metaIgnorePathsStr) { str2Lst_Append(metaIgnorePaths, metaIgnorePathsStr, NULL); } @@ -818,7 +817,7 @@ meta_job_output(Job *job, char *cp, cons if (!meta_prefix) { char *cp2; - meta_prefix = Var_Subst(NULL, "${" MAKE_META_PREFIX "}", + meta_prefix = Var_Subst("${" MAKE_META_PREFIX "}", VAR_GLOBAL, VARE_WANTRES); if ((cp2 = strchr(meta_prefix, '$'))) meta_prefix_len = cp2 - meta_prefix; @@ -1013,7 +1012,7 @@ meta_ignore(GNode *gn, const char *p) if (metaIgnorePatterns) { Var_Set(".p.", p, gn); const char *expr = "${" MAKE_META_IGNORE_PATTERNS ":@m@${.p.:M$m}@}"; - char *pm = Var_Subst(NULL, expr, gn, VARE_WANTRES); + char *pm = Var_Subst(expr, gn, VARE_WANTRES); if (*pm) { #ifdef DEBUG_META_MODE if (DEBUG(META)) @@ -1033,7 +1032,7 @@ meta_ignore(GNode *gn, const char *p) snprintf(fname, sizeof(fname), "${%s:L:${%s:ts:}}", p, MAKE_META_IGNORE_FILTER); - fm = Var_Subst(NULL, fname, gn, VARE_WANTRES); + fm = Var_Subst(fname, gn, VARE_WANTRES); if (*fm == '\0') { #ifdef DEBUG_META_MODE if (DEBUG(META)) @@ -1532,7 +1531,7 @@ meta_oodate(GNode *gn, Boolean oodate) if (DEBUG(META)) fprintf(debug_file, "%s: %d: cannot compare command using .OODATE\n", fname, lineno); } - cmd = Var_Subst(NULL, cmd, gn, VARE_WANTRES|VARE_UNDEFERR); + cmd = Var_Subst(cmd, gn, VARE_WANTRES|VARE_UNDEFERR); if ((cp = strchr(cmd, '\n'))) { int n; Index: src/usr.bin/make/nonints.h diff -u src/usr.bin/make/nonints.h:1.86 src/usr.bin/make/nonints.h:1.87 --- src/usr.bin/make/nonints.h:1.86 Sun Jul 26 20:21:31 2020 +++ src/usr.bin/make/nonints.h Tue Jul 28 16:42:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nonints.h,v 1.86 2020/07/26 20:21:31 rillig Exp $ */ +/* $NetBSD: nonints.h,v 1.87 2020/07/28 16:42:22 rillig Exp $ */ /*- * Copyright (c) 1988, 1989, 1990, 1993 @@ -192,7 +192,7 @@ void Var_Append(const char *, const char Boolean Var_Exists(const char *, GNode *); char *Var_Value(const char *, GNode *, char **); const char *Var_Parse(const char *, GNode *, VarEvalFlags, int *, void **); -char *Var_Subst(const char *, const char *, GNode *, VarEvalFlags); +char *Var_Subst(const char *, GNode *, VarEvalFlags); char *Var_GetTail(const char *); char *Var_GetHead(const char *); void Var_Init(void); Index: src/usr.bin/make/parse.c diff -u src/usr.bin/make/parse.c:1.238 src/usr.bin/make/parse.c:1.239 --- src/usr.bin/make/parse.c:1.238 Mon Jul 20 14:50:41 2020 +++ src/usr.bin/make/parse.c Tue Jul 28 16:42:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: parse.c,v 1.238 2020/07/20 14:50:41 rillig Exp $ */ +/* $NetBSD: parse.c,v 1.239 2020/07/28 16:42:22 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: parse.c,v 1.238 2020/07/20 14:50:41 rillig Exp $"; +static char rcsid[] = "$NetBSD: parse.c,v 1.239 2020/07/28 16:42:22 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)parse.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: parse.c,v 1.238 2020/07/20 14:50:41 rillig Exp $"); +__RCSID("$NetBSD: parse.c,v 1.239 2020/07/28 16:42:22 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -825,7 +825,7 @@ ParseMessage(char *line) while (isspace((unsigned char)*line)) line++; - line = Var_Subst(NULL, line, VAR_CMD, VARE_WANTRES); + line = Var_Subst(line, VAR_CMD, VARE_WANTRES); Parse_Error(mtype, "%s", line); free(line); @@ -1966,7 +1966,7 @@ Parse_DoVar(char *line, GNode *ctxt) if (!Var_Exists(line, ctxt)) Var_Set(line, "", ctxt); - cp = Var_Subst(NULL, cp, ctxt, VARE_WANTRES|VARE_ASSIGN); + cp = Var_Subst(cp, ctxt, VARE_WANTRES|VARE_ASSIGN); oldVars = oldOldVars; freeCp = TRUE; @@ -1981,7 +1981,7 @@ Parse_DoVar(char *line, GNode *ctxt) * expansion on the whole thing. The resulting string will need * freeing when we're done. */ - cp = Var_Subst(NULL, cp, VAR_CMD, VARE_UNDEFERR|VARE_WANTRES); + cp = Var_Subst(cp, VAR_CMD, VARE_UNDEFERR|VARE_WANTRES); freeCp = TRUE; } @@ -2322,7 +2322,7 @@ ParseDoInclude(char *line) * Substitute for any variables in the file name before trying to * find the thing. */ - file = Var_Subst(NULL, file, VAR_CMD, VARE_WANTRES); + file = Var_Subst(file, VAR_CMD, VARE_WANTRES); Parse_include_file(file, endc == '>', (*line == 'd'), silent); free(file); @@ -2616,7 +2616,7 @@ ParseTraditionalInclude(char *line) * Substitute for any variables in the file name before trying to * find the thing. */ - all_files = Var_Subst(NULL, file, VAR_CMD, VARE_WANTRES); + all_files = Var_Subst(file, VAR_CMD, VARE_WANTRES); if (*file == '\0') { Parse_Error(PARSE_FATAL, @@ -2685,7 +2685,7 @@ ParseGmakeExport(char *line) /* * Expand the value before putting it in the environment. */ - value = Var_Subst(NULL, value, VAR_CMD, VARE_WANTRES); + value = Var_Subst(value, VAR_CMD, VARE_WANTRES); setenv(variable, value, 1); free(value); } @@ -3229,7 +3229,7 @@ Parse_File(const char *name, int fd) * variables expanded before being parsed. Tell the variable * module to complain if some variable is undefined... */ - line = Var_Subst(NULL, line, VAR_CMD, VARE_UNDEFERR|VARE_WANTRES); + line = Var_Subst(line, VAR_CMD, VARE_UNDEFERR|VARE_WANTRES); /* * Need a non-circular list for the target nodes Index: src/usr.bin/make/suff.c diff -u src/usr.bin/make/suff.c:1.90 src/usr.bin/make/suff.c:1.91 --- src/usr.bin/make/suff.c:1.90 Sun Jul 26 20:21:31 2020 +++ src/usr.bin/make/suff.c Tue Jul 28 16:42:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: suff.c,v 1.90 2020/07/26 20:21:31 rillig Exp $ */ +/* $NetBSD: suff.c,v 1.91 2020/07/28 16:42:22 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: suff.c,v 1.90 2020/07/26 20:21:31 rillig Exp $"; +static char rcsid[] = "$NetBSD: suff.c,v 1.91 2020/07/28 16:42:22 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)suff.c 8.4 (Berkeley) 3/21/94"; #else -__RCSID("$NetBSD: suff.c,v 1.90 2020/07/26 20:21:31 rillig Exp $"); +__RCSID("$NetBSD: suff.c,v 1.91 2020/07/28 16:42:22 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -1557,7 +1557,7 @@ SuffExpandChildren(LstNode cln, GNode *p if (DEBUG(SUFF)) { fprintf(debug_file, "Expanding \"%s\"...", cgn->name); } - cp = Var_Subst(NULL, cgn->name, pgn, VARE_UNDEFERR|VARE_WANTRES); + cp = Var_Subst(cgn->name, pgn, VARE_UNDEFERR|VARE_WANTRES); if (cp != NULL) { Lst members = Lst_Init(FALSE); Index: src/usr.bin/make/var.c diff -u src/usr.bin/make/var.c:1.351 src/usr.bin/make/var.c:1.352 --- src/usr.bin/make/var.c:1.351 Tue Jul 28 00:01:13 2020 +++ src/usr.bin/make/var.c Tue Jul 28 16:42:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.351 2020/07/28 00:01:13 rillig Exp $ */ +/* $NetBSD: var.c,v 1.352 2020/07/28 16:42:22 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,14 +69,14 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: var.c,v 1.351 2020/07/28 00:01:13 rillig Exp $"; +static char rcsid[] = "$NetBSD: var.c,v 1.352 2020/07/28 16:42:22 rillig Exp $"; #else #include <sys/cdefs.h> #ifndef lint #if 0 static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: var.c,v 1.351 2020/07/28 00:01:13 rillig Exp $"); +__RCSID("$NetBSD: var.c,v 1.352 2020/07/28 16:42:22 rillig Exp $"); #endif #endif /* not lint */ #endif @@ -461,7 +461,7 @@ Var_Delete(const char *name, GNode *ctxt char *cp; if (strchr(name, '$') != NULL) { - cp = Var_Subst(NULL, name, VAR_GLOBAL, VARE_WANTRES); + cp = Var_Subst(name, VAR_GLOBAL, VARE_WANTRES); } else { cp = UNCONST(name); } @@ -547,7 +547,7 @@ Var_Export1(const char *name, VarExportF } n = snprintf(tmp, sizeof(tmp), "${%s}", name); if (n < (int)sizeof(tmp)) { - val = Var_Subst(NULL, tmp, VAR_GLOBAL, VARE_WANTRES); + val = Var_Subst(tmp, VAR_GLOBAL, VARE_WANTRES); setenv(name, val, 1); free(val); } @@ -610,7 +610,7 @@ Var_ExportVars(void) int ac; int i; - val = Var_Subst(NULL, tmp, VAR_GLOBAL, VARE_WANTRES); + val = Var_Subst(tmp, VAR_GLOBAL, VARE_WANTRES); if (*val) { av = brk_string(val, &ac, FALSE, &as); for (i = 0; i < ac; i++) @@ -651,7 +651,7 @@ Var_Export(char *str, int isExport) flags |= VAR_EXPORT_PARENT; } - char *val = Var_Subst(NULL, str, VAR_GLOBAL, VARE_WANTRES); + char *val = Var_Subst(str, VAR_GLOBAL, VARE_WANTRES); if (*val) { av = brk_string(val, &ac, FALSE, &as); for (i = 0; i < ac; i++) { @@ -738,7 +738,7 @@ Var_UnExport(char *str) if (!vlist) { /* Using .MAKE.EXPORTED */ - vlist = Var_Subst(NULL, "${" MAKE_EXPORTED ":O:u}", VAR_GLOBAL, + vlist = Var_Subst("${" MAKE_EXPORTED ":O:u}", VAR_GLOBAL, VARE_WANTRES); } if (vlist) { @@ -767,7 +767,7 @@ Var_UnExport(char *str) n = snprintf(tmp, sizeof(tmp), "${" MAKE_EXPORTED ":N%s}", v->name); if (n < (int)sizeof(tmp)) { - cp = Var_Subst(NULL, tmp, VAR_GLOBAL, VARE_WANTRES); + cp = Var_Subst(tmp, VAR_GLOBAL, VARE_WANTRES); Var_Set(MAKE_EXPORTED, cp, VAR_GLOBAL); free(cp); } @@ -795,7 +795,7 @@ Var_Set_with_flags(const char *name, con * point in searching them all just to save a bit of memory... */ if (strchr(name, '$') != NULL) { - expanded_name = Var_Subst(NULL, name, ctxt, VARE_WANTRES); + expanded_name = Var_Subst(name, ctxt, VARE_WANTRES); if (expanded_name[0] == '\0') { if (DEBUG(VAR)) { fprintf(debug_file, "Var_Set(\"%s\", \"%s\", ...) " @@ -936,7 +936,7 @@ Var_Append(const char *name, const char char *expanded_name = NULL; if (strchr(name, '$') != NULL) { - expanded_name = Var_Subst(NULL, name, ctxt, VARE_WANTRES); + expanded_name = Var_Subst(name, ctxt, VARE_WANTRES); if (expanded_name[0] == '\0') { if (DEBUG(VAR)) { fprintf(debug_file, "Var_Append(\"%s\", \"%s\", ...) " @@ -1001,7 +1001,7 @@ Var_Exists(const char *name, GNode *ctxt char *cp; if ((cp = strchr(name, '$')) != NULL) - cp = Var_Subst(NULL, name, ctxt, VARE_WANTRES); + cp = Var_Subst(name, ctxt, VARE_WANTRES); v = VarFind(cp ? cp : name, ctxt, FIND_CMD | FIND_GLOBAL | FIND_ENV); free(cp); if (v == NULL) @@ -1278,7 +1278,7 @@ ModifyWord_SYSVSubst(const char *word, S Boolean hasPercent; const char *ptr = Str_SYSVMatch(word, args->lhs, &len, &hasPercent); if (ptr != NULL) { - char *varexp = Var_Subst(NULL, args->rhs, args->ctx, VARE_WANTRES); + char *varexp = Var_Subst(args->rhs, args->ctx, VARE_WANTRES); Str_SYSVSubst(buf, varexp, ptr, len, hasPercent); free(varexp); } else { @@ -1486,7 +1486,7 @@ ModifyWord_Loop(const char *word, SepBuf const ModifyWord_LoopArgs *args = data; Var_Set_with_flags(args->tvar, word, args->ctx, VAR_NO_EXPORT); - char *s = Var_Subst(NULL, args->str, args->ctx, args->eflags); + char *s = Var_Subst(args->str, args->ctx, args->eflags); if (DEBUG(VAR)) { fprintf(debug_file, "ModifyWord_Loop: in \"%s\", replace \"%s\" with \"%s\" " @@ -2368,7 +2368,7 @@ ApplyModifier_Match(const char *mod, App if (needSubst) { /* pattern contains embedded '$', so use Var_Subst to expand it. */ char *old_pattern = pattern; - pattern = Var_Subst(NULL, pattern, st->ctxt, st->eflags); + pattern = Var_Subst(pattern, st->ctxt, st->eflags); free(old_pattern); } @@ -3603,7 +3603,7 @@ Var_Parse(const char * const str, GNode */ nstr = Buf_GetAll(&v->val, NULL); if (strchr(nstr, '$') != NULL && (eflags & VARE_WANTRES) != 0) { - nstr = Var_Subst(NULL, nstr, ctxt, eflags); + nstr = Var_Subst(nstr, ctxt, eflags); *freePtr = nstr; } @@ -3695,7 +3695,7 @@ Var_Parse(const char * const str, GNode *----------------------------------------------------------------------- */ char * -Var_Subst(const char *var, const char *str, GNode *ctxt, VarEvalFlags eflags) +Var_Subst(const char *str, GNode *ctxt, VarEvalFlags eflags) { Buffer buf; /* Buffer for forming things */ const char *val; /* Value to substitute for a variable */ @@ -3713,7 +3713,7 @@ Var_Subst(const char *var, const char *s while (*str) { if (*str == '\n' && trailingBslash) Buf_AddByte(&buf, ' '); - if (var == NULL && (*str == '$') && (str[1] == '$')) { + if ((*str == '$') && (str[1] == '$')) { /* * A dollar sign may be escaped either with another dollar sign. * In such a case, we skip over the escape character and store the @@ -3735,61 +3735,6 @@ Var_Subst(const char *var, const char *s continue; Buf_AddBytesBetween(&buf, cp, str); } else { - if (var != NULL) { - int expand; - for (;;) { - if (str[1] == '\0') { - /* A trailing $ is kind of a special case */ - Buf_AddByte(&buf, str[0]); - str++; - expand = FALSE; - } else if (str[1] != PROPEN && str[1] != BROPEN) { - if (str[1] != *var || strlen(var) > 1) { - Buf_AddBytes(&buf, 2, str); - str += 2; - expand = FALSE; - } else - expand = TRUE; - break; - } else { - const char *p; - - /* Scan up to the end of the variable name. */ - for (p = &str[2]; *p && - *p != ':' && *p != PRCLOSE && *p != BRCLOSE; p++) - if (*p == '$') - break; - /* - * A variable inside the variable. We cannot expand - * the external variable yet, so we try again with - * the nested one - */ - if (*p == '$') { - Buf_AddBytesBetween(&buf, str, p); - str = p; - continue; - } - - if (strncmp(var, str + 2, p - str - 2) != 0 || - var[p - str - 2] != '\0') { - /* - * Not the variable we want to expand, scan - * until the next variable - */ - for (; *p != '$' && *p != '\0'; p++) - continue; - Buf_AddBytesBetween(&buf, str, p); - str = p; - expand = FALSE; - } else - expand = TRUE; - break; - } - } - if (!expand) - continue; - } - val = Var_Parse(str, ctxt, eflags, &length, &freeIt); /*