Module Name:    src
Committed By:   rillig
Date:           Sun Jan  7 11:39:04 UTC 2024

Modified Files:
        src/usr.bin/make: job.c parse.c var.c
        src/usr.bin/make/unit-tests: varparse-undef-partial.mk

Log Message:
make: clean up comments, constify shell name


To generate a diff of this commit:
cvs rdiff -u -r1.464 -r1.465 src/usr.bin/make/job.c
cvs rdiff -u -r1.715 -r1.716 src/usr.bin/make/parse.c
cvs rdiff -u -r1.1093 -r1.1094 src/usr.bin/make/var.c
cvs rdiff -u -r1.4 -r1.5 \
    src/usr.bin/make/unit-tests/varparse-undef-partial.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/job.c
diff -u src/usr.bin/make/job.c:1.464 src/usr.bin/make/job.c:1.465
--- src/usr.bin/make/job.c:1.464	Sun Jan  7 01:33:57 2024
+++ src/usr.bin/make/job.c	Sun Jan  7 11:39:04 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: job.c,v 1.464 2024/01/07 01:33:57 sjg Exp $	*/
+/*	$NetBSD: job.c,v 1.465 2024/01/07 11:39:04 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -141,7 +141,7 @@
 #include "trace.h"
 
 /*	"@(#)job.c	8.2 (Berkeley) 3/19/94"	*/
-MAKE_RCSID("$NetBSD: job.c,v 1.464 2024/01/07 01:33:57 sjg Exp $");
+MAKE_RCSID("$NetBSD: job.c,v 1.465 2024/01/07 11:39:04 rillig Exp $");
 
 /*
  * A shell defines how the commands are run.  All commands for a target are
@@ -2474,16 +2474,9 @@ Job_ParseShell(char *line)
 			}
 		}
 	} else {
-		/*
-		 * The user provided a path. If s/he gave nothing else
-		 * (fullSpec is false), try and find a matching shell in the
-		 * ones we know of. Else we just take the specification at
-		 * its word and copy it to a new location. In either case,
-		 * we need to record the path the user gave for the shell.
-		 */
-		char *name = path + (str_basename(path) - path);
 		shellPath = path;
-		shellName = newShell.name != NULL ? newShell.name : name;
+		shellName = newShell.name != NULL ? newShell.name
+		    : str_basename(path);
 		if (!fullSpec) {
 			if ((sh = FindShellByName(shellName)) == NULL) {
 				Parse_Error(PARSE_WARNING,

Index: src/usr.bin/make/parse.c
diff -u src/usr.bin/make/parse.c:1.715 src/usr.bin/make/parse.c:1.716
--- src/usr.bin/make/parse.c:1.715	Fri Jan  5 23:22:06 2024
+++ src/usr.bin/make/parse.c	Sun Jan  7 11:39:04 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: parse.c,v 1.715 2024/01/05 23:22:06 rillig Exp $	*/
+/*	$NetBSD: parse.c,v 1.716 2024/01/07 11:39:04 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -105,7 +105,7 @@
 #include "pathnames.h"
 
 /*	"@(#)parse.c	8.3 (Berkeley) 3/19/94"	*/
-MAKE_RCSID("$NetBSD: parse.c,v 1.715 2024/01/05 23:22:06 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.716 2024/01/07 11:39:04 rillig Exp $");
 
 /* Detects a multiple-inclusion guard in a makefile. */
 typedef enum {
@@ -115,9 +115,7 @@ typedef enum {
 	GS_NO			/* the file is not guarded */
 } GuardState;
 
-/*
- * A file being read.
- */
+/* A file being parsed. */
 typedef struct IncludedFile {
 	FStr name;		/* absolute or relative to the cwd */
 	unsigned lineno;	/* 1-based */
@@ -2901,13 +2899,6 @@ ParseDependencyLine(char *line)
 static void
 ParseLine(char *line)
 {
-	/*
-	 * Lines that begin with '.' can be pretty much anything:
-	 *	- directives like '.include' or '.if',
-	 *	- suffix rules like '.c.o:',
-	 *	- dependencies for filenames that start with '.',
-	 *	- variable assignments like '.tmp=value'.
-	 */
 	if (line[0] == '.' && ParseDirective(line))
 		return;
 

Index: src/usr.bin/make/var.c
diff -u src/usr.bin/make/var.c:1.1093 src/usr.bin/make/var.c:1.1094
--- src/usr.bin/make/var.c:1.1093	Fri Jan  5 23:22:06 2024
+++ src/usr.bin/make/var.c	Sun Jan  7 11:39:04 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: var.c,v 1.1093 2024/01/05 23:22:06 rillig Exp $	*/
+/*	$NetBSD: var.c,v 1.1094 2024/01/07 11:39:04 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -139,7 +139,7 @@
 #include "metachar.h"
 
 /*	"@(#)var.c	8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.1093 2024/01/05 23:22:06 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.1094 2024/01/07 11:39:04 rillig Exp $");
 
 /*
  * Variables are defined using one of the VAR=value assignments.  Their
@@ -1859,15 +1859,15 @@ FormatTime(const char *fmt, time_t t, bo
  * Some modifiers such as ':sh' or '::=' have noticeable side effects though.
  *
  * Evaluating the modifier usually takes the current value of the
- * expression from ch->expr->value, or the variable name from ch->var->name
+ * expression from ch->expr->value, or the variable name from ch->var->name,
  * and stores the result back in ch->expr->value via Expr_SetValueOwn or
  * Expr_SetValueRefer.
  *
- * If evaluating fails (as of 2020-08-23), an error message is printed using
- * Error.  This function has no side effects, it really just prints the error
- * message.  Processing the expression continues as if everything were ok.
- * TODO: This should be fixed by adding proper error handling to Var_Subst,
- * Var_Parse, ApplyModifiers and ModifyWords.
+ * If evaluating fails, the fallback error message "Bad modifier" is printed
+ * using Error.  This function has no side effects, it really just prints the
+ * error message, continuing as if nothing had happened.  TODO: This should be
+ * fixed by adding proper error handling to Var_Subst, Var_Parse,
+ * ApplyModifiers and ModifyWords.
  *
  * Some modifiers such as :D and :U turn undefined expressions into defined
  * expressions using Expr_Define.
@@ -1936,7 +1936,7 @@ typedef struct ModChain {
 	char const_member startc;
 	/* '\0' or '}' or ')' */
 	char const_member endc;
-	/* Word separator when joining words (see the :ts modifier). */
+	/* Separator when joining words (see the :ts modifier). */
 	char sep;
 	/*
 	 * Whether some modifiers that otherwise split the variable value
@@ -4598,10 +4598,10 @@ VarSubstExpr(const char **pp, Buffer *bu
 		} else if (val.str == var_Error) {
 
 			/*
-			 * XXX: This condition is wrong.  If val == var_Error,
-			 * this doesn't necessarily mean there was an undefined
-			 * variable.  It could equally well be a parse error;
-			 * see unit-tests/varmod-order.exp.
+			 * FIXME: The condition 'val.str == var_Error' doesn't
+			 * mean there was an undefined variable.  It could
+			 * equally well be a parse error; see
+			 * unit-tests/varmod-order.mk.
 			 */
 
 			/*
@@ -4612,10 +4612,10 @@ VarSubstExpr(const char **pp, Buffer *bu
 			if (!*inout_errorReported) {
 				Parse_Error(PARSE_FATAL,
 				    "Undefined variable \"%.*s\"",
-				    (int)(size_t)(nested_p - p), p);
+				    (int)(nested_p - p), p);
+				*inout_errorReported = true;
 			}
 			p = nested_p;
-			*inout_errorReported = true;
 		} else {
 			/*
 			 * Copy the initial '$' of the undefined expression,

Index: src/usr.bin/make/unit-tests/varparse-undef-partial.mk
diff -u src/usr.bin/make/unit-tests/varparse-undef-partial.mk:1.4 src/usr.bin/make/unit-tests/varparse-undef-partial.mk:1.5
--- src/usr.bin/make/unit-tests/varparse-undef-partial.mk:1.4	Sun Nov 19 21:47:52 2023
+++ src/usr.bin/make/unit-tests/varparse-undef-partial.mk	Sun Jan  7 11:39:04 2024
@@ -1,4 +1,4 @@
-# $NetBSD: varparse-undef-partial.mk,v 1.4 2023/11/19 21:47:52 rillig Exp $
+# $NetBSD: varparse-undef-partial.mk,v 1.5 2024/01/07 11:39:04 rillig Exp $
 
 # When an undefined variable is expanded in a ':=' assignment, only the
 # initial '$' of the expression is skipped by the parser, while
@@ -11,9 +11,8 @@ PARAM=	:Q
 
 # The expression ${VAR.${PARAM}} refers to the variable named "VAR.:Q",
 # with the ":Q" being part of the name.  This variable is not defined,
-# therefore the initial '$' of that whole expression is skipped by the
-# parser (see Var_Subst, the Buf_AddByte in the else branch) and the rest
-# of the expression is expanded as usual.
+# therefore the initial '$' of that whole expression is skipped by the parser
+# (see VarSubstExpr) and the rest of the expression is expanded as usual.
 #
 # The resulting expression is ${VAR.:Q}, which means that the
 # interpretation of the ":Q" has changed from being part of the variable

Reply via email to