Module Name: src Committed By: rillig Date: Wed Aug 19 05:40:07 UTC 2020
Modified Files: src/usr.bin/make/unit-tests: varname-dollar.exp varname-dollar.mk Log Message: make(1): add test for the $$ expression To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/usr.bin/make/unit-tests/varname-dollar.exp cvs rdiff -u -r1.2 -r1.3 src/usr.bin/make/unit-tests/varname-dollar.mk 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/unit-tests/varname-dollar.exp diff -u src/usr.bin/make/unit-tests/varname-dollar.exp:1.1 src/usr.bin/make/unit-tests/varname-dollar.exp:1.2 --- src/usr.bin/make/unit-tests/varname-dollar.exp:1.1 Sun Aug 16 12:07:51 2020 +++ src/usr.bin/make/unit-tests/varname-dollar.exp Wed Aug 19 05:40:06 2020 @@ -1 +1,5 @@ +make: "varname-dollar.mk" line 16: dollar is $. +make: "varname-dollar.mk" line 17: dollar in braces is . +make: "varname-dollar.mk" line 25: dollar is $. +make: "varname-dollar.mk" line 26: dollar in braces is dollar. exit status 0 Index: src/usr.bin/make/unit-tests/varname-dollar.mk diff -u src/usr.bin/make/unit-tests/varname-dollar.mk:1.2 src/usr.bin/make/unit-tests/varname-dollar.mk:1.3 --- src/usr.bin/make/unit-tests/varname-dollar.mk:1.2 Sun Aug 16 14:25:16 2020 +++ src/usr.bin/make/unit-tests/varname-dollar.mk Wed Aug 19 05:40:06 2020 @@ -1,9 +1,29 @@ -# $NetBSD: varname-dollar.mk,v 1.2 2020/08/16 14:25:16 rillig Exp $ +# $NetBSD: varname-dollar.mk,v 1.3 2020/08/19 05:40:06 rillig Exp $ # # Tests for the expression "$$", which looks as if it referred to a variable, # but simply expands to a single '$' sign. +# +# If there really were a special variable named '$', the expressions ${${DOLLAR}} +# and $$ would always expand to the same value. + +# Using the dollar sign in variable names is tricky and not recommended. +# To see that using this variable indeed affects the variable '$', run the +# test individually with the -dv option. +DOLLAR= $$ + +# At this point, the variable '$' is not defined. Therefore the second line +# returns an empty string. +.info dollar is $$. +.info dollar in braces is ${${DOLLAR}}. + +# Now overwrite the '$' variable to see whether '$$' really expands to that +# variable, or whether '$$' is handled by the parser. +${DOLLAR}= dollar -# TODO: Implementation +# At this point, the variable '$' is defined, therefore its value is printed +# in the second .info directive. +.info dollar is $$. +.info dollar in braces is ${${DOLLAR}}. all: @:;