Module Name:    src
Committed By:   rillig
Date:           Sat Mar 29 19:08:53 UTC 2025

Modified Files:
        src/usr.bin/make: var.c
        src/usr.bin/make/unit-tests: cmd-errors-jobs.exp cmd-errors-jobs.mk
            cmd-errors-lint.exp cmd-errors-lint.mk cmd-errors.exp cmd-errors.mk
            cond-token-string.exp cond-token-string.mk deptgt.exp deptgt.mk
            directive-for-errors.exp directive-for-errors.mk directive-for.exp
            directive-for.mk directive-include.exp directive-include.mk
            directive-undef.exp directive-undef.mk moderrs.exp moderrs.mk
            opt-debug-lint.exp opt-debug-lint.mk var-op-expand.exp
            var-op-expand.mk vardebug.exp vardebug.mk varmod-assign.exp
            varmod-assign.mk varmod-edge.exp varmod-edge.mk varmod-hash.exp
            varmod-ifelse.exp varmod-ifelse.mk varmod-indirect.exp
            varmod-indirect.mk varmod-match.exp varmod-match.mk
            varmod-mtime.exp varmod-mtime.mk varmod-range.exp varmod-range.mk
            varmod-subst-regex.exp varmod-subst.exp varmod-subst.mk
            varparse-errors.exp varparse-errors.mk

Log Message:
make: add ":" to error message about unknown modifier

In the manual page, the modifiers are listed with a preceding ":", so
use the same pattern in the error message. This removes an inconsistency
between the error messages "Unknown modifier" and "Bad modifier".


To generate a diff of this commit:
cvs rdiff -u -r1.1150 -r1.1151 src/usr.bin/make/var.c
cvs rdiff -u -r1.15 -r1.16 src/usr.bin/make/unit-tests/cmd-errors-jobs.exp \
    src/usr.bin/make/unit-tests/cmd-errors.exp \
    src/usr.bin/make/unit-tests/cond-token-string.mk \
    src/usr.bin/make/unit-tests/directive-include.exp
cvs rdiff -u -r1.14 -r1.15 src/usr.bin/make/unit-tests/cmd-errors-jobs.mk \
    src/usr.bin/make/unit-tests/directive-for-errors.mk \
    src/usr.bin/make/unit-tests/varmod-mtime.mk
cvs rdiff -u -r1.11 -r1.12 src/usr.bin/make/unit-tests/cmd-errors-lint.exp \
    src/usr.bin/make/unit-tests/cmd-errors.mk
cvs rdiff -u -r1.6 -r1.7 src/usr.bin/make/unit-tests/cmd-errors-lint.mk
cvs rdiff -u -r1.17 -r1.18 src/usr.bin/make/unit-tests/cond-token-string.exp \
    src/usr.bin/make/unit-tests/directive-include.mk \
    src/usr.bin/make/unit-tests/vardebug.mk
cvs rdiff -u -r1.21 -r1.22 src/usr.bin/make/unit-tests/deptgt.exp
cvs rdiff -u -r1.22 -r1.23 src/usr.bin/make/unit-tests/deptgt.mk \
    src/usr.bin/make/unit-tests/opt-debug-lint.mk \
    src/usr.bin/make/unit-tests/var-op-expand.mk \
    src/usr.bin/make/unit-tests/varmod-indirect.mk
cvs rdiff -u -r1.9 -r1.10 \
    src/usr.bin/make/unit-tests/directive-for-errors.exp \
    src/usr.bin/make/unit-tests/varmod-hash.exp
cvs rdiff -u -r1.26 -r1.27 src/usr.bin/make/unit-tests/directive-for.exp \
    src/usr.bin/make/unit-tests/varmod-assign.mk \
    src/usr.bin/make/unit-tests/varmod-ifelse.exp
cvs rdiff -u -r1.28 -r1.29 src/usr.bin/make/unit-tests/directive-for.mk
cvs rdiff -u -r1.13 -r1.14 src/usr.bin/make/unit-tests/directive-undef.exp \
    src/usr.bin/make/unit-tests/varmod-subst-regex.exp
cvs rdiff -u -r1.16 -r1.17 src/usr.bin/make/unit-tests/directive-undef.mk \
    src/usr.bin/make/unit-tests/varmod-range.mk \
    src/usr.bin/make/unit-tests/varmod-subst.mk \
    src/usr.bin/make/unit-tests/varparse-errors.exp
cvs rdiff -u -r1.50 -r1.51 src/usr.bin/make/unit-tests/moderrs.exp
cvs rdiff -u -r1.44 -r1.45 src/usr.bin/make/unit-tests/moderrs.mk
cvs rdiff -u -r1.23 -r1.24 src/usr.bin/make/unit-tests/opt-debug-lint.exp \
    src/usr.bin/make/unit-tests/varmod-match.exp
cvs rdiff -u -r1.12 -r1.13 src/usr.bin/make/unit-tests/var-op-expand.exp \
    src/usr.bin/make/unit-tests/varmod-mtime.exp
cvs rdiff -u -r1.41 -r1.42 src/usr.bin/make/unit-tests/vardebug.exp
cvs rdiff -u -r1.32 -r1.33 src/usr.bin/make/unit-tests/varmod-assign.exp
cvs rdiff -u -r1.31 -r1.32 src/usr.bin/make/unit-tests/varmod-edge.exp
cvs rdiff -u -r1.35 -r1.36 src/usr.bin/make/unit-tests/varmod-edge.mk \
    src/usr.bin/make/unit-tests/varmod-ifelse.mk
cvs rdiff -u -r1.33 -r1.34 src/usr.bin/make/unit-tests/varmod-indirect.exp
cvs rdiff -u -r1.29 -r1.30 src/usr.bin/make/unit-tests/varmod-match.mk
cvs rdiff -u -r1.18 -r1.19 src/usr.bin/make/unit-tests/varmod-range.exp
cvs rdiff -u -r1.10 -r1.11 src/usr.bin/make/unit-tests/varmod-subst.exp
cvs rdiff -u -r1.19 -r1.20 src/usr.bin/make/unit-tests/varparse-errors.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/var.c
diff -u src/usr.bin/make/var.c:1.1150 src/usr.bin/make/var.c:1.1151
--- src/usr.bin/make/var.c:1.1150	Sat Mar 29 16:44:14 2025
+++ src/usr.bin/make/var.c	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-/*	$NetBSD: var.c,v 1.1150 2025/03/29 16:44:14 rillig Exp $	*/
+/*	$NetBSD: var.c,v 1.1151 2025/03/29 19:08:52 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -128,7 +128,7 @@
 #include "metachar.h"
 
 /*	"@(#)var.c	8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.1150 2025/03/29 16:44:14 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.1151 2025/03/29 19:08:52 rillig Exp $");
 
 /*
  * Variables are defined using one of the VAR=value assignments.  Their
@@ -4013,7 +4013,7 @@ ApplySingleModifier(const char **pp, Mod
 		 */
 		for (p++; !IsDelimiter(*p, ch); p++)
 			continue;
-		Parse_Error(PARSE_FATAL, "Unknown modifier \"%.*s\"",
+		Parse_Error(PARSE_FATAL, "Unknown modifier \":%.*s\"",
 		    (int)(p - mod), mod);
 		Expr_SetValueRefer(ch->expr, var_Error);
 		res = AMR_CLEANUP;

Index: src/usr.bin/make/unit-tests/cmd-errors-jobs.exp
diff -u src/usr.bin/make/unit-tests/cmd-errors-jobs.exp:1.15 src/usr.bin/make/unit-tests/cmd-errors-jobs.exp:1.16
--- src/usr.bin/make/unit-tests/cmd-errors-jobs.exp:1.15	Sat Mar 29 10:39:48 2025
+++ src/usr.bin/make/unit-tests/cmd-errors-jobs.exp	Sat Mar 29 19:08:52 2025
@@ -14,7 +14,7 @@ make: Unclosed expression, expecting '}'
 	while evaluating variable "UNCLOSED" with value ""
 	in command ": unexpected $@-${UNCLOSED:"
 	in target "parse-error-unclosed-modifier"
-make: Unknown modifier "Z"
+make: Unknown modifier ":Z"
 	while evaluating variable "UNKNOWN" with value ""
 	in command ": unexpected $@-${UNKNOWN:Z}-eol"
 	in target "parse-error-unknown-modifier"
@@ -28,7 +28,7 @@ make: Unclosed expression, expecting '}'
 	while evaluating variable "UNCLOSED" with value ""
 	in command ": unexpected $@-${UNCLOSED:"
 	in target "parse-error-unclosed-modifier"
-make: Unknown modifier "Z"
+make: Unknown modifier ":Z"
 	while evaluating variable "UNKNOWN" with value ""
 	in command ": unexpected $@-${UNKNOWN:Z}-eol"
 	in target "parse-error-unknown-modifier"
Index: src/usr.bin/make/unit-tests/cmd-errors.exp
diff -u src/usr.bin/make/unit-tests/cmd-errors.exp:1.15 src/usr.bin/make/unit-tests/cmd-errors.exp:1.16
--- src/usr.bin/make/unit-tests/cmd-errors.exp:1.15	Sat Mar 29 10:39:48 2025
+++ src/usr.bin/make/unit-tests/cmd-errors.exp	Sat Mar 29 19:08:52 2025
@@ -6,7 +6,7 @@ make: Unclosed expression, expecting '}'
 	while evaluating variable "UNCLOSED" with value ""
 	in command ": $@-${UNCLOSED:"
 	in target "unclosed-modifier"
-make: Unknown modifier "Z"
+make: Unknown modifier ":Z"
 	while evaluating variable "UNKNOWN" with value ""
 	in command ": $@-${UNKNOWN:Z}-eol"
 	in target "unknown-modifier"
Index: src/usr.bin/make/unit-tests/cond-token-string.mk
diff -u src/usr.bin/make/unit-tests/cond-token-string.mk:1.15 src/usr.bin/make/unit-tests/cond-token-string.mk:1.16
--- src/usr.bin/make/unit-tests/cond-token-string.mk:1.15	Sat Jan 11 20:54:45 2025
+++ src/usr.bin/make/unit-tests/cond-token-string.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: cond-token-string.mk,v 1.15 2025/01/11 20:54:45 rillig Exp $
+# $NetBSD: cond-token-string.mk,v 1.16 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for quoted string literals in .if conditions.
 #
@@ -10,7 +10,7 @@
 
 # Cover the code in CondParser_String that frees the memory after parsing
 # an expression based on an undefined variable.
-# expect+1: Unknown modifier "Z"
+# expect+1: Unknown modifier ":Z"
 .if "" != "${:Uvalue:Z}"
 .  error
 .else
Index: src/usr.bin/make/unit-tests/directive-include.exp
diff -u src/usr.bin/make/unit-tests/directive-include.exp:1.15 src/usr.bin/make/unit-tests/directive-include.exp:1.16
--- src/usr.bin/make/unit-tests/directive-include.exp:1.15	Thu Aug 29 20:20:36 2024
+++ src/usr.bin/make/unit-tests/directive-include.exp	Sat Mar 29 19:08:52 2025
@@ -4,7 +4,7 @@ CondParser_Eval: ${.MAKE.MAKEFILES:T} !=
 Comparing "directive-include.mk null" != "directive-include.mk null"
 make: "directive-include.mk" line 26: Could not find nonexistent.mk
 make: "directive-include.mk" line 49: Could not find "
-make: "directive-include.mk" line 56: Unknown modifier "Z"
+make: "directive-include.mk" line 56: Unknown modifier ":Z"
 	while evaluating "${:U123:Z}.mk" with value "123"
 make: "directive-include.mk" line 56: Could not find nonexistent.mk
 make: "directive-include.mk" line 61: Cannot open /nonexistent

Index: src/usr.bin/make/unit-tests/cmd-errors-jobs.mk
diff -u src/usr.bin/make/unit-tests/cmd-errors-jobs.mk:1.14 src/usr.bin/make/unit-tests/cmd-errors-jobs.mk:1.15
--- src/usr.bin/make/unit-tests/cmd-errors-jobs.mk:1.14	Sat Mar 29 10:39:48 2025
+++ src/usr.bin/make/unit-tests/cmd-errors-jobs.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: cmd-errors-jobs.mk,v 1.14 2025/03/29 10:39:48 rillig Exp $
+# $NetBSD: cmd-errors-jobs.mk,v 1.15 2025/03/29 19:08:52 rillig Exp $
 #
 # Demonstrate how errors in expressions affect whether the commands
 # are actually executed in jobs mode.
@@ -51,11 +51,11 @@ parse-error-unknown-modifier:
 # expect: make: Unclosed variable "UNCLOSED"
 # expect: in command ": unexpected $@-${UNCLOSED"
 # expect: make: Unclosed expression, expecting '}'
-# expect: make: Unknown modifier "Z"
+# expect: make: Unknown modifier ":Z"
 # expect: end parse-error-direct with status 2
 # expect: make: Unclosed variable "UNCLOSED"
 # expect: make: Unclosed expression, expecting '}'
-# expect: make: Unknown modifier "Z"
+# expect: make: Unknown modifier ":Z"
 # expect: end parse-error-indirect with status 2
 
 
Index: src/usr.bin/make/unit-tests/directive-for-errors.mk
diff -u src/usr.bin/make/unit-tests/directive-for-errors.mk:1.14 src/usr.bin/make/unit-tests/directive-for-errors.mk:1.15
--- src/usr.bin/make/unit-tests/directive-for-errors.mk:1.14	Thu Aug 29 20:20:36 2024
+++ src/usr.bin/make/unit-tests/directive-for-errors.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: directive-for-errors.mk,v 1.14 2024/08/29 20:20:36 rillig Exp $
+# $NetBSD: directive-for-errors.mk,v 1.15 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for error handling in .for loops.
 
@@ -85,7 +85,7 @@ ${:U\\}=	backslash	# see whether the "va
 #
 # XXX: As of 2020-12-31, Var_Subst doesn't report any errors, therefore
 # the loop body is expanded as if no error had happened.
-# expect+1: Unknown modifier "Z"
+# expect+1: Unknown modifier ":Z"
 .for i in 1 2 ${:U3:Z} 4
 # expect+3: warning: Should not be reached.
 # expect+2: warning: Should not be reached.
Index: src/usr.bin/make/unit-tests/varmod-mtime.mk
diff -u src/usr.bin/make/unit-tests/varmod-mtime.mk:1.14 src/usr.bin/make/unit-tests/varmod-mtime.mk:1.15
--- src/usr.bin/make/unit-tests/varmod-mtime.mk:1.14	Sat Jan 11 20:54:46 2025
+++ src/usr.bin/make/unit-tests/varmod-mtime.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-mtime.mk,v 1.14 2025/01/11 20:54:46 rillig Exp $
+# $NetBSD: varmod-mtime.mk,v 1.15 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for the ':mtime' variable modifier, which maps each word of the
 # expression to that file's modification time.
@@ -106,7 +106,7 @@ end:=	${%s:L:gmtime}
 
 
 # If there is a typo in the modifier name, it does not match.
-# expect+1: Unknown modifier "mtim"
+# expect+1: Unknown modifier ":mtim"
 .if ${anything:L:mtim}
 .  error
 .else

Index: src/usr.bin/make/unit-tests/cmd-errors-lint.exp
diff -u src/usr.bin/make/unit-tests/cmd-errors-lint.exp:1.11 src/usr.bin/make/unit-tests/cmd-errors-lint.exp:1.12
--- src/usr.bin/make/unit-tests/cmd-errors-lint.exp:1.11	Sat Mar 29 10:39:48 2025
+++ src/usr.bin/make/unit-tests/cmd-errors-lint.exp	Sat Mar 29 19:08:52 2025
@@ -6,7 +6,7 @@ make: Unclosed expression, expecting '}'
 	while evaluating variable "UNCLOSED" with value ""
 	in command ": $@ ${UNCLOSED:"
 	in target "unclosed-modifier"
-make: Unknown modifier "Z"
+make: Unknown modifier ":Z"
 	while evaluating variable "UNKNOWN" with value ""
 	in command ": $@ ${UNKNOWN:Z}"
 	in target "unknown-modifier"
Index: src/usr.bin/make/unit-tests/cmd-errors.mk
diff -u src/usr.bin/make/unit-tests/cmd-errors.mk:1.11 src/usr.bin/make/unit-tests/cmd-errors.mk:1.12
--- src/usr.bin/make/unit-tests/cmd-errors.mk:1.11	Thu Aug 29 20:20:35 2024
+++ src/usr.bin/make/unit-tests/cmd-errors.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: cmd-errors.mk,v 1.11 2024/08/29 20:20:35 rillig Exp $
+# $NetBSD: cmd-errors.mk,v 1.12 2025/03/29 19:08:52 rillig Exp $
 #
 # Demonstrate how errors in expressions affect whether the commands
 # are actually executed in compat mode.
@@ -22,7 +22,7 @@ unclosed-modifier:
 	: $@-${UNCLOSED:
 
 unknown-modifier:
-# expect: make: Unknown modifier "Z"
+# expect: make: Unknown modifier ":Z"
 # expect-not: : unknown-modifier--eol
 	: $@-${UNKNOWN:Z}-eol
 

Index: src/usr.bin/make/unit-tests/cmd-errors-lint.mk
diff -u src/usr.bin/make/unit-tests/cmd-errors-lint.mk:1.6 src/usr.bin/make/unit-tests/cmd-errors-lint.mk:1.7
--- src/usr.bin/make/unit-tests/cmd-errors-lint.mk:1.6	Thu Aug 29 20:20:35 2024
+++ src/usr.bin/make/unit-tests/cmd-errors-lint.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: cmd-errors-lint.mk,v 1.6 2024/08/29 20:20:35 rillig Exp $
+# $NetBSD: cmd-errors-lint.mk,v 1.7 2025/03/29 19:08:52 rillig Exp $
 #
 # Demonstrate how errors in expressions affect whether the commands
 # are actually executed.
@@ -24,7 +24,7 @@ unclosed-modifier:
 	: $@ ${UNCLOSED:
 
 unknown-modifier:
-# expect: make: Unknown modifier "Z"
+# expect: make: Unknown modifier ":Z"
 # expect-not: : unknown-modifier
 	: $@ ${UNKNOWN:Z}
 

Index: src/usr.bin/make/unit-tests/cond-token-string.exp
diff -u src/usr.bin/make/unit-tests/cond-token-string.exp:1.17 src/usr.bin/make/unit-tests/cond-token-string.exp:1.18
--- src/usr.bin/make/unit-tests/cond-token-string.exp:1.17	Sat Jan 11 20:54:45 2025
+++ src/usr.bin/make/unit-tests/cond-token-string.exp	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-make: "cond-token-string.mk" line 14: Unknown modifier "Z"
+make: "cond-token-string.mk" line 14: Unknown modifier ":Z"
 	while evaluating "${:Uvalue:Z}"" with value "value"
 make: "cond-token-string.mk" line 24: xvalue is not defined.
 make: "cond-token-string.mk" line 31: Malformed conditional 'x${:Uvalue} == ""'
Index: src/usr.bin/make/unit-tests/directive-include.mk
diff -u src/usr.bin/make/unit-tests/directive-include.mk:1.17 src/usr.bin/make/unit-tests/directive-include.mk:1.18
--- src/usr.bin/make/unit-tests/directive-include.mk:1.17	Sat Jan 11 20:16:40 2025
+++ src/usr.bin/make/unit-tests/directive-include.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: directive-include.mk,v 1.17 2025/01/11 20:16:40 rillig Exp $
+# $NetBSD: directive-include.mk,v 1.18 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for the .include directive, which includes another file.
 
@@ -51,7 +51,7 @@ DQUOT=	"
 # When the expression in a filename cannot be evaluated, the failing
 # expression is skipped and the file is included nevertheless.
 # FIXME: Add proper error handling, no file must be included here.
-# expect+2: Unknown modifier "Z"
+# expect+2: Unknown modifier ":Z"
 # expect+1: Could not find nonexistent.mk
 .include "nonexistent${:U123:Z}.mk"
 
Index: src/usr.bin/make/unit-tests/vardebug.mk
diff -u src/usr.bin/make/unit-tests/vardebug.mk:1.17 src/usr.bin/make/unit-tests/vardebug.mk:1.18
--- src/usr.bin/make/unit-tests/vardebug.mk:1.17	Sat Mar 29 16:44:14 2025
+++ src/usr.bin/make/unit-tests/vardebug.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: vardebug.mk,v 1.17 2025/03/29 16:44:14 rillig Exp $
+# $NetBSD: vardebug.mk,v 1.18 2025/03/29 19:08:52 rillig Exp $
 #
 # Demonstrates the debugging output for var.c.
 
@@ -55,7 +55,7 @@ VAR+=		3
 # expect: Global: delete VAR
 .undef ${:UVAR}			# Var_Delete
 
-# expect+1: Unknown modifier "unknown"
+# expect+1: Unknown modifier ":unknown"
 .if ${:Uvariable:unknown}
 .endif
 

Index: src/usr.bin/make/unit-tests/deptgt.exp
diff -u src/usr.bin/make/unit-tests/deptgt.exp:1.21 src/usr.bin/make/unit-tests/deptgt.exp:1.22
--- src/usr.bin/make/unit-tests/deptgt.exp:1.21	Tue Jan 14 21:23:17 2025
+++ src/usr.bin/make/unit-tests/deptgt.exp	Sat Mar 29 19:08:52 2025
@@ -14,9 +14,9 @@ Global: .ALLTARGETS =  target1 target2 s
 Global: .ALLTARGETS =  target1 target2 sources empty-source deptgt- depsrc-
 Global: .MAKEFLAGS =  -r -k -d p -d 0 -d v -d
 Global: .MAKEFLAGS =  -r -k -d p -d 0 -d v -d 0
-make: "deptgt.mk" line 51: Unknown modifier "Z"
+make: "deptgt.mk" line 51: Unknown modifier ":Z"
 	while evaluating "${:U:Z}:" with value ""
-make: "deptgt.mk" line 55: Unknown modifier "Z"
+make: "deptgt.mk" line 55: Unknown modifier ":Z"
 	while parsing "${:U:Z}:"
 make: "deptgt.mk" line 58: warning: Extra target 'ordinary' ignored
 make: "deptgt.mk" line 61: warning: Extra target (ordinary) ignored

Index: src/usr.bin/make/unit-tests/deptgt.mk
diff -u src/usr.bin/make/unit-tests/deptgt.mk:1.22 src/usr.bin/make/unit-tests/deptgt.mk:1.23
--- src/usr.bin/make/unit-tests/deptgt.mk:1.22	Fri Jan 10 23:00:38 2025
+++ src/usr.bin/make/unit-tests/deptgt.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: deptgt.mk,v 1.22 2025/01/10 23:00:38 rillig Exp $
+# $NetBSD: deptgt.mk,v 1.23 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for special targets like .BEGIN or .SUFFIXES in dependency
 # declarations.
@@ -47,11 +47,11 @@ deptgt-${UNDEF}: depsrc-${UNDEF}
 
 # In a dependency declaration, the whole line is expanded before interpreting
 # the line.
-# expect+1: Unknown modifier "Z"
+# expect+1: Unknown modifier ":Z"
 ${:U:Z}:
 # After expanding the line as a whole, each target is parsed but not
 # evaluated, separately, in ParseDependencyTargetWord.
-# expect+1: Unknown modifier "Z"
+# expect+1: Unknown modifier ":Z"
 $${:U:Z}:
 
 # expect+1: warning: Extra target 'ordinary' ignored
Index: src/usr.bin/make/unit-tests/opt-debug-lint.mk
diff -u src/usr.bin/make/unit-tests/opt-debug-lint.mk:1.22 src/usr.bin/make/unit-tests/opt-debug-lint.mk:1.23
--- src/usr.bin/make/unit-tests/opt-debug-lint.mk:1.22	Sat Jan 11 20:54:45 2025
+++ src/usr.bin/make/unit-tests/opt-debug-lint.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: opt-debug-lint.mk,v 1.22 2025/01/11 20:54:45 rillig Exp $
+# $NetBSD: opt-debug-lint.mk,v 1.23 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for the -dL command line option, which runs additional checks
 # to catch common mistakes, such as unclosed expressions.
@@ -70,7 +70,7 @@ ${UNDEF}: ${UNDEF}
 # variable modifier had to be separated by colons.  This was wrong though
 # since make always fell back trying to parse the indirect modifier as a
 # SysV modifier.
-# expect+1: Unknown modifier "${"
+# expect+1: Unknown modifier ":${"
 .if ${value:${:UL}PL} != "LPL}"		# FIXME: "LPL}" is unexpected here.
 .  error ${value:${:UL}PL}
 .endif
Index: src/usr.bin/make/unit-tests/var-op-expand.mk
diff -u src/usr.bin/make/unit-tests/var-op-expand.mk:1.22 src/usr.bin/make/unit-tests/var-op-expand.mk:1.23
--- src/usr.bin/make/unit-tests/var-op-expand.mk:1.22	Thu Aug 29 20:20:36 2024
+++ src/usr.bin/make/unit-tests/var-op-expand.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: var-op-expand.mk,v 1.22 2024/08/29 20:20:36 rillig Exp $
+# $NetBSD: var-op-expand.mk,v 1.23 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for the := variable assignment operator, which expands its
 # right-hand side.
@@ -270,7 +270,7 @@ later=	lowercase-value
 .undef later
 INDIRECT:=	${LATER:S,value,replaced,} OK ${LATER:value=sysv}
 indirect:=	${INDIRECT:tl}
-# expect+1: Unknown modifier "s,value,replaced,"
+# expect+1: Unknown modifier ":s,value,replaced,"
 .if ${indirect} != " ok "
 .  error
 .else
@@ -279,7 +279,7 @@ indirect:=	${INDIRECT:tl}
 .endif
 LATER=	uppercase-value
 later=	lowercase-value
-# expect+1: Unknown modifier "s,value,replaced,"
+# expect+1: Unknown modifier ":s,value,replaced,"
 .if ${indirect} != "uppercase-replaced ok uppercase-sysv"
 # expect+1: warning: XXX Neither branch should be taken.
 .  warning	XXX Neither branch should be taken.
Index: src/usr.bin/make/unit-tests/varmod-indirect.mk
diff -u src/usr.bin/make/unit-tests/varmod-indirect.mk:1.22 src/usr.bin/make/unit-tests/varmod-indirect.mk:1.23
--- src/usr.bin/make/unit-tests/varmod-indirect.mk:1.22	Sat Mar 29 16:44:14 2025
+++ src/usr.bin/make/unit-tests/varmod-indirect.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-indirect.mk,v 1.22 2025/03/29 16:44:14 rillig Exp $
+# $NetBSD: varmod-indirect.mk,v 1.23 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for indirect variable modifiers, such as in ${VAR:${M_modifiers}}.
 # These can be used for very basic purposes like converting a string to either
@@ -15,7 +15,7 @@
 # The following expression generates a parse error since its indirect
 # modifier contains more than a sole expression.
 #
-# expect+1: Unknown modifier "${"
+# expect+1: Unknown modifier ":${"
 .if ${value:L:${:US}${:U,value,replacement,}} != "S,value,replacement,}"
 .  warning unexpected
 .endif
@@ -47,7 +47,7 @@
 # error.  Due to this parse error, this construct cannot be used reasonably
 # in practice.
 #
-# expect+2: Unknown modifier "${"
+# expect+2: Unknown modifier ":${"
 #.MAKEFLAGS: -dvc
 .if ${value:L:${:UM*}S,value,replaced,} == "anything"
 .  error
@@ -157,7 +157,7 @@ M_NoPrimes=	${PRIMES:${M_ListToSkip}}
 .endfor
 
 # An error in an indirect modifier.
-# expect+1: Unknown modifier "Z"
+# expect+1: Unknown modifier ":Z"
 .for var in before ${UNDEF:${:UZ}} after
 # expect+2: before
 # expect+1: after
@@ -188,7 +188,7 @@ _:=	before ${UNDEF:${:U}} after
 # XXX: This expands to ${UNDEF:Z}, which will behave differently if the
 # variable '_' is used in a context where the expression ${_} is
 # parsed but not evaluated.
-# expect+1: Unknown modifier "Z"
+# expect+1: Unknown modifier ":Z"
 _:=	before ${UNDEF:${:UZ}} after
 
 .MAKEFLAGS: -d0

Index: src/usr.bin/make/unit-tests/directive-for-errors.exp
diff -u src/usr.bin/make/unit-tests/directive-for-errors.exp:1.9 src/usr.bin/make/unit-tests/directive-for-errors.exp:1.10
--- src/usr.bin/make/unit-tests/directive-for-errors.exp:1.9	Thu Aug 29 20:20:36 2024
+++ src/usr.bin/make/unit-tests/directive-for-errors.exp	Sat Mar 29 19:08:52 2025
@@ -8,7 +8,7 @@ make: "directive-for-errors.mk" line 44:
 make: "directive-for-errors.mk" line 52: no iteration variables in for
 make: "directive-for-errors.mk" line 64: Wrong number of words (5) in .for substitution list with 3 variables
 make: "directive-for-errors.mk" line 78: missing `in' in for
-make: "directive-for-errors.mk" line 89: Unknown modifier "Z"
+make: "directive-for-errors.mk" line 89: Unknown modifier ":Z"
 	while evaluating "${:U3:Z} 4" with value "3"
 make: "directive-for-errors.mk" line 93: warning: Should not be reached.
 make: "directive-for-errors.mk" line 93: warning: Should not be reached.
Index: src/usr.bin/make/unit-tests/varmod-hash.exp
diff -u src/usr.bin/make/unit-tests/varmod-hash.exp:1.9 src/usr.bin/make/unit-tests/varmod-hash.exp:1.10
--- src/usr.bin/make/unit-tests/varmod-hash.exp:1.9	Sat Mar 29 10:39:49 2025
+++ src/usr.bin/make/unit-tests/varmod-hash.exp	Sat Mar 29 19:08:52 2025
@@ -1,14 +1,14 @@
-make: Unknown modifier "has"
+make: Unknown modifier ":has"
 	while evaluating variable "12345" with value "12345"
 	in command "@echo ${12345:L:has}			# modifier name too short"
 	in target "step-1"
 26bb0f5f
 12345
-make: Unknown modifier "hasX"
+make: Unknown modifier ":hasX"
 	while evaluating variable "12345" with value "12345"
 	in command "@echo ${12345:L:hasX}			# misspelled"
 	in target "step-4"
-make: Unknown modifier "hashed"
+make: Unknown modifier ":hashed"
 	while evaluating variable "12345" with value "12345"
 	in command "@echo ${12345:L:hashed}			# modifier name too long"
 	in target "step-5"

Index: src/usr.bin/make/unit-tests/directive-for.exp
diff -u src/usr.bin/make/unit-tests/directive-for.exp:1.26 src/usr.bin/make/unit-tests/directive-for.exp:1.27
--- src/usr.bin/make/unit-tests/directive-for.exp:1.26	Thu Aug 29 20:20:36 2024
+++ src/usr.bin/make/unit-tests/directive-for.exp	Sat Mar 29 19:08:52 2025
@@ -17,7 +17,7 @@ make: "directive-for.mk" line 158: }{ }{
 make: "directive-for.mk" line 166: invalid character ':' in .for loop variable name
 make: "directive-for.mk" line 173: invalid character '$' in .for loop variable name
 make: "directive-for.mk" line 185: invalid character '$' in .for loop variable name
-make: "directive-for.mk" line 210: Unknown modifier "Z"
+make: "directive-for.mk" line 210: Unknown modifier ":Z"
 	while evaluating "${:Uword2:Z}-after word3" with value "word2"
 make: "directive-for.mk" line 214: XXX: Should not reach word1
 make: "directive-for.mk" line 214: XXX: Should not reach before--after
Index: src/usr.bin/make/unit-tests/varmod-assign.mk
diff -u src/usr.bin/make/unit-tests/varmod-assign.mk:1.26 src/usr.bin/make/unit-tests/varmod-assign.mk:1.27
--- src/usr.bin/make/unit-tests/varmod-assign.mk:1.26	Sat Mar 29 11:51:54 2025
+++ src/usr.bin/make/unit-tests/varmod-assign.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-assign.mk,v 1.26 2025/03/29 11:51:54 rillig Exp $
+# $NetBSD: varmod-assign.mk,v 1.27 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for the obscure ::= variable modifiers, which perform variable
 # assignments during evaluation, just like the = operator in C.
@@ -93,7 +93,7 @@ mod-assign-empty-3:
 mod-assign-parse-1:
 	# The modifier for assignment operators starts with a ':'.
 	# An 'x' after that is an invalid modifier.
-# expect: make: Unknown modifier ":x"
+# expect: make: Unknown modifier "::x"
 	@echo ${ASSIGN::x}
 
 mod-assign-parse-2:
Index: src/usr.bin/make/unit-tests/varmod-ifelse.exp
diff -u src/usr.bin/make/unit-tests/varmod-ifelse.exp:1.26 src/usr.bin/make/unit-tests/varmod-ifelse.exp:1.27
--- src/usr.bin/make/unit-tests/varmod-ifelse.exp:1.26	Sat Jan 11 20:54:45 2025
+++ src/usr.bin/make/unit-tests/varmod-ifelse.exp	Sat Mar 29 19:08:52 2025
@@ -51,10 +51,10 @@ make: "varmod-ifelse.mk" line 289: no
 CondParser_Eval: ${DELAYED} == "two"
 Comparing "two" == "two"
 make: "varmod-ifelse.mk" line 292: yes
-make: "varmod-ifelse.mk" line 314: Unknown modifier "X-then"
+make: "varmod-ifelse.mk" line 314: Unknown modifier ":X-then"
 	while evaluating "${:X-then}:${:X-else}}" with value ""
 	while evaluating then-branch of condition "1"
-make: "varmod-ifelse.mk" line 314: Unknown modifier "X-else"
+make: "varmod-ifelse.mk" line 314: Unknown modifier ":X-else"
 	while parsing "${:X-else}}"
 	while evaluating else-branch of condition "1"
 make: Fatal errors encountered -- cannot continue

Index: src/usr.bin/make/unit-tests/directive-for.mk
diff -u src/usr.bin/make/unit-tests/directive-for.mk:1.28 src/usr.bin/make/unit-tests/directive-for.mk:1.29
--- src/usr.bin/make/unit-tests/directive-for.mk:1.28	Thu Aug 29 20:20:36 2024
+++ src/usr.bin/make/unit-tests/directive-for.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: directive-for.mk,v 1.28 2024/08/29 20:20:36 rillig Exp $
+# $NetBSD: directive-for.mk,v 1.29 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for the .for directive.
 #
@@ -206,7 +206,7 @@ INDIRECT=	${DIRECT}
 # XXX: A parse error or evaluation error in the items of the .for loop
 # should skip the whole loop.  As of 2023-05-09, the loop is expanded as
 # usual.
-# expect+1: Unknown modifier "Z"
+# expect+1: Unknown modifier ":Z"
 .for var in word1 before-${:Uword2:Z}-after word3
 # expect+3: XXX: Should not reach word1
 # expect+2: XXX: Should not reach before--after

Index: src/usr.bin/make/unit-tests/directive-undef.exp
diff -u src/usr.bin/make/unit-tests/directive-undef.exp:1.13 src/usr.bin/make/unit-tests/directive-undef.exp:1.14
--- src/usr.bin/make/unit-tests/directive-undef.exp:1.13	Thu Aug 29 20:20:36 2024
+++ src/usr.bin/make/unit-tests/directive-undef.exp	Sat Mar 29 19:08:52 2025
@@ -1,5 +1,5 @@
 make: "directive-undef.mk" line 30: The .undef directive requires an argument
-make: "directive-undef.mk" line 88: Unknown modifier "Z"
+make: "directive-undef.mk" line 88: Unknown modifier ":Z"
 	while evaluating variable "VARNAMES" with value "VARNAMES"
 make: "directive-undef.mk" line 105: warning: UT_EXPORTED is still listed in .MAKE.EXPORTED even though spaceit is not exported anymore.
 make: Fatal errors encountered -- cannot continue
Index: src/usr.bin/make/unit-tests/varmod-subst-regex.exp
diff -u src/usr.bin/make/unit-tests/varmod-subst-regex.exp:1.13 src/usr.bin/make/unit-tests/varmod-subst-regex.exp:1.14
--- src/usr.bin/make/unit-tests/varmod-subst-regex.exp:1.13	Sat Mar 29 10:39:49 2025
+++ src/usr.bin/make/unit-tests/varmod-subst-regex.exp	Sat Mar 29 19:08:53 2025
@@ -57,7 +57,7 @@ make: Regex compilation error: (details 
 	while evaluating variable "UNDEF" with value "value"
 	in command "@echo $@: ${UNDEF:Uvalue:C,[,,}"
 	in target "mod-regex-errors-1"
-make: Unknown modifier "Z"
+make: Unknown modifier ":Z"
 	while evaluating "${:U:Z}y,W}" with value ""
 	while evaluating variable "word" with value "word"
 	in command "@echo $@: ${word:L:C,.*,x${:U:Z}y,W}"

Index: src/usr.bin/make/unit-tests/directive-undef.mk
diff -u src/usr.bin/make/unit-tests/directive-undef.mk:1.16 src/usr.bin/make/unit-tests/directive-undef.mk:1.17
--- src/usr.bin/make/unit-tests/directive-undef.mk:1.16	Thu Aug 29 20:20:36 2024
+++ src/usr.bin/make/unit-tests/directive-undef.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: directive-undef.mk,v 1.16 2024/08/29 20:20:36 rillig Exp $
+# $NetBSD: directive-undef.mk,v 1.17 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for the .undef directive.
 #
@@ -84,7 +84,7 @@ ${DOLLAR}=	dollar
 #
 # As of var.c 1.762, this doesn't happen though because the error handling
 # in Var_Parse and Var_Subst is not done properly.
-# expect+1: Unknown modifier "Z"
+# expect+1: Unknown modifier ":Z"
 .undef ${VARNAMES:L:Z}
 
 
Index: src/usr.bin/make/unit-tests/varmod-range.mk
diff -u src/usr.bin/make/unit-tests/varmod-range.mk:1.16 src/usr.bin/make/unit-tests/varmod-range.mk:1.17
--- src/usr.bin/make/unit-tests/varmod-range.mk:1.16	Sat Jan 11 20:54:46 2025
+++ src/usr.bin/make/unit-tests/varmod-range.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-range.mk,v 1.16 2025/01/11 20:54:46 rillig Exp $
+# $NetBSD: varmod-range.mk,v 1.17 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for the :range variable modifier, which generates sequences
 # of integers from the given range.
@@ -72,7 +72,7 @@
 # The upper limit of the range must always be given in decimal.
 # This parse error stops at the 'x', trying to parse it as a variable
 # modifier.
-# expect+1: Unknown modifier "x0"
+# expect+1: Unknown modifier ":x0"
 .if "${:U:range=0x0}Rest" != "Rest"
 .  error
 .else
@@ -89,7 +89,7 @@
 #.endif
 
 # modifier name too short
-# expect+1: Unknown modifier "rang"
+# expect+1: Unknown modifier ":rang"
 .if "${a b c:L:rang}Rest" != "Rest"
 .  error
 .else
@@ -97,7 +97,7 @@
 .endif
 
 # misspelled modifier name
-# expect+1: Unknown modifier "rango"
+# expect+1: Unknown modifier ":rango"
 .if "${a b c:L:rango}Rest" != "Rest"
 .  error
 .else
@@ -105,7 +105,7 @@
 .endif
 
 # modifier name too long
-# expect+1: Unknown modifier "ranger"
+# expect+1: Unknown modifier ":ranger"
 .if "${a b c:L:ranger}Rest" != "Rest"
 .  error
 .else
Index: src/usr.bin/make/unit-tests/varmod-subst.mk
diff -u src/usr.bin/make/unit-tests/varmod-subst.mk:1.16 src/usr.bin/make/unit-tests/varmod-subst.mk:1.17
--- src/usr.bin/make/unit-tests/varmod-subst.mk:1.16	Thu Aug 29 20:20:37 2024
+++ src/usr.bin/make/unit-tests/varmod-subst.mk	Sat Mar 29 19:08:53 2025
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-subst.mk,v 1.16 2024/08/29 20:20:37 rillig Exp $
+# $NetBSD: varmod-subst.mk,v 1.17 2025/03/29 19:08:53 rillig Exp $
 #
 # Tests for the :S,from,to, variable modifier.
 
@@ -252,7 +252,7 @@ mod-subst-chain:
 	# The error message is "make: Unknown modifier 'i'", which is
 	# kind of correct, although it is mixing the terms for variable
 	# modifiers with the matching modifiers.
-# expect: make: Unknown modifier "i"
+# expect: make: Unknown modifier ":i"
 	@echo ${:Uvalue:S,a,x,i}.
 
 # No matter how many dollar signs there are, they all get merged
Index: src/usr.bin/make/unit-tests/varparse-errors.exp
diff -u src/usr.bin/make/unit-tests/varparse-errors.exp:1.16 src/usr.bin/make/unit-tests/varparse-errors.exp:1.17
--- src/usr.bin/make/unit-tests/varparse-errors.exp:1.16	Thu Aug 29 20:20:37 2024
+++ src/usr.bin/make/unit-tests/varparse-errors.exp	Sat Mar 29 19:08:53 2025
@@ -1,6 +1,6 @@
-make: "varparse-errors.mk" line 38: Unknown modifier "Z"
+make: "varparse-errors.mk" line 38: Unknown modifier ":Z"
 	while evaluating "${:U:Z}" with value ""
-make: "varparse-errors.mk" line 47: Unknown modifier "Z"
+make: "varparse-errors.mk" line 47: Unknown modifier ":Z"
 	while evaluating "${:U:Z}post" with value ""
 make: "varparse-errors.mk" line 73: Bad modifier ":OX"
 	while evaluating "${:U:OX:U${IND}} ${:U:OX:U${IND}}" with value ""

Index: src/usr.bin/make/unit-tests/moderrs.exp
diff -u src/usr.bin/make/unit-tests/moderrs.exp:1.50 src/usr.bin/make/unit-tests/moderrs.exp:1.51
--- src/usr.bin/make/unit-tests/moderrs.exp:1.50	Sat Mar 29 16:44:14 2025
+++ src/usr.bin/make/unit-tests/moderrs.exp	Sat Mar 29 19:08:52 2025
@@ -1,8 +1,8 @@
-make: Unknown modifier "Z"
+make: Unknown modifier ":Z"
 	while evaluating variable "VAR" with value "TheVariable"
 	in command "@echo 'VAR:Z=before-${VAR:Z}-after'"
 	in target "mod-unknown-direct"
-make: Unknown modifier "Z"
+make: Unknown modifier ":Z"
 	while evaluating indirect modifiers "Z"
 	while evaluating variable "VAR" with value "TheVariable"
 	in command "@echo 'VAR:${MOD_UNKN}=before-${VAR:${MOD_UNKN}:inner}-after'"
@@ -153,11 +153,11 @@ make: Unfinished modifier after "else", 
 	in target "mod-ifelse-parse-4"
 then
 1 1 2 3 5 8 13 21 34
-make: Unknown modifier "__"
+make: Unknown modifier ":__"
 	while evaluating variable "FIB" with value "1 1 2 3 5 8 13 21 34"
 	in command "@echo ${FIB:__}		# modifier name too long"
 	in target "mod-remember-parse"
-make: Unknown modifier "3"
+make: Unknown modifier ":3"
 	while evaluating variable "FIB" with value "1 1 2 3 5 8 13 21 34"
 	in command "@echo ${FIB:3"
 	in target "mod-sysv-parse-1"

Index: src/usr.bin/make/unit-tests/moderrs.mk
diff -u src/usr.bin/make/unit-tests/moderrs.mk:1.44 src/usr.bin/make/unit-tests/moderrs.mk:1.45
--- src/usr.bin/make/unit-tests/moderrs.mk:1.44	Sat Mar 29 16:44:14 2025
+++ src/usr.bin/make/unit-tests/moderrs.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: moderrs.mk,v 1.44 2025/03/29 16:44:14 rillig Exp $
+# $NetBSD: moderrs.mk,v 1.45 2025/03/29 19:08:52 rillig Exp $
 #
 # various modifier error tests
 
@@ -25,11 +25,11 @@ all:	mod-remember-parse
 all:	mod-sysv-parse-{1,2,3,4}
 
 mod-unknown-direct:
-# expect: make: Unknown modifier "Z"
+# expect: make: Unknown modifier ":Z"
 	@echo 'VAR:Z=before-${VAR:Z}-after'
 
 mod-unknown-indirect:
-# expect: make: Unknown modifier "Z"
+# expect: make: Unknown modifier ":Z"
 	@echo 'VAR:${MOD_UNKN}=before-${VAR:${MOD_UNKN}:inner}-after'
 
 unclosed-direct:
@@ -192,11 +192,11 @@ mod-ifelse-parse-5:
 
 mod-remember-parse:
 	@echo ${FIB:_}		# ok
-# expect: make: Unknown modifier "__"
+# expect: make: Unknown modifier ":__"
 	@echo ${FIB:__}		# modifier name too long
 
 mod-sysv-parse-1:
-# expect: make: Unknown modifier "3"
+# expect: make: Unknown modifier ":3"
 	@echo ${FIB:3
 mod-sysv-parse-2:
 # expect: make: Unfinished modifier after "", expecting "}"

Index: src/usr.bin/make/unit-tests/opt-debug-lint.exp
diff -u src/usr.bin/make/unit-tests/opt-debug-lint.exp:1.23 src/usr.bin/make/unit-tests/opt-debug-lint.exp:1.24
--- src/usr.bin/make/unit-tests/opt-debug-lint.exp:1.23	Sat Jan 11 20:54:45 2025
+++ src/usr.bin/make/unit-tests/opt-debug-lint.exp	Sat Mar 29 19:08:52 2025
@@ -4,7 +4,7 @@ make: "opt-debug-lint.mk" line 65: Missi
 	while evaluating variable "value" with value "value"
 make: "opt-debug-lint.mk" line 65: Missing delimiter ':' after modifier "P"
 	while evaluating variable "value" with value "value"
-make: "opt-debug-lint.mk" line 74: Unknown modifier "${"
+make: "opt-debug-lint.mk" line 74: Unknown modifier ":${"
 	while evaluating variable "value" with value ""
 make: Fatal errors encountered -- cannot continue
 make: stopped in unit-tests
Index: src/usr.bin/make/unit-tests/varmod-match.exp
diff -u src/usr.bin/make/unit-tests/varmod-match.exp:1.23 src/usr.bin/make/unit-tests/varmod-match.exp:1.24
--- src/usr.bin/make/unit-tests/varmod-match.exp:1.23	Sat Jan 11 20:54:46 2025
+++ src/usr.bin/make/unit-tests/varmod-match.exp	Sat Mar 29 19:08:52 2025
@@ -16,7 +16,7 @@ make: "varmod-match.mk" line 356: Unfini
 	while evaluating variable "WORDS" with value "[x- x x- y yyyyy"
 make: "varmod-match.mk" line 363: Unfinished character list in pattern '[' of modifier ':M'
 	while evaluating variable " : :: " with value " : :: "
-make: "varmod-match.mk" line 363: Unknown modifier "]"
+make: "varmod-match.mk" line 363: Unknown modifier ":]"
 	while evaluating variable " : :: " with value ""
 make: Fatal errors encountered -- cannot continue
 make: stopped in unit-tests

Index: src/usr.bin/make/unit-tests/var-op-expand.exp
diff -u src/usr.bin/make/unit-tests/var-op-expand.exp:1.12 src/usr.bin/make/unit-tests/var-op-expand.exp:1.13
--- src/usr.bin/make/unit-tests/var-op-expand.exp:1.12	Thu Aug 29 20:20:36 2024
+++ src/usr.bin/make/unit-tests/var-op-expand.exp	Sat Mar 29 19:08:52 2025
@@ -1,8 +1,8 @@
-make: "var-op-expand.mk" line 274: Unknown modifier "s,value,replaced,"
+make: "var-op-expand.mk" line 274: Unknown modifier ":s,value,replaced,"
 	while evaluating variable "later" with value ""
 	while evaluating variable "indirect" with value "${later:s,value,replaced,} ok ${later:value=sysv}"
 make: "var-op-expand.mk" line 278: warning: XXX Neither branch should be taken.
-make: "var-op-expand.mk" line 283: Unknown modifier "s,value,replaced,"
+make: "var-op-expand.mk" line 283: Unknown modifier ":s,value,replaced,"
 	while evaluating variable "later" with value "lowercase-value"
 	while evaluating variable "indirect" with value "${later:s,value,replaced,} ok ${later:value=sysv}"
 make: "var-op-expand.mk" line 285: warning: XXX Neither branch should be taken.
Index: src/usr.bin/make/unit-tests/varmod-mtime.exp
diff -u src/usr.bin/make/unit-tests/varmod-mtime.exp:1.12 src/usr.bin/make/unit-tests/varmod-mtime.exp:1.13
--- src/usr.bin/make/unit-tests/varmod-mtime.exp:1.12	Sat Jan 11 20:54:46 2025
+++ src/usr.bin/make/unit-tests/varmod-mtime.exp	Sat Mar 29 19:08:52 2025
@@ -8,7 +8,7 @@ make: "varmod-mtime.mk" line 78: Invalid
 	while evaluating variable "MAKEFILE" with value "varmod-mtime.mk"
 make: "varmod-mtime.mk" line 86: Invalid argument 'warn' for modifier ':mtime'
 	while evaluating variable "MAKEFILE" with value "varmod-mtime.mk"
-make: "varmod-mtime.mk" line 110: Unknown modifier "mtim"
+make: "varmod-mtime.mk" line 110: Unknown modifier ":mtim"
 	while evaluating variable "anything" with value "anything"
 make: Fatal errors encountered -- cannot continue
 make: stopped in unit-tests

Index: src/usr.bin/make/unit-tests/vardebug.exp
diff -u src/usr.bin/make/unit-tests/vardebug.exp:1.41 src/usr.bin/make/unit-tests/vardebug.exp:1.42
--- src/usr.bin/make/unit-tests/vardebug.exp:1.41	Sat Mar 29 16:44:14 2025
+++ src/usr.bin/make/unit-tests/vardebug.exp	Sat Mar 29 19:08:52 2025
@@ -54,7 +54,7 @@ Var_Parse: ${:Uvariable:unknown} (eval-d
 Evaluating modifier ${:U...} on value "" (eval, undefined)
 Result of ${:Uvariable} is "variable" (eval, defined)
 Evaluating modifier ${:u...} on value "variable" (eval, defined)
-make: "vardebug.mk" line 59: Unknown modifier "unknown"
+make: "vardebug.mk" line 59: Unknown modifier ":unknown"
 	while evaluating "${:Uvariable:unknown}" with value "variable"
 Var_Parse: ${UNDEFINED} (eval-defined-loud)
 make: "vardebug.mk" line 63: Variable "UNDEFINED" is undefined

Index: src/usr.bin/make/unit-tests/varmod-assign.exp
diff -u src/usr.bin/make/unit-tests/varmod-assign.exp:1.32 src/usr.bin/make/unit-tests/varmod-assign.exp:1.33
--- src/usr.bin/make/unit-tests/varmod-assign.exp:1.32	Sat Mar 29 11:51:54 2025
+++ src/usr.bin/make/unit-tests/varmod-assign.exp	Sat Mar 29 19:08:52 2025
@@ -46,7 +46,7 @@ make: Bad modifier ":"
 	in command "@echo $@: ${:Uvalue::=overwritten}"
 	in target "mod-assign-empty-2"
 mod-assign-empty-3: VAR=overwritten
-make: Unknown modifier ":x"
+make: Unknown modifier "::x"
 	while evaluating variable "ASSIGN" with value ""
 	in command "@echo ${ASSIGN::x}"
 	in target "mod-assign-parse-1"

Index: src/usr.bin/make/unit-tests/varmod-edge.exp
diff -u src/usr.bin/make/unit-tests/varmod-edge.exp:1.31 src/usr.bin/make/unit-tests/varmod-edge.exp:1.32
--- src/usr.bin/make/unit-tests/varmod-edge.exp:1.31	Sat Mar 29 16:44:14 2025
+++ src/usr.bin/make/unit-tests/varmod-edge.exp	Sat Mar 29 19:08:52 2025
@@ -8,10 +8,10 @@ make: "varmod-edge.mk" line 88: Unfinish
 make: "varmod-edge.mk" line 178: Unfinished modifier after "a\=b}", expecting "="
 	while evaluating variable "INP" with value "file.c file..."
 	while evaluating variable "MOD" with value "${INP:a\=b}"
-make: "varmod-edge.mk" line 193: Unknown modifier ":"
+make: "varmod-edge.mk" line 193: Unknown modifier "::"
 	while evaluating variable "INP" with value "value"
 	while evaluating variable "MOD" with value "${INP::::}"
-make: "varmod-edge.mk" line 199: Unknown modifier "Z"
+make: "varmod-edge.mk" line 199: Unknown modifier ":Z"
 	while evaluating "${:Z}" with value ""
 make: "varmod-edge.mk" line 212: Unfinished modifier after "}", expecting ","
 	while evaluating "${:S,}" with value ""

Index: src/usr.bin/make/unit-tests/varmod-edge.mk
diff -u src/usr.bin/make/unit-tests/varmod-edge.mk:1.35 src/usr.bin/make/unit-tests/varmod-edge.mk:1.36
--- src/usr.bin/make/unit-tests/varmod-edge.mk:1.35	Sat Mar 29 16:44:14 2025
+++ src/usr.bin/make/unit-tests/varmod-edge.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-edge.mk,v 1.35 2025/03/29 16:44:14 rillig Exp $
+# $NetBSD: varmod-edge.mk,v 1.36 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for edge cases in variable modifiers.
 #
@@ -189,13 +189,13 @@ EXP=	value
 INP=	value
 MOD=	${INP::::}
 EXP=	:}
-# expect+1: Unknown modifier ":"
+# expect+1: Unknown modifier "::"
 .if ${MOD} != ${EXP}
 .  warning expected "${EXP}", got "${MOD}"
 .endif
 
 # Even in expressions based on an unnamed variable, there may be errors.
-# expect+1: Unknown modifier "Z"
+# expect+1: Unknown modifier ":Z"
 .if ${:Z}
 .  error
 .else
Index: src/usr.bin/make/unit-tests/varmod-ifelse.mk
diff -u src/usr.bin/make/unit-tests/varmod-ifelse.mk:1.35 src/usr.bin/make/unit-tests/varmod-ifelse.mk:1.36
--- src/usr.bin/make/unit-tests/varmod-ifelse.mk:1.35	Sat Jan 11 20:54:45 2025
+++ src/usr.bin/make/unit-tests/varmod-ifelse.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-ifelse.mk,v 1.35 2025/01/11 20:54:45 rillig Exp $
+# $NetBSD: varmod-ifelse.mk,v 1.36 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for the ${cond:?then:else} variable modifier, which evaluates either
 # the then-expression or the else-expression, depending on the condition.
@@ -309,7 +309,7 @@ BOTH=	<${YES}> <${NO}>
 .endif
 
 
-# expect+2: Unknown modifier "X-then"
-# expect+1: Unknown modifier "X-else"
+# expect+2: Unknown modifier ":X-then"
+# expect+1: Unknown modifier ":X-else"
 .if ${1:?${:X-then}:${:X-else}}
 .endif

Index: src/usr.bin/make/unit-tests/varmod-indirect.exp
diff -u src/usr.bin/make/unit-tests/varmod-indirect.exp:1.33 src/usr.bin/make/unit-tests/varmod-indirect.exp:1.34
--- src/usr.bin/make/unit-tests/varmod-indirect.exp:1.33	Sat Mar 29 16:44:14 2025
+++ src/usr.bin/make/unit-tests/varmod-indirect.exp	Sat Mar 29 19:08:52 2025
@@ -1,6 +1,6 @@
-make: "varmod-indirect.mk" line 19: Unknown modifier "${"
+make: "varmod-indirect.mk" line 19: Unknown modifier ":${"
 	while evaluating variable "value" with value "value"
-make: "varmod-indirect.mk" line 52: Unknown modifier "${"
+make: "varmod-indirect.mk" line 52: Unknown modifier ":${"
 	while evaluating variable "value" with value "value"
 make: "varmod-indirect.mk" line 140: before
 make: "varmod-indirect.mk" line 140: after
@@ -8,7 +8,7 @@ make: "varmod-indirect.mk" line 148: bef
 make: "varmod-indirect.mk" line 148: after
 make: "varmod-indirect.mk" line 156: before
 make: "varmod-indirect.mk" line 156: after
-make: "varmod-indirect.mk" line 161: Unknown modifier "Z"
+make: "varmod-indirect.mk" line 161: Unknown modifier ":Z"
 	while evaluating indirect modifiers "Z"
 	while evaluating variable "UNDEF" with value ""
 make: "varmod-indirect.mk" line 164: before
@@ -34,7 +34,7 @@ Parsing varmod-indirect.mk:192: _:=	befo
 Var_Parse: ${UNDEF:${:UZ}} after (eval-keep-dollar-and-undefined)
 Indirect modifier "Z" from "${:UZ}"
 Evaluating modifier ${UNDEF:Z} on value "" (eval-keep-dollar-and-undefined, undefined)
-make: "varmod-indirect.mk" line 192: Unknown modifier "Z"
+make: "varmod-indirect.mk" line 192: Unknown modifier ":Z"
 	while evaluating indirect modifiers "Z"
 	while evaluating variable "UNDEF" with value ""
 Global: _ = before ${UNDEF:Z} after

Index: src/usr.bin/make/unit-tests/varmod-match.mk
diff -u src/usr.bin/make/unit-tests/varmod-match.mk:1.29 src/usr.bin/make/unit-tests/varmod-match.mk:1.30
--- src/usr.bin/make/unit-tests/varmod-match.mk:1.29	Sat Jan 11 20:54:46 2025
+++ src/usr.bin/make/unit-tests/varmod-match.mk	Sat Mar 29 19:08:52 2025
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-match.mk,v 1.29 2025/01/11 20:54:46 rillig Exp $
+# $NetBSD: varmod-match.mk,v 1.30 2025/03/29 19:08:52 rillig Exp $
 #
 # Tests for the ':M' modifier, which keeps only those words that match the
 # given pattern.
@@ -359,7 +359,7 @@ WORDS=		[x- x x- y yyyyy
 
 #	[:]	matches never since the ':' starts the next modifier
 # expect+2: Unfinished character list in pattern '[' of modifier ':M'
-# expect+1: Unknown modifier "]"
+# expect+1: Unknown modifier ":]"
 .if ${ ${:U\:} ${:U\:\:} :L:M[:]} != ":"
 .  error
 .else

Index: src/usr.bin/make/unit-tests/varmod-range.exp
diff -u src/usr.bin/make/unit-tests/varmod-range.exp:1.18 src/usr.bin/make/unit-tests/varmod-range.exp:1.19
--- src/usr.bin/make/unit-tests/varmod-range.exp:1.18	Sat Jan 11 20:54:46 2025
+++ src/usr.bin/make/unit-tests/varmod-range.exp	Sat Mar 29 19:08:52 2025
@@ -1,13 +1,13 @@
 make: "varmod-range.mk" line 43: Malformed conditional '${:range=5} != ""'
 make: "varmod-range.mk" line 66: Invalid number "x}Rest" != "Rest"" for ':range' modifier
 	while evaluating "${:U:range=x}Rest" != "Rest"" with value ""
-make: "varmod-range.mk" line 76: Unknown modifier "x0"
+make: "varmod-range.mk" line 76: Unknown modifier ":x0"
 	while evaluating "${:U:range=0x0}Rest" != "Rest"" with value "1"
-make: "varmod-range.mk" line 93: Unknown modifier "rang"
+make: "varmod-range.mk" line 93: Unknown modifier ":rang"
 	while evaluating variable "a b c" with value "a b c"
-make: "varmod-range.mk" line 101: Unknown modifier "rango"
+make: "varmod-range.mk" line 101: Unknown modifier ":rango"
 	while evaluating variable "a b c" with value "a b c"
-make: "varmod-range.mk" line 109: Unknown modifier "ranger"
+make: "varmod-range.mk" line 109: Unknown modifier ":ranger"
 	while evaluating variable "a b c" with value "a b c"
 make: Fatal errors encountered -- cannot continue
 make: stopped making "all" in unit-tests

Index: src/usr.bin/make/unit-tests/varmod-subst.exp
diff -u src/usr.bin/make/unit-tests/varmod-subst.exp:1.10 src/usr.bin/make/unit-tests/varmod-subst.exp:1.11
--- src/usr.bin/make/unit-tests/varmod-subst.exp:1.10	Sat Mar 29 10:39:49 2025
+++ src/usr.bin/make/unit-tests/varmod-subst.exp	Sat Mar 29 19:08:53 2025
@@ -45,7 +45,7 @@ mod-subst-delimiter:
 1 two 3 tilde
 mod-subst-chain:
 A B c.
-make: Unknown modifier "i"
+make: Unknown modifier ":i"
 	while evaluating "${:Uvalue:S,a,x,i}." with value "vxlue"
 	in command "@echo ${:Uvalue:S,a,x,i}."
 	in target "mod-subst-chain"

Index: src/usr.bin/make/unit-tests/varparse-errors.mk
diff -u src/usr.bin/make/unit-tests/varparse-errors.mk:1.19 src/usr.bin/make/unit-tests/varparse-errors.mk:1.20
--- src/usr.bin/make/unit-tests/varparse-errors.mk:1.19	Thu Aug 29 20:20:37 2024
+++ src/usr.bin/make/unit-tests/varparse-errors.mk	Sat Mar 29 19:08:53 2025
@@ -1,4 +1,4 @@
-# $NetBSD: varparse-errors.mk,v 1.19 2024/08/29 20:20:37 rillig Exp $
+# $NetBSD: varparse-errors.mk,v 1.20 2025/03/29 19:08:53 rillig Exp $
 
 # Tests for parsing and evaluating all kinds of expressions.
 #
@@ -34,7 +34,7 @@ ERR_EVAL=	An evaluation error ${:Uvalue:
 # As of 2020-12-01, errors in the variable name are silently ignored.
 # Since var.c 1.754 from 2020-12-20, unknown modifiers at parse time result
 # in an error message and a non-zero exit status.
-# expect+1: Unknown modifier "Z"
+# expect+1: Unknown modifier ":Z"
 VAR.${:U:Z}=	unknown modifier in the variable name
 .if ${VAR.} != "unknown modifier in the variable name"
 .  error
@@ -43,7 +43,7 @@ VAR.${:U:Z}=	unknown modifier in the var
 # As of 2020-12-01, errors in the variable name are silently ignored.
 # Since var.c 1.754 from 2020-12-20, unknown modifiers at parse time result
 # in an error message and a non-zero exit status.
-# expect+1: Unknown modifier "Z"
+# expect+1: Unknown modifier ":Z"
 VAR.${:U:Z}post=	unknown modifier with text in the variable name
 .if ${VAR.post} != "unknown modifier with text in the variable name"
 .  error

Reply via email to