Module Name: src
Committed By: rillig
Date: Mon Jul 20 16:27:55 UTC 2020
Modified Files:
src/usr.bin/make/unit-tests: sysv.exp sysv.mk
Log Message:
make(1): demonstrate obscure edge case in SysV modifier
To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/usr.bin/make/unit-tests/sysv.exp
cvs rdiff -u -r1.7 -r1.8 src/usr.bin/make/unit-tests/sysv.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/sysv.exp
diff -u src/usr.bin/make/unit-tests/sysv.exp:1.6 src/usr.bin/make/unit-tests/sysv.exp:1.7
--- src/usr.bin/make/unit-tests/sysv.exp:1.6 Sun Jul 19 22:04:27 2020
+++ src/usr.bin/make/unit-tests/sysv.exp Mon Jul 20 16:27:55 2020
@@ -15,4 +15,6 @@ a.c.c
ax:Q b c d eb
bcd.e
&
+anchor-dollar: valux
+anchor-dollar: valux
exit status 0
Index: src/usr.bin/make/unit-tests/sysv.mk
diff -u src/usr.bin/make/unit-tests/sysv.mk:1.7 src/usr.bin/make/unit-tests/sysv.mk:1.8
--- src/usr.bin/make/unit-tests/sysv.mk:1.7 Sun Jul 19 22:04:27 2020
+++ src/usr.bin/make/unit-tests/sysv.mk Mon Jul 20 16:27:55 2020
@@ -1,6 +1,6 @@
-# $Id: sysv.mk,v 1.7 2020/07/19 22:04:27 rillig Exp $
+# $Id: sysv.mk,v 1.8 2020/07/20 16:27:55 rillig Exp $
-all: foo fun sam bla words ampersand
+all: foo fun sam bla words ampersand anchor-dollar
FOO ?=
FOOBAR = ${FOO:=bar}
@@ -54,3 +54,10 @@ words:
ampersand:
@echo ${:U${a.bcd.e:L:a.%=%}:Q}
@echo ${:U${a.bcd.e:L:a.%=&}:Q}
+
+# Before 2020-07-20, when a SysV modifier was parsed, a single dollar
+# before the '=' was interpreted as an anchor, which doesn't make sense
+# since the anchor was discarded immediately.
+anchor-dollar:
+ @echo $@: ${:U${value:L:e$=x}:Q}
+ @echo $@: ${:U${value:L:e=x}:Q}