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