Module Name: src
Committed By: rillig
Date: Thu Jan 20 19:24:53 UTC 2022
Modified Files:
src/usr.bin/make: parse.c
src/usr.bin/make/unit-tests: dep-duplicate.exp dep-duplicate.mk
Log Message:
make: fix filename in warning about duplicate script (since 2018-12-22)
To generate a diff of this commit:
cvs rdiff -u -r1.652 -r1.653 src/usr.bin/make/parse.c
cvs rdiff -u -r1.2 -r1.3 src/usr.bin/make/unit-tests/dep-duplicate.exp \
src/usr.bin/make/unit-tests/dep-duplicate.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/parse.c
diff -u src/usr.bin/make/parse.c:1.652 src/usr.bin/make/parse.c:1.653
--- src/usr.bin/make/parse.c:1.652 Sun Jan 16 09:41:28 2022
+++ src/usr.bin/make/parse.c Thu Jan 20 19:24:53 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: parse.c,v 1.652 2022/01/16 09:41:28 rillig Exp $ */
+/* $NetBSD: parse.c,v 1.653 2022/01/20 19:24:53 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -106,7 +106,7 @@
#include "pathnames.h"
/* "@(#)parse.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: parse.c,v 1.652 2022/01/16 09:41:28 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.653 2022/01/20 19:24:53 rillig Exp $");
/*
* A file being read.
@@ -412,12 +412,12 @@ FindKeyword(const char *str)
}
static void
-PrintLocation(FILE *f, const char *fname, size_t lineno)
+PrintLocation(FILE *f, bool useVars, const char *fname, size_t lineno)
{
char dirbuf[MAXPATHLEN + 1];
FStr dir, base;
- if (fname[0] == '/' || strcmp(fname, "(stdin)") == 0) {
+ if (!useVars || fname[0] == '/' || strcmp(fname, "(stdin)") == 0) {
(void)fprintf(f, "\"%s\" line %u: ", fname, (unsigned)lineno);
return;
}
@@ -439,8 +439,8 @@ PrintLocation(FILE *f, const char *fname
FStr_Done(&dir);
}
-static void MAKE_ATTR_PRINTFLIKE(5, 0)
-ParseVErrorInternal(FILE *f, const char *fname, size_t lineno,
+static void MAKE_ATTR_PRINTFLIKE(6, 0)
+ParseVErrorInternal(FILE *f, bool useVars, const char *fname, size_t lineno,
ParseErrorLevel type, const char *fmt, va_list ap)
{
static bool fatal_warning_error_printed = false;
@@ -448,7 +448,7 @@ ParseVErrorInternal(FILE *f, const char
(void)fprintf(f, "%s: ", progname);
if (fname != NULL)
- PrintLocation(f, fname, lineno);
+ PrintLocation(f, useVars, fname, lineno);
if (type == PARSE_WARNING)
(void)fprintf(f, "warning: ");
(void)vfprintf(f, fmt, ap);
@@ -477,13 +477,13 @@ ParseErrorInternal(const char *fname, si
(void)fflush(stdout);
va_start(ap, fmt);
- ParseVErrorInternal(stderr, fname, lineno, type, fmt, ap);
+ ParseVErrorInternal(stderr, false, fname, lineno, type, fmt, ap);
va_end(ap);
if (opts.debug_file != stdout && opts.debug_file != stderr) {
va_start(ap, fmt);
- ParseVErrorInternal(opts.debug_file, fname, lineno, type,
- fmt, ap);
+ ParseVErrorInternal(opts.debug_file, false, fname, lineno,
+ type, fmt, ap);
va_end(ap);
}
}
@@ -514,13 +514,13 @@ Parse_Error(ParseErrorLevel type, const
(void)fflush(stdout);
va_start(ap, fmt);
- ParseVErrorInternal(stderr, fname, lineno, type, fmt, ap);
+ ParseVErrorInternal(stderr, true, fname, lineno, type, fmt, ap);
va_end(ap);
if (opts.debug_file != stdout && opts.debug_file != stderr) {
va_start(ap, fmt);
- ParseVErrorInternal(opts.debug_file, fname, lineno, type,
- fmt, ap);
+ ParseVErrorInternal(opts.debug_file, true, fname, lineno,
+ type, fmt, ap);
va_end(ap);
}
}
Index: src/usr.bin/make/unit-tests/dep-duplicate.exp
diff -u src/usr.bin/make/unit-tests/dep-duplicate.exp:1.2 src/usr.bin/make/unit-tests/dep-duplicate.exp:1.3
--- src/usr.bin/make/unit-tests/dep-duplicate.exp:1.2 Thu Jan 20 19:16:25 2022
+++ src/usr.bin/make/unit-tests/dep-duplicate.exp Thu Jan 20 19:24:53 2022
@@ -1,4 +1,4 @@
make: "dep-duplicate.inc" line 1: warning: duplicate script for target "all" ignored
-make: "dep-duplicate.inc" line 3: warning: using previous script for "all" defined here
+make: "dep-duplicate.main" line 3: warning: using previous script for "all" defined here
main-output
exit status 0
Index: src/usr.bin/make/unit-tests/dep-duplicate.mk
diff -u src/usr.bin/make/unit-tests/dep-duplicate.mk:1.2 src/usr.bin/make/unit-tests/dep-duplicate.mk:1.3
--- src/usr.bin/make/unit-tests/dep-duplicate.mk:1.2 Thu Jan 20 19:16:25 2022
+++ src/usr.bin/make/unit-tests/dep-duplicate.mk Thu Jan 20 19:24:53 2022
@@ -1,4 +1,4 @@
-# $NetBSD: dep-duplicate.mk,v 1.2 2022/01/20 19:16:25 rillig Exp $
+# $NetBSD: dep-duplicate.mk,v 1.3 2022/01/20 19:24:53 rillig Exp $
#
# Test for a target whose commands are defined twice. This generates a
# warning, not an error, so ensure that the correct commands are kept.
@@ -6,11 +6,7 @@
# Also ensure that the diagnostics mention the correct file in case of
# included files. Since parse.c 1.231 from 2018-12-22 and before parse.c
# 1.653 from 2022-01-20, the wrong filename had been printed if the file of
-# the first commands section was in a file that was included by its relative
-# path.
-
-# expect: make: "dep-duplicate.inc" line 3: warning: using previous script for "all" defined here
-# FIXME: The file "dep-duplicate.inc" has no line 3.
+# the first commands section was included by its relative path.
all: .PHONY
@exec > dep-duplicate.main; \