Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/make/unit-tests make(1): document limitations of def...
details: https://anonhg.NetBSD.org/src/rev/0a7c51936033
branches: trunk
changeset: 978980:0a7c51936033
user: rillig <rillig%NetBSD.org@localhost>
date: Thu Dec 10 16:47:42 2020 +0000
description:
make(1): document limitations of deferred '$' in ':?' modifier
diffstat:
usr.bin/make/unit-tests/varmod-ifelse.mk | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diffs (21 lines):
diff -r 29c5fa1a92db -r 0a7c51936033 usr.bin/make/unit-tests/varmod-ifelse.mk
--- a/usr.bin/make/unit-tests/varmod-ifelse.mk Thu Dec 10 16:36:47 2020 +0000
+++ b/usr.bin/make/unit-tests/varmod-ifelse.mk Thu Dec 10 16:47:42 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-ifelse.mk,v 1.7 2020/12/10 16:36:47 rillig Exp $
+# $NetBSD: varmod-ifelse.mk,v 1.8 2020/12/10 16:47:42 rillig Exp $
#
# Tests for the ${cond:?then:else} variable modifier, which evaluates either
# the then-expression or the else-expression, depending on the condition.
@@ -99,6 +99,11 @@
# the '$' of the intended '${VAR}' escapes from the parser in form of the
# expression ${:U\$}. Because of this escaping, the variable "name" and thus
# the condition ends up as "${VAR} == value", just as intended.
+#
+# This hack does not work for variables from .for loops since these are
+# expanded at parse time to their corresponding ${:Uvalue} expressions.
+# Making the '$' of the '${VAR}' expression indirect hides this expression
+# from the parser of the .for loop body. See SubstVarLong.
.MAKEFLAGS: -dc
VAR= value
.if ${ ${:U\$}{VAR} == value :?ok:bad} != "ok"
Home |
Main Index |
Thread Index |
Old Index