Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/make make(1): improve explanation of tests for the S...
details: https://anonhg.NetBSD.org/src/rev/788722f9771c
branches: trunk
changeset: 957590:788722f9771c
user: rillig <rillig%NetBSD.org@localhost>
date: Sat Dec 05 13:01:33 2020 +0000
description:
make(1): improve explanation of tests for the SysV modifier
diffstat:
usr.bin/make/unit-tests/varmod-sysv.exp | 4 ++--
usr.bin/make/unit-tests/varmod-sysv.mk | 16 ++++++++++------
usr.bin/make/var.c | 6 +++---
3 files changed, 15 insertions(+), 11 deletions(-)
diffs (80 lines):
diff -r dfe4eacfade1 -r 788722f9771c usr.bin/make/unit-tests/varmod-sysv.exp
--- a/usr.bin/make/unit-tests/varmod-sysv.exp Sat Dec 05 11:18:21 2020 +0000
+++ b/usr.bin/make/unit-tests/varmod-sysv.exp Sat Dec 05 13:01:33 2020 +0000
@@ -1,5 +1,5 @@
-make: Unfinished modifier for word203 ('=' missing)
-make: "varmod-sysv.mk" line 210: Malformed conditional (${word203:L:from${:D=}to})
+make: Unfinished modifier for word214 ('=' missing)
+make: "varmod-sysv.mk" line 214: Malformed conditional (${word214:L:from${:D=}to})
make: Fatal errors encountered -- cannot continue
make: stopped in unit-tests
exit status 1
diff -r dfe4eacfade1 -r 788722f9771c usr.bin/make/unit-tests/varmod-sysv.mk
--- a/usr.bin/make/unit-tests/varmod-sysv.mk Sat Dec 05 11:18:21 2020 +0000
+++ b/usr.bin/make/unit-tests/varmod-sysv.mk Sat Dec 05 13:01:33 2020 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-sysv.mk,v 1.11 2020/11/01 22:28:52 rillig Exp $
+# $NetBSD: varmod-sysv.mk,v 1.12 2020/12/05 13:01:33 rillig Exp $
#
# Tests for the ${VAR:from=to} variable modifier, which replaces the suffix
# "from" with "to". It can also use '%' as a wildcard.
@@ -77,13 +77,16 @@
# If the variable value is empty, it is debatable whether it consists of a
# single empty word, or no word at all. The :from=to modifier treats it as
# no word at all.
+#
+# See SysVMatch, which doesn't handle w_len == p_len specially.
.if ${:L:=suffix} != ""
. error
.endif
# If the variable value is empty, it is debatable whether it consists of a
-# single empty word, or no word at all. The :from=to modifier treats it as
-# no word at all.
+# single empty word (before 2020-05-06), or no word at all (since 2020-05-06).
+#
+# See SysVMatch, percent != NULL && w[0] == '\0'.
.if ${:L:%=suffix} != ""
. error
.endif
@@ -205,9 +208,10 @@
# This is not a SysV modifier since the nested variable expression expands
# to an empty string. The '=' in it should be irrelevant during parsing.
-# As of 2020-11-01, this seemingly correct modifier leads to a parse error.
-# XXX
-.if ${word203:L:from${:D=}to}
+# XXX: As of 2020-12-05, this expression generates an "Unfinished modifier"
+# error, while the correct error message would be "Unknown modifier" since
+# there is no modifier named "fromto".
+.if ${word214:L:from${:D=}to}
. error
.endif
diff -r dfe4eacfade1 -r 788722f9771c usr.bin/make/var.c
--- a/usr.bin/make/var.c Sat Dec 05 11:18:21 2020 +0000
+++ b/usr.bin/make/var.c Sat Dec 05 13:01:33 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: var.c,v 1.701 2020/12/04 22:47:57 rillig Exp $ */
+/* $NetBSD: var.c,v 1.702 2020/12/05 13:01:33 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -130,7 +130,7 @@
#include "metachar.h"
/* "@(#)var.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.701 2020/12/04 22:47:57 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.702 2020/12/05 13:01:33 rillig Exp $");
#define VAR_DEBUG1(fmt, arg1) DEBUG1(VAR, fmt, arg1)
#define VAR_DEBUG2(fmt, arg1, arg2) DEBUG2(VAR, fmt, arg1, arg2)
@@ -1195,7 +1195,7 @@
percent = strchr(p, '%');
if (percent != NULL) { /* ${VAR:...%...=...} */
*out_hasPercent = TRUE;
- if (*w == '\0')
+ if (w[0] == '\0')
return NULL; /* empty word does not match pattern */
/* check that the prefix matches */
Home |
Main Index |
Thread Index |
Old Index