Module Name:    src
Committed By:   sjg
Date:           Mon Jun 21 04:24:17 UTC 2021

Modified Files:
        src/usr.bin/make: var.c
        src/usr.bin/make/unit-tests: moderrs.exp moderrs.mk

Log Message:
Do not report unmatched regex subexpressions

It is not always an error for a subexpression to have not matched,
since the regex library can/does not convey how many matches are
expected, only report an error if opts.strict (-dL)

Reviewed by: christos


To generate a diff of this commit:
cvs rdiff -u -r1.932 -r1.933 src/usr.bin/make/var.c
cvs rdiff -u -r1.29 -r1.30 src/usr.bin/make/unit-tests/moderrs.exp
cvs rdiff -u -r1.27 -r1.28 src/usr.bin/make/unit-tests/moderrs.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.932 src/usr.bin/make/var.c:1.933
--- src/usr.bin/make/var.c:1.932	Sun May 30 20:41:34 2021
+++ src/usr.bin/make/var.c	Mon Jun 21 04:24:17 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: var.c,v 1.932 2021/05/30 20:41:34 rillig Exp $	*/
+/*	$NetBSD: var.c,v 1.933 2021/06/21 04:24:17 sjg Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -140,7 +140,7 @@
 #include "metachar.h"
 
 /*	"@(#)var.c	8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.932 2021/05/30 20:41:34 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.933 2021/06/21 04:24:17 sjg Exp $");
 
 /*
  * Variables are defined using one of the VAR=value assignments.  Their
@@ -1651,9 +1651,11 @@ tryagain:
 					Error("No subexpression \\%u",
 					    (unsigned)n);
 				} else if (m[n].rm_so == -1) {
-					Error(
-					    "No match for subexpression \\%u",
-					    (unsigned)n);
+					if (opts.strict) {
+						Error(
+						    "No match for subexpression \\%u",
+							(unsigned)n);
+					}
 				} else {
 					SepBuf_AddBytesBetween(buf,
 					    wp + m[n].rm_so, wp + m[n].rm_eo);

Index: src/usr.bin/make/unit-tests/moderrs.exp
diff -u src/usr.bin/make/unit-tests/moderrs.exp:1.29 src/usr.bin/make/unit-tests/moderrs.exp:1.30
--- src/usr.bin/make/unit-tests/moderrs.exp:1.29	Tue Feb 23 16:07:14 2021
+++ src/usr.bin/make/unit-tests/moderrs.exp	Mon Jun 21 04:24:17 2021
@@ -143,4 +143,4 @@ make: Unclosed variable expression, expe
 
 1 1 2 x3 5 8 1x3 21 34
 
-exit status 0
+exit status 2

Index: src/usr.bin/make/unit-tests/moderrs.mk
diff -u src/usr.bin/make/unit-tests/moderrs.mk:1.27 src/usr.bin/make/unit-tests/moderrs.mk:1.28
--- src/usr.bin/make/unit-tests/moderrs.mk:1.27	Tue Feb 23 16:04:16 2021
+++ src/usr.bin/make/unit-tests/moderrs.mk	Mon Jun 21 04:24:17 2021
@@ -1,7 +1,10 @@
-# $NetBSD: moderrs.mk,v 1.27 2021/02/23 16:04:16 rillig Exp $
+# $NetBSD: moderrs.mk,v 1.28 2021/06/21 04:24:17 sjg Exp $
 #
 # various modifier error tests
 
+# report unmatched subexpressions
+.MAKEFLAGS: -dL
+
 '=		'\''
 VAR=		TheVariable
 # in case we have to change it ;-)

Reply via email to