Module Name: src
Committed By: rillig
Date: Sat Jul 4 16:15:21 UTC 2020
Modified Files:
src/usr.bin/make/unit-tests: modmisc.exp modmisc.mk
Log Message:
make(1): add test for an obscure edge case of using the :@ modifier
To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/usr.bin/make/unit-tests/modmisc.exp
cvs rdiff -u -r1.8 -r1.9 src/usr.bin/make/unit-tests/modmisc.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/modmisc.exp
diff -u src/usr.bin/make/unit-tests/modmisc.exp:1.9 src/usr.bin/make/unit-tests/modmisc.exp:1.10
--- src/usr.bin/make/unit-tests/modmisc.exp:1.9 Sat Jul 4 09:21:30 2020
+++ src/usr.bin/make/unit-tests/modmisc.exp Sat Jul 4 16:15:21 2020
@@ -30,4 +30,5 @@ make: Unclosed substitution for (, miss
:C,word,____,:Q}:
:a c:
:x__ 3 x__ 3:
+:+one+ +two+ +three+:
exit status 0
Index: src/usr.bin/make/unit-tests/modmisc.mk
diff -u src/usr.bin/make/unit-tests/modmisc.mk:1.8 src/usr.bin/make/unit-tests/modmisc.mk:1.9
--- src/usr.bin/make/unit-tests/modmisc.mk:1.8 Sat Jul 4 09:21:30 2020
+++ src/usr.bin/make/unit-tests/modmisc.mk Sat Jul 4 16:15:21 2020
@@ -1,4 +1,4 @@
-# $Id: modmisc.mk,v 1.8 2020/07/04 09:21:30 rillig Exp $
+# $Id: modmisc.mk,v 1.9 2020/07/04 16:15:21 rillig Exp $
#
# miscellaneous modifier tests
@@ -16,7 +16,7 @@ MOD_OPT=@d@$${exists($$d):?$$d:$${d:S,/u
MOD_SEP=S,:, ,g
all: modvar modvarloop modsysv mod-HTE emptyvar undefvar
-all: mod-S mod-C
+all: mod-S mod-C mod-at-varname
modsysv:
@echo "The answer is ${libfoo.a:L:libfoo.a=42}"
@@ -74,3 +74,9 @@ mod-C:
@echo :${:Uword1 word2:C,****,____,g:C,word,____,:Q}:
@echo :${:Ua b b c:C,b,,g:Q}:
@echo :${:U1 2 3 1 2 3:C,1 2,___,Wg:C,_,x,:Q}:
+
+# In the :@ modifier, the name of the loop variable can even be generated
+# dynamically. There's no practical use-case for this, and hopefully nobody
+# will ever depend on this, but technically it's possible.
+mod-at-varname:
+ @echo :${:Uone two three:@${:Ubar:S,b,v,}@+${var}+@:Q}: