Module Name:    src
Committed By:   rillig
Date:           Tue Aug  6 17:46:01 UTC 2024

Modified Files:
        src/usr.bin/make: arch.c cond.c
        src/usr.bin/make/unit-tests: cond-func-defined.exp cond-func-defined.mk
            cond-func.exp cond-func.mk varname.exp varname.mk

Log Message:
make: add details to error messages about missing ')'


To generate a diff of this commit:
cvs rdiff -u -r1.221 -r1.222 src/usr.bin/make/arch.c
cvs rdiff -u -r1.366 -r1.367 src/usr.bin/make/cond.c
cvs rdiff -u -r1.10 -r1.11 src/usr.bin/make/unit-tests/cond-func-defined.exp \
    src/usr.bin/make/unit-tests/cond-func.exp
cvs rdiff -u -r1.12 -r1.13 src/usr.bin/make/unit-tests/cond-func-defined.mk
cvs rdiff -u -r1.15 -r1.16 src/usr.bin/make/unit-tests/cond-func.mk
cvs rdiff -u -r1.21 -r1.22 src/usr.bin/make/unit-tests/varname.exp
cvs rdiff -u -r1.14 -r1.15 src/usr.bin/make/unit-tests/varname.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/arch.c
diff -u src/usr.bin/make/arch.c:1.221 src/usr.bin/make/arch.c:1.222
--- src/usr.bin/make/arch.c:1.221	Sun Jul  7 07:50:57 2024
+++ src/usr.bin/make/arch.c	Tue Aug  6 17:46:01 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: arch.c,v 1.221 2024/07/07 07:50:57 rillig Exp $	*/
+/*	$NetBSD: arch.c,v 1.222 2024/08/06 17:46:01 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -126,7 +126,7 @@
 #include "config.h"
 
 /*	"@(#)arch.c	8.2 (Berkeley) 1/2/94"	*/
-MAKE_RCSID("$NetBSD: arch.c,v 1.221 2024/07/07 07:50:57 rillig Exp $");
+MAKE_RCSID("$NetBSD: arch.c,v 1.222 2024/08/06 17:46:01 rillig Exp $");
 
 typedef struct List ArchList;
 typedef struct ListNode ArchListNode;
@@ -266,8 +266,7 @@ Arch_ParseArchive(char **pp, GNodeList *
 
 		if (*cp == '\0') {
 			Parse_Error(PARSE_FATAL,
-			    "No closing parenthesis "
-			    "in archive specification");
+			    "Missing ')' in archive specification");
 			return false;
 		}
 

Index: src/usr.bin/make/cond.c
diff -u src/usr.bin/make/cond.c:1.366 src/usr.bin/make/cond.c:1.367
--- src/usr.bin/make/cond.c:1.366	Sat Jul  6 21:21:09 2024
+++ src/usr.bin/make/cond.c	Tue Aug  6 17:46:01 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: cond.c,v 1.366 2024/07/06 21:21:09 rillig Exp $	*/
+/*	$NetBSD: cond.c,v 1.367 2024/08/06 17:46:01 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -91,7 +91,7 @@
 #include "dir.h"
 
 /*	"@(#)cond.c	8.2 (Berkeley) 1/2/94"	*/
-MAKE_RCSID("$NetBSD: cond.c,v 1.366 2024/07/06 21:21:09 rillig Exp $");
+MAKE_RCSID("$NetBSD: cond.c,v 1.367 2024/08/06 17:46:01 rillig Exp $");
 
 /*
  * Conditional expressions conform to this grammar:
@@ -266,7 +266,8 @@ ParseFuncArg(CondParser *par, const char
 			len++;
 
 		Parse_Error(PARSE_FATAL,
-		    "Missing closing parenthesis for %.*s()", len, func);
+		    "Missing ')' after argument '%s' for '%.*s'",
+		    res, len, func);
 		par->printedError = true;
 		free(res);
 		return NULL;

Index: src/usr.bin/make/unit-tests/cond-func-defined.exp
diff -u src/usr.bin/make/unit-tests/cond-func-defined.exp:1.10 src/usr.bin/make/unit-tests/cond-func-defined.exp:1.11
--- src/usr.bin/make/unit-tests/cond-func-defined.exp:1.10	Thu Jul  4 20:18:40 2024
+++ src/usr.bin/make/unit-tests/cond-func-defined.exp	Tue Aug  6 17:46:01 2024
@@ -1,5 +1,5 @@
-make: "cond-func-defined.mk" line 24: Missing closing parenthesis for defined()
-make: "cond-func-defined.mk" line 34: Missing closing parenthesis for defined()
+make: "cond-func-defined.mk" line 24: Missing ')' after argument 'A' for 'defined'
+make: "cond-func-defined.mk" line 34: Missing ')' after argument 'DEF' for 'defined'
 make: Fatal errors encountered -- cannot continue
 make: stopped making "all" in unit-tests
 exit status 1
Index: src/usr.bin/make/unit-tests/cond-func.exp
diff -u src/usr.bin/make/unit-tests/cond-func.exp:1.10 src/usr.bin/make/unit-tests/cond-func.exp:1.11
--- src/usr.bin/make/unit-tests/cond-func.exp:1.10	Sat Jul  6 21:21:10 2024
+++ src/usr.bin/make/unit-tests/cond-func.exp	Tue Aug  6 17:46:01 2024
@@ -1,12 +1,12 @@
-make: "cond-func.mk" line 37: Missing closing parenthesis for defined()
-make: "cond-func.mk" line 53: Missing closing parenthesis for defined()
-make: "cond-func.mk" line 57: Missing closing parenthesis for defined()
+make: "cond-func.mk" line 37: Missing ')' after argument 'A' for 'defined'
+make: "cond-func.mk" line 53: Missing ')' after argument 'A' for 'defined'
+make: "cond-func.mk" line 57: Missing ')' after argument 'A' for 'defined'
 make: "cond-func.mk" line 91: Unknown operator '&'
 make: "cond-func.mk" line 107: A plain function name is parsed as defined(...).
 make: "cond-func.mk" line 115: A plain function name is parsed as defined(...).
 make: "cond-func.mk" line 126: Symbols may start with a function name.
 make: "cond-func.mk" line 132: Symbols may start with a function name.
-make: "cond-func.mk" line 138: Missing closing parenthesis for defined()
+make: "cond-func.mk" line 138: Missing ')' after argument '' for 'defined'
 make: Fatal errors encountered -- cannot continue
 make: stopped in unit-tests
 exit status 1

Index: src/usr.bin/make/unit-tests/cond-func-defined.mk
diff -u src/usr.bin/make/unit-tests/cond-func-defined.mk:1.12 src/usr.bin/make/unit-tests/cond-func-defined.mk:1.13
--- src/usr.bin/make/unit-tests/cond-func-defined.mk:1.12	Tue Apr 23 22:51:28 2024
+++ src/usr.bin/make/unit-tests/cond-func-defined.mk	Tue Aug  6 17:46:01 2024
@@ -1,4 +1,4 @@
-# $NetBSD: cond-func-defined.mk,v 1.12 2024/04/23 22:51:28 rillig Exp $
+# $NetBSD: cond-func-defined.mk,v 1.13 2024/08/06 17:46:01 rillig Exp $
 #
 # Tests for the defined() function in .if conditions.
 
@@ -20,7 +20,7 @@ ${:UA B}=	variable name with spaces
 .endif
 
 # The argument of a function must not directly contain whitespace.
-# expect+1: Missing closing parenthesis for defined()
+# expect+1: Missing ')' after argument 'A' for 'defined'
 .if !defined(A B)
 .  error
 .endif
@@ -30,7 +30,7 @@ ${:UA B}=	variable name with spaces
 .  error
 .endif
 
-# expect+1: Missing closing parenthesis for defined()
+# expect+1: Missing ')' after argument 'DEF' for 'defined'
 .if defined(DEF
 .  error
 .else

Index: src/usr.bin/make/unit-tests/cond-func.mk
diff -u src/usr.bin/make/unit-tests/cond-func.mk:1.15 src/usr.bin/make/unit-tests/cond-func.mk:1.16
--- src/usr.bin/make/unit-tests/cond-func.mk:1.15	Sat Jul  6 21:21:10 2024
+++ src/usr.bin/make/unit-tests/cond-func.mk	Tue Aug  6 17:46:01 2024
@@ -1,4 +1,4 @@
-# $NetBSD: cond-func.mk,v 1.15 2024/07/06 21:21:10 rillig Exp $
+# $NetBSD: cond-func.mk,v 1.16 2024/08/06 17:46:01 rillig Exp $
 #
 # Tests for those parts of the functions in .if conditions that are common
 # among several functions.
@@ -33,7 +33,7 @@ ${VARNAME_UNBALANCED_BRACES}=	variable n
 .endif
 
 # The argument of a function must not directly contain whitespace.
-# expect+1: Missing closing parenthesis for defined()
+# expect+1: Missing ')' after argument 'A' for 'defined'
 .if !defined(A B)
 .  error
 .endif
@@ -49,11 +49,11 @@ ${VARNAME_UNBALANCED_BRACES}=	variable n
 #
 # It's not entirely clear why these characters are forbidden.
 # The most plausible reason seems to be typo detection.
-# expect+1: Missing closing parenthesis for defined()
+# expect+1: Missing ')' after argument 'A' for 'defined'
 .if !defined(A&B)
 .  error
 .endif
-# expect+1: Missing closing parenthesis for defined()
+# expect+1: Missing ')' after argument 'A' for 'defined'
 .if !defined(A|B)
 .  error
 .endif
@@ -134,7 +134,7 @@ defined-var=	# defined but empty
 .  error
 .endif
 
-# expect+1: Missing closing parenthesis for defined()
+# expect+1: Missing ')' after argument '' for 'defined'
 .if defined(
 .  error
 .else

Index: src/usr.bin/make/unit-tests/varname.exp
diff -u src/usr.bin/make/unit-tests/varname.exp:1.21 src/usr.bin/make/unit-tests/varname.exp:1.22
--- src/usr.bin/make/unit-tests/varname.exp:1.21	Thu Jul  4 20:18:40 2024
+++ src/usr.bin/make/unit-tests/varname.exp	Tue Aug  6 17:46:01 2024
@@ -5,7 +5,7 @@ Var_Parse: ${VARNAME} (eval)
 Global: VAR((( = 3 open parentheses
 Var_Parse: ${VAR(((}}}}" != "3 open parentheses}}}" (eval)
 Global: .ALLTARGETS =  VAR(((=)
-make: "varname.mk" line 32: No closing parenthesis in archive specification
+make: "varname.mk" line 32: Missing ')' in archive specification
 make: "varname.mk" line 32: Error in archive specification: "VAR"
 Var_Parse: ${:UVAR\(\(\(}=	try2 (eval-defined)
 Evaluating modifier ${:U...} on value "" (eval-defined, undefined)

Index: src/usr.bin/make/unit-tests/varname.mk
diff -u src/usr.bin/make/unit-tests/varname.mk:1.14 src/usr.bin/make/unit-tests/varname.mk:1.15
--- src/usr.bin/make/unit-tests/varname.mk:1.14	Sun Nov 19 21:47:52 2023
+++ src/usr.bin/make/unit-tests/varname.mk	Tue Aug  6 17:46:01 2024
@@ -1,4 +1,4 @@
-# $NetBSD: varname.mk,v 1.14 2023/11/19 21:47:52 rillig Exp $
+# $NetBSD: varname.mk,v 1.15 2024/08/06 17:46:01 rillig Exp $
 #
 # Tests for special variables, such as .MAKE or .PARSEDIR.
 # And for variable names in general.
@@ -28,7 +28,7 @@ ${VARNAME}=	3 open parentheses
 # balanced.  At the end of the line, there are still 3 levels open, which
 # means the variable name is not finished.
 # expect+2: Error in archive specification: "VAR"
-# expect+1: No closing parenthesis in archive specification
+# expect+1: Missing ')' in archive specification
 ${:UVAR(((}=	try1
 # On the left-hand side of a variable assignments, the backslash is not parsed
 # as an escape character, therefore the parentheses still count to the nesting

Reply via email to