Module Name: src
Committed By: rillig
Date: Tue Jan 14 21:34:09 UTC 2025
Modified Files:
src/usr.bin/make: parse.c
src/usr.bin/make/unit-tests: var-op-shell.exp
Log Message:
make: simplify code for evaluating the '!=' variable assignment
An undefined variable evaluates to an empty string, without an error
message.
To generate a diff of this commit:
cvs rdiff -u -r1.737 -r1.738 src/usr.bin/make/parse.c
cvs rdiff -u -r1.8 -r1.9 src/usr.bin/make/unit-tests/var-op-shell.exp
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/parse.c
diff -u src/usr.bin/make/parse.c:1.737 src/usr.bin/make/parse.c:1.738
--- src/usr.bin/make/parse.c:1.737 Tue Jan 14 21:23:17 2025
+++ src/usr.bin/make/parse.c Tue Jan 14 21:34:09 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: parse.c,v 1.737 2025/01/14 21:23:17 rillig Exp $ */
+/* $NetBSD: parse.c,v 1.738 2025/01/14 21:34:09 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.737 2025/01/14 21:23:17 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.738 2025/01/14 21:34:09 rillig Exp $");
/* Detects a multiple-inclusion guard in a makefile. */
typedef enum {
@@ -1841,7 +1841,7 @@ VarAssign_EvalShell(const char *name, co
char *output, *error;
cmd = FStr_InitRefer(uvalue);
- Var_Expand(&cmd, SCOPE_CMDLINE, VARE_EVAL_DEFINED);
+ Var_Expand(&cmd, SCOPE_CMDLINE, VARE_EVAL);
output = Cmd_Exec(cmd.str, &error);
Var_SetExpand(scope, name, output);
Index: src/usr.bin/make/unit-tests/var-op-shell.exp
diff -u src/usr.bin/make/unit-tests/var-op-shell.exp:1.8 src/usr.bin/make/unit-tests/var-op-shell.exp:1.9
--- src/usr.bin/make/unit-tests/var-op-shell.exp:1.8 Sat Jan 11 21:21:33 2025
+++ src/usr.bin/make/unit-tests/var-op-shell.exp Tue Jan 14 21:34:09 2025
@@ -8,7 +8,7 @@ Capturing the output of command "echo '$
Global: OUTPUT = $$$$
Global: .MAKEFLAGS = -r -k -d v -d
Global: .MAKEFLAGS = -r -k -d v -d 0
-Var_Parse: ${UNDEF}y (eval-defined)
+Var_Parse: ${UNDEF}y (eval)
Capturing the output of command "echo xy"
Global: OUTPUT_OF_UNDEF = xy
Var_Parse: ${OUTPUT_OF_UNDEF} != "xy" (eval-defined-loud)