make: clean up calls to Var_Subst
None of the calls to Var_Subst used the return value, and the return value was always VPR_OK. No functional change.
This commit is contained in:
parent
192d43a788
commit
a4cbe1d736
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: compat.c,v 1.244 2023/01/17 21:35:19 christos Exp $ */
|
||||
/* $NetBSD: compat.c,v 1.245 2023/02/14 21:38:31 rillig Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
|
||||
|
@ -91,7 +91,7 @@
|
|||
#include "pathnames.h"
|
||||
|
||||
/* "@(#)compat.c 8.2 (Berkeley) 3/19/94" */
|
||||
MAKE_RCSID("$NetBSD: compat.c,v 1.244 2023/01/17 21:35:19 christos Exp $");
|
||||
MAKE_RCSID("$NetBSD: compat.c,v 1.245 2023/02/14 21:38:31 rillig Exp $");
|
||||
|
||||
static GNode *curTarg = NULL;
|
||||
static pid_t compatChild;
|
||||
|
@ -238,7 +238,7 @@ Compat_RunCommand(const char *cmdp, GNode *gn, StringListNode *ln)
|
|||
errCheck = !(gn->type & OP_IGNORE);
|
||||
doIt = false;
|
||||
|
||||
(void)Var_Subst(cmd, gn, VARE_WANTRES, &cmdStart);
|
||||
cmdStart = Var_Subst(cmd, gn, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
|
||||
if (cmdStart[0] == '\0') {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: for.c,v 1.170 2022/09/03 00:50:07 rillig Exp $ */
|
||||
/* $NetBSD: for.c,v 1.171 2023/02/14 21:38:31 rillig Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, The Regents of the University of California.
|
||||
|
@ -58,7 +58,7 @@
|
|||
#include "make.h"
|
||||
|
||||
/* "@(#)for.c 8.1 (Berkeley) 6/6/93" */
|
||||
MAKE_RCSID("$NetBSD: for.c,v 1.170 2022/09/03 00:50:07 rillig Exp $");
|
||||
MAKE_RCSID("$NetBSD: for.c,v 1.171 2023/02/14 21:38:31 rillig Exp $");
|
||||
|
||||
|
||||
typedef struct ForLoop {
|
||||
|
@ -168,7 +168,9 @@ ForLoop_ParseItems(ForLoop *f, const char *p)
|
|||
|
||||
cpp_skip_whitespace(&p);
|
||||
|
||||
if (Var_Subst(p, SCOPE_GLOBAL, VARE_WANTRES, &items) != VPR_OK) {
|
||||
items = Var_Subst(p, SCOPE_GLOBAL, VARE_WANTRES);
|
||||
if (items == var_Error) {
|
||||
/* TODO: Make this part of the code reachable. */
|
||||
Parse_Error(PARSE_FATAL, "Error in .for loop items");
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: job.c,v 1.457 2023/01/17 21:35:19 christos Exp $ */
|
||||
/* $NetBSD: job.c,v 1.458 2023/02/14 21:38:31 rillig Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
|
||||
|
@ -142,7 +142,7 @@
|
|||
#include "trace.h"
|
||||
|
||||
/* "@(#)job.c 8.2 (Berkeley) 3/19/94" */
|
||||
MAKE_RCSID("$NetBSD: job.c,v 1.457 2023/01/17 21:35:19 christos Exp $");
|
||||
MAKE_RCSID("$NetBSD: job.c,v 1.458 2023/02/14 21:38:31 rillig Exp $");
|
||||
|
||||
/*
|
||||
* A shell defines how the commands are run. All commands for a target are
|
||||
|
@ -911,7 +911,7 @@ JobWriteCommand(Job *job, ShellWriter *wr, StringListNode *ln, const char *ucmd)
|
|||
|
||||
run = GNode_ShouldExecute(job->node);
|
||||
|
||||
(void)Var_Subst(ucmd, job->node, VARE_WANTRES, &xcmd);
|
||||
xcmd = Var_Subst(ucmd, job->node, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
xcmdStart = xcmd;
|
||||
|
||||
|
@ -1040,7 +1040,7 @@ JobSaveCommands(Job *job)
|
|||
* variables such as .TARGET, .IMPSRC. It is not intended to
|
||||
* expand the other variables as well; see deptgt-end.mk.
|
||||
*/
|
||||
(void)Var_Subst(cmd, job->node, VARE_WANTRES, &expanded_cmd);
|
||||
expanded_cmd = Var_Subst(cmd, job->node, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
Lst_Append(&Targ_GetEndNode()->commands, expanded_cmd);
|
||||
}
|
||||
|
@ -1076,8 +1076,7 @@ DebugFailedJob(const Job *job)
|
|||
debug_printf("\t%s\n", cmd);
|
||||
|
||||
if (strchr(cmd, '$') != NULL) {
|
||||
char *xcmd;
|
||||
(void)Var_Subst(cmd, job->node, VARE_WANTRES, &xcmd);
|
||||
char *xcmd = Var_Subst(cmd, job->node, VARE_WANTRES);
|
||||
debug_printf("\t=> %s\n", xcmd);
|
||||
free(xcmd);
|
||||
}
|
||||
|
@ -2201,8 +2200,8 @@ Job_SetPrefix(void)
|
|||
Global_Set(MAKE_JOB_PREFIX, "---");
|
||||
}
|
||||
|
||||
(void)Var_Subst("${" MAKE_JOB_PREFIX "}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES, &targPrefix);
|
||||
targPrefix = Var_Subst("${" MAKE_JOB_PREFIX "}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: main.c,v 1.589 2023/01/26 20:48:17 sjg Exp $ */
|
||||
/* $NetBSD: main.c,v 1.590 2023/02/14 21:38:31 rillig Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1990, 1993
|
||||
|
@ -111,7 +111,7 @@
|
|||
#include "trace.h"
|
||||
|
||||
/* "@(#)main.c 8.3 (Berkeley) 3/19/94" */
|
||||
MAKE_RCSID("$NetBSD: main.c,v 1.589 2023/01/26 20:48:17 sjg Exp $");
|
||||
MAKE_RCSID("$NetBSD: main.c,v 1.590 2023/02/14 21:38:31 rillig Exp $");
|
||||
#if defined(MAKE_NATIVE) && !defined(lint)
|
||||
__COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
|
||||
"The Regents of the University of California. "
|
||||
|
@ -788,9 +788,8 @@ siginfo(int signo MAKE_ATTR_UNUSED)
|
|||
static void
|
||||
MakeMode(void)
|
||||
{
|
||||
char *mode;
|
||||
|
||||
(void)Var_Subst("${" MAKE_MODE ":tl}", SCOPE_GLOBAL, VARE_WANTRES, &mode);
|
||||
char *mode = Var_Subst("${" MAKE_MODE ":tl}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
|
||||
if (mode[0] != '\0') {
|
||||
|
@ -813,16 +812,14 @@ static void
|
|||
PrintVar(const char *varname, bool expandVars)
|
||||
{
|
||||
if (strchr(varname, '$') != NULL) {
|
||||
char *evalue;
|
||||
(void)Var_Subst(varname, SCOPE_GLOBAL, VARE_WANTRES, &evalue);
|
||||
char *evalue = Var_Subst(varname, SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
printf("%s\n", evalue);
|
||||
free(evalue);
|
||||
|
||||
} else if (expandVars) {
|
||||
char *expr = str_concat3("${", varname, "}");
|
||||
char *evalue;
|
||||
(void)Var_Subst(expr, SCOPE_GLOBAL, VARE_WANTRES, &evalue);
|
||||
char *evalue = Var_Subst(expr, SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
free(expr);
|
||||
printf("%s\n", evalue);
|
||||
|
@ -848,7 +845,7 @@ GetBooleanExpr(const char *expr, bool fallback)
|
|||
char *value;
|
||||
bool res;
|
||||
|
||||
(void)Var_Subst(expr, SCOPE_GLOBAL, VARE_WANTRES, &value);
|
||||
value = Var_Subst(expr, SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
res = ParseBoolean(value, fallback);
|
||||
free(value);
|
||||
|
@ -1205,7 +1202,7 @@ InitMaxJobs(void)
|
|||
!Var_Exists(SCOPE_GLOBAL, ".MAKE.JOBS"))
|
||||
return;
|
||||
|
||||
(void)Var_Subst("${.MAKE.JOBS}", SCOPE_GLOBAL, VARE_WANTRES, &value);
|
||||
value = Var_Subst("${.MAKE.JOBS}", SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
n = (int)strtol(value, NULL, 0);
|
||||
if (n < 1) {
|
||||
|
@ -1240,7 +1237,7 @@ InitVpath(void)
|
|||
if (!Var_Exists(SCOPE_CMDLINE, "VPATH"))
|
||||
return;
|
||||
|
||||
(void)Var_Subst("${VPATH}", SCOPE_CMDLINE, VARE_WANTRES, &vpath);
|
||||
vpath = Var_Subst("${VPATH}", SCOPE_CMDLINE, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
path = vpath;
|
||||
do {
|
||||
|
@ -1276,10 +1273,8 @@ ReadFirstDefaultMakefile(void)
|
|||
{
|
||||
StringList makefiles = LST_INIT;
|
||||
StringListNode *ln;
|
||||
char *prefs;
|
||||
|
||||
(void)Var_Subst("${" MAKE_MAKEFILE_PREFERENCE "}",
|
||||
SCOPE_CMDLINE, VARE_WANTRES, &prefs);
|
||||
char *prefs = Var_Subst("${" MAKE_MAKEFILE_PREFERENCE "}",
|
||||
SCOPE_CMDLINE, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
|
||||
(void)str2Lst_Append(&makefiles, prefs);
|
||||
|
@ -1498,8 +1493,8 @@ main_PrepareMaking(void)
|
|||
{
|
||||
/* In particular suppress .depend for '-r -V .OBJDIR -f /dev/null' */
|
||||
if (!opts.noBuiltins || opts.printVars == PVM_NONE) {
|
||||
(void)Var_Subst("${.MAKE.DEPENDFILE}",
|
||||
SCOPE_CMDLINE, VARE_WANTRES, &makeDependfile);
|
||||
makeDependfile = Var_Subst("${.MAKE.DEPENDFILE}",
|
||||
SCOPE_CMDLINE, VARE_WANTRES);
|
||||
if (makeDependfile[0] != '\0') {
|
||||
/* TODO: handle errors */
|
||||
doing_depend = true;
|
||||
|
@ -2061,9 +2056,9 @@ PrintOnError(GNode *gn, const char *msg)
|
|||
SetErrorVars(gn);
|
||||
|
||||
{
|
||||
char *errorVarsValues;
|
||||
(void)Var_Subst("${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'\n@}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES, &errorVarsValues);
|
||||
char *errorVarsValues = Var_Subst(
|
||||
"${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'\n@}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
printf("%s", errorVarsValues);
|
||||
free(errorVarsValues);
|
||||
|
@ -2091,9 +2086,9 @@ Main_ExportMAKEFLAGS(bool first)
|
|||
return;
|
||||
once = false;
|
||||
|
||||
(void)Var_Subst(
|
||||
flags = Var_Subst(
|
||||
"${.MAKEFLAGS} ${.MAKEOVERRIDES:O:u:@v@$v=${$v:Q}@}",
|
||||
SCOPE_CMDLINE, VARE_WANTRES, &flags);
|
||||
SCOPE_CMDLINE, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
if (flags[0] != '\0') {
|
||||
#ifdef POSIX
|
||||
|
@ -2114,8 +2109,8 @@ getTmpdir(void)
|
|||
return tmpdir;
|
||||
|
||||
/* Honor $TMPDIR if it is valid, strip a trailing '/'. */
|
||||
(void)Var_Subst("${TMPDIR:tA:U" _PATH_TMP ":S,/$,,W}/",
|
||||
SCOPE_GLOBAL, VARE_WANTRES, &tmpdir);
|
||||
tmpdir = Var_Subst("${TMPDIR:tA:U" _PATH_TMP ":S,/$,,W}/",
|
||||
SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
|
||||
if (stat(tmpdir, &st) < 0 || !S_ISDIR(st.st_mode)) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: make.c,v 1.258 2022/12/05 23:28:08 rillig Exp $ */
|
||||
/* $NetBSD: make.c,v 1.259 2023/02/14 21:38:31 rillig Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1990, 1993
|
||||
|
@ -104,7 +104,7 @@
|
|||
#include "job.h"
|
||||
|
||||
/* "@(#)make.c 8.1 (Berkeley) 6/6/93" */
|
||||
MAKE_RCSID("$NetBSD: make.c,v 1.258 2022/12/05 23:28:08 rillig Exp $");
|
||||
MAKE_RCSID("$NetBSD: make.c,v 1.259 2023/02/14 21:38:31 rillig Exp $");
|
||||
|
||||
/* Sequence # to detect recursion. */
|
||||
static unsigned int checked_seqno = 1;
|
||||
|
@ -445,7 +445,7 @@ Make_HandleUse(GNode *cgn, GNode *pgn)
|
|||
} else {
|
||||
free(gn->name);
|
||||
}
|
||||
(void)Var_Subst(gn->uname, pgn, VARE_WANTRES, &gn->name);
|
||||
gn->name = Var_Subst(gn->uname, pgn, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
if (gn->uname != NULL && strcmp(gn->name, gn->uname) != 0) {
|
||||
/* See if we have a target for this node. */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: make.h,v 1.312 2023/02/14 21:08:00 rillig Exp $ */
|
||||
/* $NetBSD: make.h,v 1.313 2023/02/14 21:38:31 rillig Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1990, 1993
|
||||
|
@ -1018,7 +1018,7 @@ bool Var_ExistsExpand(GNode *, const char *) MAKE_ATTR_USE;
|
|||
FStr Var_Value(GNode *, const char *) MAKE_ATTR_USE;
|
||||
const char *GNode_ValueDirect(GNode *, const char *) MAKE_ATTR_USE;
|
||||
FStr Var_Parse(const char **, GNode *, VarEvalMode);
|
||||
VarParseResult Var_Subst(const char *, GNode *, VarEvalMode, char **);
|
||||
char *Var_Subst(const char *, GNode *, VarEvalMode);
|
||||
void Var_Expand(FStr *, GNode *, VarEvalMode);
|
||||
void Var_Stats(void);
|
||||
void Var_Dump(GNode *);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: meta.c,v 1.201 2022/09/28 16:34:47 sjg Exp $ */
|
||||
/* $NetBSD: meta.c,v 1.202 2023/02/14 21:38:31 rillig Exp $ */
|
||||
|
||||
/*
|
||||
* Implement 'meta' mode.
|
||||
|
@ -321,7 +321,7 @@ is_submake(const char *cmd, GNode *gn)
|
|||
p_len = strlen(p_make);
|
||||
}
|
||||
if (strchr(cmd, '$') != NULL) {
|
||||
(void)Var_Subst(cmd, gn, VARE_WANTRES, &mp);
|
||||
mp = Var_Subst(cmd, gn, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
cmd = mp;
|
||||
}
|
||||
|
@ -475,10 +475,8 @@ meta_create(BuildMon *pbm, GNode *gn)
|
|||
dname.str = objdir_realpath;
|
||||
|
||||
if (metaVerbose) {
|
||||
char *mp;
|
||||
|
||||
/* Describe the target we are building */
|
||||
(void)Var_Subst("${" MAKE_META_PREFIX "}", gn, VARE_WANTRES, &mp);
|
||||
char *mp = Var_Subst("${" MAKE_META_PREFIX "}", gn, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
if (mp[0] != '\0')
|
||||
fprintf(stdout, "%s\n", mp);
|
||||
|
@ -614,8 +612,8 @@ meta_mode_init(const char *make_mode)
|
|||
/*
|
||||
* We consider ourselves master of all within ${.MAKE.META.BAILIWICK}
|
||||
*/
|
||||
(void)Var_Subst("${.MAKE.META.BAILIWICK:O:u:tA}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES, &metaBailiwickStr);
|
||||
metaBailiwickStr = Var_Subst("${.MAKE.META.BAILIWICK:O:u:tA}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
str2Lst_Append(&metaBailiwick, metaBailiwickStr);
|
||||
/*
|
||||
|
@ -623,8 +621,8 @@ meta_mode_init(const char *make_mode)
|
|||
*/
|
||||
Global_Append(MAKE_META_IGNORE_PATHS,
|
||||
"/dev /etc /proc /tmp /var/run /var/tmp ${TMPDIR}");
|
||||
(void)Var_Subst("${" MAKE_META_IGNORE_PATHS ":O:u:tA}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES, &metaIgnorePathsStr);
|
||||
metaIgnorePathsStr = Var_Subst("${" MAKE_META_IGNORE_PATHS ":O:u:tA}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
str2Lst_Append(&metaIgnorePaths, metaIgnorePathsStr);
|
||||
|
||||
|
@ -794,8 +792,8 @@ meta_job_output(Job *job, char *cp, const char *nl)
|
|||
if (meta_prefix == NULL) {
|
||||
char *cp2;
|
||||
|
||||
(void)Var_Subst("${" MAKE_META_PREFIX "}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES, &meta_prefix);
|
||||
meta_prefix = Var_Subst("${" MAKE_META_PREFIX "}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
if ((cp2 = strchr(meta_prefix, '$')) != NULL)
|
||||
meta_prefix_len = (size_t)(cp2 - meta_prefix);
|
||||
|
@ -982,7 +980,7 @@ meta_ignore(GNode *gn, const char *p)
|
|||
*/
|
||||
Var_Set(gn, ".p.", p);
|
||||
expr = "${" MAKE_META_IGNORE_PATTERNS ":@m@${.p.:M$m}@}";
|
||||
(void)Var_Subst(expr, gn, VARE_WANTRES, &pm);
|
||||
pm = Var_Subst(expr, gn, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
if (pm[0] != '\0') {
|
||||
#ifdef DEBUG_META_MODE
|
||||
|
@ -1001,7 +999,7 @@ meta_ignore(GNode *gn, const char *p)
|
|||
snprintf(fname, sizeof fname,
|
||||
"${%s:L:${%s:ts:}}",
|
||||
p, MAKE_META_IGNORE_FILTER);
|
||||
(void)Var_Subst(fname, gn, VARE_WANTRES, &fm);
|
||||
fm = Var_Subst(fname, gn, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
if (*fm == '\0') {
|
||||
#ifdef DEBUG_META_MODE
|
||||
|
@ -1059,7 +1057,9 @@ static char *
|
|||
meta_filter_cmd(GNode *gn, char *s)
|
||||
{
|
||||
Var_Set(gn, META_CMD_FILTER_VAR, s);
|
||||
Var_Subst("${" META_CMD_FILTER_VAR ":${" MAKE_META_CMP_FILTER ":ts:}}", gn, VARE_WANTRES, &s);
|
||||
s = Var_Subst(
|
||||
"${" META_CMD_FILTER_VAR ":${" MAKE_META_CMP_FILTER ":ts:}}",
|
||||
gn, VARE_WANTRES);
|
||||
return s;
|
||||
}
|
||||
|
||||
|
@ -1527,7 +1527,7 @@ meta_oodate(GNode *gn, bool oodate)
|
|||
DEBUG2(META, "%s: %u: cannot compare command using .OODATE\n",
|
||||
fname, lineno);
|
||||
}
|
||||
(void)Var_Subst(cmd, gn, VARE_UNDEFERR, &cmd);
|
||||
cmd = Var_Subst(cmd, gn, VARE_UNDEFERR);
|
||||
/* TODO: handle errors */
|
||||
|
||||
if ((cp = strchr(cmd, '\n')) != NULL) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: parse.c,v 1.693 2023/02/14 21:08:00 rillig Exp $ */
|
||||
/* $NetBSD: parse.c,v 1.694 2023/02/14 21:38:31 rillig Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1990, 1993
|
||||
|
@ -105,7 +105,7 @@
|
|||
#include "pathnames.h"
|
||||
|
||||
/* "@(#)parse.c 8.3 (Berkeley) 3/19/94" */
|
||||
MAKE_RCSID("$NetBSD: parse.c,v 1.693 2023/02/14 21:08:00 rillig Exp $");
|
||||
MAKE_RCSID("$NetBSD: parse.c,v 1.694 2023/02/14 21:38:31 rillig Exp $");
|
||||
|
||||
/*
|
||||
* A file being read.
|
||||
|
@ -578,7 +578,7 @@ HandleMessage(ParseErrorLevel level, const char *levelName, const char *umsg)
|
|||
return;
|
||||
}
|
||||
|
||||
(void)Var_Subst(umsg, SCOPE_CMDLINE, VARE_WANTRES, &xmsg);
|
||||
xmsg = Var_Subst(umsg, SCOPE_CMDLINE, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
|
||||
Parse_Error(level, "%s", xmsg);
|
||||
|
@ -1774,10 +1774,8 @@ VarCheckSyntax(VarAssignOp type, const char *uvalue, GNode *scope)
|
|||
{
|
||||
if (opts.strict) {
|
||||
if (type != VAR_SUBST && strchr(uvalue, '$') != NULL) {
|
||||
char *expandedValue;
|
||||
|
||||
(void)Var_Subst(uvalue, scope, VARE_PARSE_ONLY,
|
||||
&expandedValue);
|
||||
char *expandedValue = Var_Subst(uvalue,
|
||||
scope, VARE_PARSE_ONLY);
|
||||
/* TODO: handle errors */
|
||||
free(expandedValue);
|
||||
}
|
||||
|
@ -1803,7 +1801,7 @@ VarAssign_EvalSubst(GNode *scope, const char *name, const char *uvalue,
|
|||
if (!Var_ExistsExpand(scope, name))
|
||||
Var_SetExpand(scope, name, "");
|
||||
|
||||
(void)Var_Subst(uvalue, scope, VARE_KEEP_DOLLAR_UNDEF, &evalue);
|
||||
evalue = Var_Subst(uvalue, scope, VARE_KEEP_DOLLAR_UNDEF);
|
||||
/* TODO: handle errors */
|
||||
|
||||
Var_SetExpand(scope, name, evalue);
|
||||
|
@ -2240,7 +2238,7 @@ ParseTraditionalInclude(char *line)
|
|||
|
||||
pp_skip_whitespace(&file);
|
||||
|
||||
(void)Var_Subst(file, SCOPE_CMDLINE, VARE_WANTRES, &all_files);
|
||||
all_files = Var_Subst(file, SCOPE_CMDLINE, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
|
||||
for (file = all_files; !done; file = cp + 1) {
|
||||
|
@ -2285,7 +2283,7 @@ ParseGmakeExport(char *line)
|
|||
/*
|
||||
* Expand the value before putting it in the environment.
|
||||
*/
|
||||
(void)Var_Subst(value, SCOPE_CMDLINE, VARE_WANTRES, &value);
|
||||
value = Var_Subst(value, SCOPE_CMDLINE, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
|
||||
setenv(variable, value, 1);
|
||||
|
@ -2862,7 +2860,7 @@ ParseDependencyLine(char *line)
|
|||
* Var_Subst.
|
||||
*/
|
||||
emode = opts.strict ? VARE_WANTRES : VARE_UNDEFERR;
|
||||
(void)Var_Subst(line, SCOPE_CMDLINE, emode, &expanded_line);
|
||||
expanded_line = Var_Subst(line, SCOPE_CMDLINE, emode);
|
||||
/* TODO: handle errors */
|
||||
|
||||
/* Need a fresh list for the target nodes */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: suff.c,v 1.367 2023/02/14 21:08:00 rillig Exp $ */
|
||||
/* $NetBSD: suff.c,v 1.368 2023/02/14 21:38:31 rillig Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1990, 1993
|
||||
|
@ -115,7 +115,7 @@
|
|||
#include "dir.h"
|
||||
|
||||
/* "@(#)suff.c 8.4 (Berkeley) 3/21/94" */
|
||||
MAKE_RCSID("$NetBSD: suff.c,v 1.367 2023/02/14 21:08:00 rillig Exp $");
|
||||
MAKE_RCSID("$NetBSD: suff.c,v 1.368 2023/02/14 21:38:31 rillig Exp $");
|
||||
|
||||
typedef List SuffixList;
|
||||
typedef ListNode SuffixListNode;
|
||||
|
@ -1383,7 +1383,7 @@ ExpandChildren(GNodeListNode *cln, GNode *pgn)
|
|||
}
|
||||
|
||||
DEBUG1(SUFF, "Expanding \"%s\"...", cgn->name);
|
||||
(void)Var_Subst(cgn->name, pgn, VARE_UNDEFERR, &cp);
|
||||
cp = Var_Subst(cgn->name, pgn, VARE_UNDEFERR);
|
||||
/* TODO: handle errors */
|
||||
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: var.c,v 1.1042 2023/02/14 21:08:00 rillig Exp $ */
|
||||
/* $NetBSD: var.c,v 1.1043 2023/02/14 21:38:31 rillig Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988, 1989, 1990, 1993
|
||||
|
@ -139,7 +139,7 @@
|
|||
#include "metachar.h"
|
||||
|
||||
/* "@(#)var.c 8.3 (Berkeley) 3/19/94" */
|
||||
MAKE_RCSID("$NetBSD: var.c,v 1.1042 2023/02/14 21:08:00 rillig Exp $");
|
||||
MAKE_RCSID("$NetBSD: var.c,v 1.1043 2023/02/14 21:38:31 rillig Exp $");
|
||||
|
||||
/*
|
||||
* Variables are defined using one of the VAR=value assignments. Their
|
||||
|
@ -537,7 +537,6 @@ Var_Delete(GNode *scope, const char *varname)
|
|||
void
|
||||
Var_Undef(const char *arg)
|
||||
{
|
||||
VarParseResult vpr;
|
||||
char *expanded;
|
||||
Words varnames;
|
||||
size_t i;
|
||||
|
@ -548,8 +547,9 @@ Var_Undef(const char *arg)
|
|||
return;
|
||||
}
|
||||
|
||||
vpr = Var_Subst(arg, SCOPE_GLOBAL, VARE_WANTRES, &expanded);
|
||||
if (vpr != VPR_OK) {
|
||||
expanded = Var_Subst(arg, SCOPE_GLOBAL, VARE_WANTRES);
|
||||
if (expanded == var_Error) {
|
||||
/* TODO: Make this part of the code reachable. */
|
||||
Parse_Error(PARSE_FATAL,
|
||||
"Error in variable names to be undefined");
|
||||
return;
|
||||
|
@ -619,7 +619,7 @@ ExportVarEnv(Var *v)
|
|||
|
||||
/* XXX: name is injected without escaping it */
|
||||
expr = str_concat3("${", name, "}");
|
||||
(void)Var_Subst(expr, SCOPE_GLOBAL, VARE_WANTRES, &val);
|
||||
val = Var_Subst(expr, SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
setenv(name, val, 1);
|
||||
free(val);
|
||||
|
@ -719,8 +719,8 @@ Var_ReexportVars(void)
|
|||
return;
|
||||
}
|
||||
|
||||
(void)Var_Subst("${" MAKE_EXPORTED ":O:u}", SCOPE_GLOBAL, VARE_WANTRES,
|
||||
&xvarnames);
|
||||
xvarnames = Var_Subst("${" MAKE_EXPORTED ":O:u}", SCOPE_GLOBAL,
|
||||
VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
if (xvarnames[0] != '\0') {
|
||||
Words varnames = Str_Words(xvarnames, false);
|
||||
|
@ -760,9 +760,7 @@ ExportVars(const char *varnames, bool isExport, VarExportMode mode)
|
|||
static void
|
||||
ExportVarsExpand(const char *uvarnames, bool isExport, VarExportMode mode)
|
||||
{
|
||||
char *xvarnames;
|
||||
|
||||
(void)Var_Subst(uvarnames, SCOPE_GLOBAL, VARE_WANTRES, &xvarnames);
|
||||
char *xvarnames = Var_Subst(uvarnames, SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
ExportVars(xvarnames, isExport, mode);
|
||||
free(xvarnames);
|
||||
|
@ -838,10 +836,9 @@ GetVarnamesToUnexport(bool isEnv, const char *arg,
|
|||
}
|
||||
|
||||
if (what != UNEXPORT_NAMED) {
|
||||
char *expanded;
|
||||
/* Using .MAKE.EXPORTED */
|
||||
(void)Var_Subst("${" MAKE_EXPORTED ":O:u}", SCOPE_GLOBAL,
|
||||
VARE_WANTRES, &expanded);
|
||||
char *expanded = Var_Subst("${" MAKE_EXPORTED ":O:u}",
|
||||
SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
varnames = FStr_InitOwn(expanded);
|
||||
}
|
||||
|
@ -872,8 +869,7 @@ UnexportVar(Substring varname, UnexportWhat what)
|
|||
/* XXX: v->name is injected without escaping it */
|
||||
char *expr = str_concat3("${" MAKE_EXPORTED ":N",
|
||||
v->name.str, "}");
|
||||
char *cp;
|
||||
(void)Var_Subst(expr, SCOPE_GLOBAL, VARE_WANTRES, &cp);
|
||||
char *cp = Var_Subst(expr, SCOPE_GLOBAL, VARE_WANTRES);
|
||||
/* TODO: handle errors */
|
||||
Global_Set(MAKE_EXPORTED, cp);
|
||||
free(cp);
|
||||
|
@ -1698,7 +1694,7 @@ ModifyWord_Loop(Substring word, SepBuf *buf, void *data)
|
|||
assert(word.end[0] == '\0'); /* assume null-terminated word */
|
||||
Var_SetWithFlags(args->scope, args->var, word.start,
|
||||
VAR_SET_NO_EXPORT);
|
||||
(void)Var_Subst(args->body, args->scope, args->emode, &s);
|
||||
s = Var_Subst(args->body, args->scope, args->emode);
|
||||
/* TODO: handle errors */
|
||||
|
||||
assert(word.end[0] == '\0'); /* assume null-terminated word */
|
||||
|
@ -2805,7 +2801,7 @@ ParseModifier_Match(const char **pp, const ModChain *ch)
|
|||
* XXX: Contrary to ParseModifierPart, a dollar in a ':M' or
|
||||
* ':N' modifier must be escaped as '$$', not as '\$'.
|
||||
*/
|
||||
(void)Var_Subst(pattern, expr->scope, expr->emode, &pattern);
|
||||
pattern = Var_Subst(pattern, expr->scope, expr->emode);
|
||||
/* TODO: handle errors */
|
||||
free(old_pattern);
|
||||
}
|
||||
|
@ -4572,8 +4568,7 @@ Var_Parse(const char **pp, GNode *scope, VarEvalMode emode)
|
|||
if (opts.strict)
|
||||
nested_emode = VarEvalMode_UndefOk(nested_emode);
|
||||
v->inUse = true;
|
||||
(void)Var_Subst(Expr_Str(&expr), scope, nested_emode,
|
||||
&expanded);
|
||||
expanded = Var_Subst(Expr_Str(&expr), scope, nested_emode);
|
||||
v->inUse = false;
|
||||
/* TODO: handle errors */
|
||||
Expr_SetValueOwn(&expr, expanded);
|
||||
|
@ -4711,8 +4706,8 @@ VarSubstPlain(const char **pp, Buffer *res)
|
|||
* variables. The other scopes are searched as well.
|
||||
* emode The mode for parsing or evaluating subexpressions.
|
||||
*/
|
||||
VarParseResult
|
||||
Var_Subst(const char *str, GNode *scope, VarEvalMode emode, char **out_res)
|
||||
char *
|
||||
Var_Subst(const char *str, GNode *scope, VarEvalMode emode)
|
||||
{
|
||||
const char *p = str;
|
||||
Buffer res;
|
||||
|
@ -4736,8 +4731,7 @@ Var_Subst(const char *str, GNode *scope, VarEvalMode emode, char **out_res)
|
|||
VarSubstPlain(&p, &res);
|
||||
}
|
||||
|
||||
*out_res = Buf_DoneDataCompact(&res);
|
||||
return VPR_OK;
|
||||
return Buf_DoneDataCompact(&res);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -4747,7 +4741,7 @@ Var_Expand(FStr *str, GNode *scope, VarEvalMode emode)
|
|||
|
||||
if (strchr(str->str, '$') == NULL)
|
||||
return;
|
||||
(void)Var_Subst(str->str, scope, emode, &expanded);
|
||||
expanded = Var_Subst(str->str, scope, emode);
|
||||
/* TODO: handle errors */
|
||||
FStr_Done(str);
|
||||
*str = FStr_InitOwn(expanded);
|
||||
|
|
Loading…
Reference in New Issue