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:
 	@:;

Reply via email to